Update to Firefox 46
This commit is contained in:
		
							parent
							
								
									9340d207fa
								
							
						
					
					
						commit
						dba86ea74d
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -189,3 +189,5 @@ firefox-3.6.4.source.tar.bz2 | ||||
| /firefox-45.0.1.source.tar.xz | ||||
| /firefox-45.0.2.source.tar.xz | ||||
| /firefox-langpacks-45.0.2-20160411.tar.xz | ||||
| /firefox-46.0.source.tar.xz | ||||
| /firefox-langpacks-46.0-20160425.tar.xz | ||||
|  | ||||
| @ -1,37 +0,0 @@ | ||||
| From: Mike Hommey <mh@glandium.org> | ||||
| Date: Sat, 5 Dec 2015 18:23:58 +0900 | ||||
| Subject: Allow unsigned addons in /usr/{lib,share}/mozilla/extensions | ||||
| See rhbz#1293874 | ||||
| 
 | ||||
| ---
 | ||||
|  toolkit/mozapps/extensions/content/extensions.js    | 2 ++ | ||||
|  toolkit/mozapps/extensions/internal/XPIProvider.jsm | 3 ++- | ||||
|  2 files changed, 4 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| index 8625097..9152096 100644
 | ||||
| --- a/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| +++ b/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| @@ -211,6 +211,8 @@ function isCorrectlySigned(aAddon) {
 | ||||
|    // temporary add-ons do not require signing | ||||
|    if (aAddon.scope == AddonManager.SCOPE_TEMPORARY) | ||||
|        return true; | ||||
| +  if (aAddon.scope == AddonManager.SCOPE_SYSTEM)
 | ||||
| +    return true;
 | ||||
|    if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING) | ||||
|      return false; | ||||
|    if (aAddon.foreignInstall && aAddon.signedState < AddonManager.SIGNEDSTATE_SIGNED) | ||||
| diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| index 343c087..de62d8a 100644
 | ||||
| --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| @@ -682,7 +682,8 @@ function isUsableAddon(aAddon) {
 | ||||
|      return false; | ||||
|    } | ||||
|    // temporary and system add-ons do not require signing | ||||
| -  if ((aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
 | ||||
| +  if ((aAddon._installLocation.scope != AddonManager.SCOPE_SYSTEM &&
 | ||||
| +       aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
 | ||||
|         aAddon._installLocation.name != KEY_APP_TEMPORARY) && | ||||
|         mustSign(aAddon.type)) { | ||||
|      if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING) | ||||
| @ -1,18 +0,0 @@ | ||||
| Based on https://github.com/google/skia/commit/b79ff56de23fef680ae7187040f2d6a9516b553d | ||||
| 
 | ||||
| Index: mozilla-release/gfx/skia/trunk/src/core/SkUtilsArm.h
 | ||||
| ===================================================================
 | ||||
| --- mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h
 | ||||
| +++ mozilla-release/gfx/skia/skia/src/core/SkUtilsArm.h
 | ||||
| @@ -21,9 +21,9 @@
 | ||||
|  #define SK_ARM_NEON_MODE_ALWAYS   1 | ||||
|  #define SK_ARM_NEON_MODE_DYNAMIC  2 | ||||
|   | ||||
| -#if defined(SK_CPU_ARM32) && defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT)
 | ||||
| +#if defined(__ARM_HAVE_OPTIONAL_NEON_SUPPORT)
 | ||||
|  #  define SK_ARM_NEON_MODE  SK_ARM_NEON_MODE_DYNAMIC | ||||
| -#elif defined(SK_CPU_ARM32) && defined(__ARM_HAVE_NEON) || defined(SK_CPU_ARM64)
 | ||||
| +#elif defined(__ARM_HAVE_NEON)
 | ||||
|  #  define SK_ARM_NEON_MODE  SK_ARM_NEON_MODE_ALWAYS | ||||
|  #else | ||||
|  #  define SK_ARM_NEON_MODE  SK_ARM_NEON_MODE_NONE | ||||
| @ -1,7 +1,7 @@ | ||||
| diff -up firefox-43.0/firefox-43.0/browser/app/profile/firefox.js.addons firefox-43.0/firefox-43.0/browser/app/profile/firefox.js
 | ||||
| --- firefox-43.0/browser/app/profile/firefox.js.addons	2015-12-10 10:18:32.942990945 +0100
 | ||||
| +++ firefox-43.0/browser/app/profile/firefox.js	2015-12-10 10:22:36.435169388 +0100
 | ||||
| @@ -71,7 +71,8 @@ pref("extensions.hotfix.certs.2.sha1Fing
 | ||||
| diff -up firefox-46.0/browser/app/profile/firefox.js.addons firefox-46.0/browser/app/profile/firefox.js
 | ||||
| --- firefox-46.0/browser/app/profile/firefox.js.addons	2016-04-22 02:37:18.000000000 +0200
 | ||||
| +++ firefox-46.0/browser/app/profile/firefox.js	2016-04-25 12:09:36.133479899 +0200
 | ||||
| @@ -74,7 +74,8 @@ pref("extensions.systemAddon.update.url"
 | ||||
|   | ||||
|  // Disable add-ons that are not installed by the user in all scopes by default. | ||||
|  // See the SCOPE constants in AddonManager.jsm for values to use here. | ||||
| @ -11,25 +11,12 @@ diff -up firefox-43.0/firefox-43.0/browser/app/profile/firefox.js.addons firefox | ||||
|   | ||||
|  // Require signed add-ons by default | ||||
|  pref("xpinstall.signatures.required", true); | ||||
| diff -up firefox-43.0/firefox-43.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons firefox-43.0/firefox-43.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| --- firefox-43.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons	2015-12-08 19:06:45.000000000 +0100
 | ||||
| +++ firefox-43.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm	2015-12-10 10:18:32.944990955 +0100
 | ||||
| @@ -2523,11 +2523,7 @@ this.XPIProvider = {
 | ||||
|   | ||||
|        AddonManagerPrivate.markProviderSafe(this); | ||||
|   | ||||
| -      if (aAppChanged === undefined) {
 | ||||
| -        // For new profiles we will never need to show the add-on selection UI
 | ||||
| -        Services.prefs.setBoolPref(PREF_SHOWN_SELECTION_UI, true);
 | ||||
| -      }
 | ||||
| -      else if (aAppChanged && !this.allAppGlobal &&
 | ||||
| +      if (aAppChanged && !this.allAppGlobal &&
 | ||||
|                 Preferences.get(PREF_EM_SHOW_MISMATCH_UI, true)) { | ||||
|          if (!Preferences.get(PREF_SHOWN_SELECTION_UI, false)) { | ||||
|            // Flip a flag to indicate that we interrupted startup with an interactive prompt | ||||
| @@ -2547,6 +2543,9 @@ this.XPIProvider = {
 | ||||
|              flushCaches = true; | ||||
|            } | ||||
| diff -up firefox-46.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons firefox-46.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| --- firefox-46.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm.addons	2016-04-25 12:09:36.134479903 +0200
 | ||||
| +++ firefox-46.0/toolkit/mozapps/extensions/internal/XPIProvider.jsm	2016-04-25 13:32:07.401769022 +0200
 | ||||
| @@ -2679,6 +2679,9 @@ this.XPIProvider = {
 | ||||
|            this.showUpgradeUI(addonsToUpdate); | ||||
|            flushCaches = true; | ||||
|          } | ||||
| +      } else {
 | ||||
| +        // For new profiles we will never need to show the add-on selection UI
 | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/gtk/gtk3drawing.c
 | ||||
| --- firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20	2016-04-08 01:55:04.000000000 +0200
 | ||||
| +++ firefox-45.0.2/widget/gtk/gtk3drawing.c	2016-04-20 18:49:52.897795872 +0200
 | ||||
| diff -up firefox-46.0/widget/gtk/gtk3drawing.c.gtk3-20 firefox-46.0/widget/gtk/gtk3drawing.c
 | ||||
| --- firefox-46.0/widget/gtk/gtk3drawing.c.gtk3-20	2016-04-22 02:37:27.000000000 +0200
 | ||||
| +++ firefox-46.0/widget/gtk/gtk3drawing.c	2016-04-25 14:56:19.006992927 +0200
 | ||||
| @@ -17,32 +17,79 @@
 | ||||
|   | ||||
|  #include <math.h> | ||||
| @ -372,7 +372,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      } | ||||
|   | ||||
|      if (gComboBoxEntryButtonWidget) { | ||||
| @@ -528,9 +719,21 @@ ensure_tab_widget()
 | ||||
| @@ -530,9 +721,21 @@ ensure_tab_widget()
 | ||||
|  static gint | ||||
|  ensure_progress_widget() | ||||
|  { | ||||
| @ -397,7 +397,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      } | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -636,6 +839,11 @@ static gint
 | ||||
| @@ -638,6 +841,11 @@ static gint
 | ||||
|  ensure_check_menu_item_widget() | ||||
|  { | ||||
|      if (!gCheckMenuItemWidget) { | ||||
| @ -409,7 +409,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          ensure_menu_popup_widget(); | ||||
|          gCheckMenuItemWidget = gtk_check_menu_item_new_with_label("M"); | ||||
|          gtk_menu_shell_append(GTK_MENU_SHELL(gMenuPopupWidget), | ||||
| @@ -757,7 +965,7 @@ moz_gtk_checkbox_get_metrics(gint* indic
 | ||||
| @@ -752,7 +960,7 @@ moz_gtk_checkbox_get_metrics(gint* indic
 | ||||
|  { | ||||
|      ensure_checkbox_widget(); | ||||
|   | ||||
| @ -418,7 +418,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                            "indicator_size", indicator_size, | ||||
|                            "indicator_spacing", indicator_spacing, | ||||
|                            NULL); | ||||
| @@ -770,7 +978,7 @@ moz_gtk_radio_get_metrics(gint* indicato
 | ||||
| @@ -765,7 +973,7 @@ moz_gtk_radio_get_metrics(gint* indicato
 | ||||
|  { | ||||
|      ensure_radiobutton_widget(); | ||||
|   | ||||
| @ -427,7 +427,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                            "indicator_size", indicator_size, | ||||
|                            "indicator_spacing", indicator_spacing, | ||||
|                            NULL); | ||||
| @@ -783,13 +991,12 @@ moz_gtk_get_focus_outline_size(gint* foc
 | ||||
| @@ -778,13 +986,12 @@ moz_gtk_get_focus_outline_size(gint* foc
 | ||||
|  { | ||||
|      GtkBorder border; | ||||
|      GtkBorder padding; | ||||
| @ -444,7 +444,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      *focus_h_width = border.left + padding.left; | ||||
|      *focus_v_width = border.top + padding.top; | ||||
|      return MOZ_GTK_SUCCESS; | ||||
| @@ -826,7 +1033,7 @@ moz_gtk_button_get_default_overflow(gint
 | ||||
| @@ -821,7 +1028,7 @@ moz_gtk_button_get_default_overflow(gint
 | ||||
|      GtkBorder* default_outside_border; | ||||
|   | ||||
|      ensure_button_widget(); | ||||
| @ -453,7 +453,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                           "default-outside-border", &default_outside_border, | ||||
|                           NULL); | ||||
|   | ||||
| @@ -849,7 +1056,7 @@ moz_gtk_button_get_default_border(gint*
 | ||||
| @@ -844,7 +1051,7 @@ moz_gtk_button_get_default_border(gint*
 | ||||
|      GtkBorder* default_border; | ||||
|   | ||||
|      ensure_button_widget(); | ||||
| @ -462,7 +462,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                           "default-border", &default_border, | ||||
|                           NULL); | ||||
|   | ||||
| @@ -940,7 +1147,7 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -935,7 +1142,7 @@ moz_gtk_button_paint(cairo_t *cr, GdkRec
 | ||||
|   | ||||
|      if (state->focused) { | ||||
|          GtkBorder border; | ||||
| @ -471,7 +471,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          x += border.left; | ||||
|          y += border.top; | ||||
|          width -= (border.left + border.right); | ||||
| @@ -961,15 +1168,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -956,15 +1163,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
|      gint indicator_size, indicator_spacing; | ||||
|      gint x, y, width, height; | ||||
|      gint focus_x, focus_y, focus_width, focus_height; | ||||
| @ -490,7 +490,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      } | ||||
|   | ||||
|      // XXX we should assert rect->height >= indicator_size too | ||||
| @@ -988,11 +1194,9 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -983,11 +1189,9 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
|      focus_width = width + 2 * indicator_spacing; | ||||
|      focus_height = height + 2 * indicator_spacing; | ||||
|     | ||||
| @ -505,7 +505,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      if (selected) | ||||
|          state_flags |= checkbox_check_state; | ||||
| @@ -1000,13 +1204,15 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -995,13 +1199,15 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
|      if (inconsistent) | ||||
|          state_flags |= GTK_STATE_FLAG_INCONSISTENT; | ||||
|   | ||||
| @ -525,7 +525,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                              focus_width, focus_height); | ||||
|          } | ||||
|      } | ||||
| @@ -1015,15 +1221,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -1010,15 +1216,14 @@ moz_gtk_toggle_paint(cairo_t *cr, GdkRec
 | ||||
|          * 'indeterminate' type on checkboxes. In GTK, the shadow type | ||||
|          * must also be changed for the state to be drawn. | ||||
|          */         | ||||
| @ -545,7 +545,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -1040,8 +1245,8 @@ calculate_button_inner_rect(GtkWidget* b
 | ||||
| @@ -1035,8 +1240,8 @@ calculate_button_inner_rect(GtkWidget* b
 | ||||
|      style = gtk_widget_get_style_context(button); | ||||
|   | ||||
|      /* This mirrors gtkbutton's child positioning */ | ||||
| @ -556,7 +556,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      inner_rect->x = rect->x + border.left + padding.left; | ||||
|      inner_rect->y = rect->y + padding.top + border.top; | ||||
| @@ -1107,9 +1312,9 @@ moz_gtk_scrollbar_button_paint(cairo_t *
 | ||||
| @@ -1099,9 +1304,9 @@ moz_gtk_scrollbar_button_paint(cairo_t *
 | ||||
|      ensure_scrollbar_widget(); | ||||
|   | ||||
|      if (flags & MOZ_GTK_STEPPER_VERTICAL) | ||||
| @ -568,7 +568,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      gtk_widget_set_direction(scrollbar, direction); | ||||
|   | ||||
| @@ -1175,26 +1380,23 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
 | ||||
| @@ -1181,25 +1386,22 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
 | ||||
|                                 GtkTextDirection direction) | ||||
|  { | ||||
|      GtkStyleContext* style; | ||||
| @ -576,21 +576,13 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      ensure_scrollbar_widget(); | ||||
|   | ||||
| -    if (widget ==  MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL)
 | ||||
| -    if (widget ==  MOZ_GTK_SCROLLBAR_HORIZONTAL)
 | ||||
| -        scrollbar = GTK_SCROLLBAR(gHorizScrollbarWidget);
 | ||||
| -    else
 | ||||
| -        scrollbar = GTK_SCROLLBAR(gVertScrollbarWidget);
 | ||||
| -
 | ||||
| -    gtk_widget_set_direction(GTK_WIDGET(scrollbar), direction);
 | ||||
| +    if (widget == MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL) {
 | ||||
| +        gtk_widget_set_direction(GTK_WIDGET(gHorizScrollbar.widget), direction);
 | ||||
| +        style = gHorizScrollbar.scroll.style;
 | ||||
| +    } 
 | ||||
| +    else {
 | ||||
| +        gtk_widget_set_direction(GTK_WIDGET(gVertScrollbar.widget), direction);
 | ||||
| +        style = gVertScrollbar.scroll.style;
 | ||||
| +    }
 | ||||
|       | ||||
| -    
 | ||||
|      if (flags & MOZ_GTK_TRACK_OPAQUE) { | ||||
|          style = gtk_widget_get_style_context(GTK_WIDGET(gProtoWindow)); | ||||
|          gtk_render_background(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
| @ -599,11 +591,18 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
| -    style = gtk_widget_get_style_context(GTK_WIDGET(scrollbar));
 | ||||
| -    gtk_style_context_save(style);
 | ||||
| -    gtk_style_context_add_class(style, GTK_STYLE_CLASS_TROUGH);
 | ||||
| -
 | ||||
| +     if (widget == MOZ_GTK_SCROLLBAR_TRACK_HORIZONTAL) {
 | ||||
| +        gtk_widget_set_direction(GTK_WIDGET(gHorizScrollbar.widget), direction);
 | ||||
| +        style = gHorizScrollbar.scroll.style;
 | ||||
| +    }  
 | ||||
| +    else {
 | ||||
| +        gtk_widget_set_direction(GTK_WIDGET(gVertScrollbar.widget), direction);
 | ||||
| +        style = gVertScrollbar.scroll.style;
 | ||||
| +    }
 | ||||
|   | ||||
|      gtk_render_background(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
|      gtk_render_frame(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
|   | ||||
| @@ -1202,7 +1404,6 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
 | ||||
| @@ -1208,7 +1410,6 @@ moz_gtk_scrollbar_trough_paint(GtkThemeW
 | ||||
|          gtk_render_focus(style, cr, | ||||
|                           rect->x, rect->y, rect->width, rect->height); | ||||
|      } | ||||
| @ -611,12 +610,11 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
|   | ||||
| @@ -1214,25 +1415,21 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
 | ||||
| @@ -1220,24 +1421,20 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
 | ||||
|  { | ||||
|      GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state); | ||||
|      GtkStyleContext* style; | ||||
| -    GtkScrollbar *scrollbar;
 | ||||
|      GtkAdjustment *adj; | ||||
|      GtkBorder margin; | ||||
|   | ||||
|      ensure_scrollbar_widget(); | ||||
| @ -645,7 +643,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      gtk_style_context_get_margin (style, state_flags, &margin); | ||||
|   | ||||
|      gtk_render_slider(style, cr, | ||||
| @@ -1243,8 +1440,6 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
 | ||||
| @@ -1248,8 +1445,6 @@ moz_gtk_scrollbar_thumb_paint(GtkThemeWi
 | ||||
|                       (widget == MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL) ? | ||||
|                       GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL); | ||||
|   | ||||
| @ -654,7 +652,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
|   | ||||
| @@ -1255,8 +1450,8 @@ moz_gtk_spin_paint(cairo_t *cr, GdkRecta
 | ||||
| @@ -1260,8 +1455,8 @@ moz_gtk_spin_paint(cairo_t *cr, GdkRecta
 | ||||
|      GtkStyleContext* style; | ||||
|   | ||||
|      ensure_spin_widget(); | ||||
| @ -665,7 +663,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      gtk_style_context_save(style); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_SPINBUTTON); | ||||
|      gtk_render_background(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
| @@ -1275,11 +1470,10 @@ moz_gtk_spin_updown_paint(cairo_t *cr, G
 | ||||
| @@ -1280,11 +1475,10 @@ moz_gtk_spin_updown_paint(cairo_t *cr, G
 | ||||
|      GtkStyleContext* style; | ||||
|   | ||||
|      ensure_spin_widget(); | ||||
| @ -679,7 +677,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      gtk_render_background(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
|      gtk_render_frame(style, cr, rect->x, rect->y, rect->width, rect->height); | ||||
| @@ -1445,15 +1639,13 @@ moz_gtk_vpaned_paint(cairo_t *cr, GdkRec
 | ||||
| @@ -1450,15 +1644,13 @@ moz_gtk_vpaned_paint(cairo_t *cr, GdkRec
 | ||||
|  static gint | ||||
|  moz_gtk_entry_paint(cairo_t *cr, GdkRectangle* rect, | ||||
|                      GtkWidgetState* state, | ||||
| @ -698,7 +696,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      if (draw_focus_outline_only) { | ||||
|          // Inflate the given 'rect' with the focus outline size. | ||||
| @@ -1473,10 +1665,9 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
 | ||||
| @@ -1478,10 +1670,9 @@ moz_gtk_entry_paint(cairo_t *cr, GdkRect
 | ||||
|       * textarea window uses gtk_paint_flat_box when exposed */ | ||||
|   | ||||
|      /* This gets us a lovely greyish disabledish look */ | ||||
| @ -710,7 +708,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|     | ||||
|      /* Now paint the shadow and focus border. | ||||
|       * We do like in gtk_entry_draw_frame, we first draw the shadow, a tad | ||||
| @@ -1526,7 +1717,7 @@ moz_gtk_treeview_paint(cairo_t *cr, GdkR
 | ||||
| @@ -1531,7 +1722,7 @@ moz_gtk_treeview_paint(cairo_t *cr, GdkR
 | ||||
|      style = gtk_widget_get_style_context(gScrolledWindowWidget); | ||||
|      gtk_style_context_save(style); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_FRAME);     | ||||
| @ -719,7 +717,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      xthickness = border.left; | ||||
|      ythickness = border.top;     | ||||
|   | ||||
| @@ -1697,7 +1888,7 @@ moz_gtk_combo_box_paint(cairo_t *cr, Gdk
 | ||||
| @@ -1702,7 +1893,7 @@ moz_gtk_combo_box_paint(cairo_t *cr, Gdk
 | ||||
|          if (direction == GTK_TEXT_DIR_LTR) { | ||||
|              GtkBorder padding; | ||||
|              GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state); | ||||
| @ -728,7 +726,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|              arrow_rect.x -= padding.left; | ||||
|          } | ||||
|          else | ||||
| @@ -1799,29 +1990,27 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
 | ||||
| @@ -1804,29 +1995,27 @@ moz_gtk_container_paint(cairo_t *cr, Gdk
 | ||||
|                          gboolean isradio, GtkTextDirection direction) | ||||
|  { | ||||
|      GtkStateFlags state_flags = GetStateFlagsFromGtkWidgetState(state); | ||||
| @ -766,7 +764,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|     | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -1831,32 +2020,26 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
 | ||||
| @@ -1836,32 +2025,26 @@ moz_gtk_toggle_label_paint(cairo_t *cr,
 | ||||
|                             GtkWidgetState* state,  | ||||
|                             gboolean isradio, GtkTextDirection direction) | ||||
|  { | ||||
| @ -808,7 +806,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -1917,7 +2100,7 @@ moz_gtk_toolbar_separator_paint(cairo_t
 | ||||
| @@ -1922,7 +2105,7 @@ moz_gtk_toolbar_separator_paint(cairo_t
 | ||||
|                            rect->height * (end_fraction - start_fraction)); | ||||
|      } else { | ||||
|          GtkBorder padding; | ||||
| @ -817,7 +815,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|       | ||||
|          paint_width = padding.left; | ||||
|          if (paint_width > rect->width) | ||||
| @@ -2004,18 +2187,13 @@ static gint
 | ||||
| @@ -2006,18 +2189,13 @@ static gint
 | ||||
|  moz_gtk_progressbar_paint(cairo_t *cr, GdkRectangle* rect, | ||||
|                            GtkTextDirection direction) | ||||
|  { | ||||
| @ -841,7 +839,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -2025,15 +2203,8 @@ moz_gtk_progress_chunk_paint(cairo_t *cr
 | ||||
| @@ -2027,15 +2205,8 @@ moz_gtk_progress_chunk_paint(cairo_t *cr
 | ||||
|                               GtkTextDirection direction, | ||||
|                               GtkThemeWidgetType widget) | ||||
|  { | ||||
| @ -858,7 +856,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      if (widget == MOZ_GTK_PROGRESS_CHUNK_INDETERMINATE || | ||||
|          widget == MOZ_GTK_PROGRESS_CHUNK_VERTICAL_INDETERMINATE) { | ||||
| @@ -2072,12 +2243,14 @@ moz_gtk_progress_chunk_paint(cairo_t *cr
 | ||||
| @@ -2074,12 +2245,14 @@ moz_gtk_progress_chunk_paint(cairo_t *cr
 | ||||
|      // gtk_render_activity was used to render progress chunks on GTK versions | ||||
|      // before 3.13.7, see bug 1173907. | ||||
|      if (!gtk_check_version(3, 13, 7)) { | ||||
| @ -877,7 +875,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -2094,7 +2267,7 @@ moz_gtk_get_tab_thickness(void)
 | ||||
| @@ -2096,7 +2269,7 @@ moz_gtk_get_tab_thickness(void)
 | ||||
|   | ||||
|      style = gtk_widget_get_style_context(gTabWidget); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_NOTEBOOK); | ||||
| @ -886,7 +884,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      if (border.top < 2) | ||||
|          return 2; /* some themes don't set ythickness correctly */ | ||||
| @@ -2290,7 +2463,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
 | ||||
| @@ -2292,7 +2465,7 @@ moz_gtk_tab_paint(cairo_t *cr, GdkRectan
 | ||||
|        gtk_style_context_save(style); | ||||
|        moz_gtk_tab_prepare_style_context(style, flags); | ||||
|   | ||||
| @ -895,7 +893,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|        focusRect.x += padding.left; | ||||
|        focusRect.width -= (padding.left + padding.right); | ||||
| @@ -2406,7 +2579,7 @@ moz_gtk_tab_scroll_arrow_paint(cairo_t *
 | ||||
| @@ -2408,7 +2581,7 @@ moz_gtk_tab_scroll_arrow_paint(cairo_t *
 | ||||
|  } | ||||
|   | ||||
|  static gint | ||||
| @ -904,7 +902,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                         GtkTextDirection direction) | ||||
|  { | ||||
|      GtkStyleContext* style; | ||||
| @@ -2467,7 +2640,7 @@ moz_gtk_menu_separator_paint(cairo_t *cr
 | ||||
| @@ -2468,7 +2641,7 @@ moz_gtk_menu_separator_paint(cairo_t *cr
 | ||||
|      border_width = gtk_container_get_border_width(GTK_CONTAINER(gMenuSeparatorWidget)); | ||||
|   | ||||
|      style = gtk_widget_get_style_context(gMenuSeparatorWidget); | ||||
| @ -1137,7 +1135,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|  moz_gtk_get_tab_scroll_arrow_size(gint* width, gint* height) | ||||
|  { | ||||
|      gint arrow_size; | ||||
| @@ -3022,7 +3240,7 @@ moz_gtk_get_toolbar_separator_width(gint
 | ||||
| @@ -3030,7 +3248,7 @@ moz_gtk_get_toolbar_separator_width(gint
 | ||||
|                           "separator-width", &separator_width, | ||||
|                           NULL); | ||||
|      /* Just in case... */ | ||||
| @ -1146,7 +1144,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      *size = MAX(*size, (wide_separators ? separator_width : border.left)); | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -3064,7 +3282,7 @@ moz_gtk_get_menu_separator_height(gint *
 | ||||
| @@ -3072,7 +3290,7 @@ moz_gtk_get_menu_separator_height(gint *
 | ||||
|      border_width = gtk_container_get_border_width(GTK_CONTAINER(gMenuSeparatorWidget)); | ||||
|   | ||||
|      style = gtk_widget_get_style_context(gMenuSeparatorWidget); | ||||
| @ -1155,7 +1153,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      gtk_style_context_save(style); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_SEPARATOR); | ||||
| @@ -3122,15 +3340,21 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
 | ||||
| @@ -3130,15 +3348,21 @@ moz_gtk_get_scrollbar_metrics(MozGtkScro
 | ||||
|  { | ||||
|      ensure_scrollbar_widget(); | ||||
|   | ||||
| @ -1180,7 +1178,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      return MOZ_GTK_SUCCESS; | ||||
|  } | ||||
| @@ -3155,7 +3379,7 @@ moz_gtk_images_in_buttons()
 | ||||
| @@ -3163,7 +3387,7 @@ moz_gtk_images_in_buttons()
 | ||||
|      GtkSettings* settings; | ||||
|   | ||||
|      ensure_button_widget(); | ||||
| @ -1189,7 +1187,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|   | ||||
|      g_object_get(settings, "gtk-button-images", &result, NULL); | ||||
|      return result; | ||||
| @@ -3183,7 +3407,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
| @@ -3191,7 +3415,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
|          } | ||||
|          ensure_button_widget(); | ||||
|          return moz_gtk_button_paint(cr, rect, state, | ||||
| @ -1198,7 +1196,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                                      direction); | ||||
|          break; | ||||
|      case MOZ_GTK_CHECKBUTTON: | ||||
| @@ -3233,7 +3457,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
| @@ -3241,7 +3465,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
|      case MOZ_GTK_SPINBUTTON_ENTRY: | ||||
|          ensure_spin_widget(); | ||||
|          return moz_gtk_entry_paint(cr, rect, state, | ||||
| @ -1207,7 +1205,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          break; | ||||
|      case MOZ_GTK_GRIPPER: | ||||
|          return moz_gtk_gripper_paint(cr, rect, state, | ||||
| @@ -3260,7 +3484,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
| @@ -3268,7 +3492,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
|      case MOZ_GTK_ENTRY: | ||||
|          ensure_entry_widget(); | ||||
|          return moz_gtk_entry_paint(cr, rect, state, | ||||
| @ -1216,7 +1214,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          break; | ||||
|      case MOZ_GTK_DROPDOWN: | ||||
|          return moz_gtk_combo_box_paint(cr, rect, state, direction); | ||||
| @@ -3272,7 +3496,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
| @@ -3280,7 +3504,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
|      case MOZ_GTK_DROPDOWN_ENTRY: | ||||
|          ensure_combo_box_entry_widgets(); | ||||
|          return moz_gtk_entry_paint(cr, rect, state, | ||||
| @ -1225,7 +1223,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          break; | ||||
|      case MOZ_GTK_CHECKBUTTON_CONTAINER: | ||||
|      case MOZ_GTK_RADIOBUTTON_CONTAINER: | ||||
| @@ -3324,7 +3548,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
| @@ -3332,7 +3556,7 @@ moz_gtk_widget_paint(GtkThemeWidgetType
 | ||||
|                                                (GtkArrowType) flags, direction); | ||||
|          break; | ||||
|      case MOZ_GTK_MENUBAR: | ||||
| @ -1234,7 +1232,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|          break; | ||||
|      case MOZ_GTK_MENUPOPUP: | ||||
|          return moz_gtk_menu_popup_paint(cr, rect, direction); | ||||
| @@ -3375,7 +3599,7 @@ GtkWidget* moz_gtk_get_scrollbar_widget(
 | ||||
| @@ -3383,7 +3607,7 @@ GtkWidget* moz_gtk_get_scrollbar_widget(
 | ||||
|  { | ||||
|      MOZ_ASSERT(is_initialized, "Forgot to call moz_gtk_init()"); | ||||
|      ensure_scrollbar_widget(); | ||||
| @ -1243,7 +1241,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|  } | ||||
|   | ||||
|  gboolean moz_gtk_has_scrollbar_buttons(void) | ||||
| @@ -3383,7 +3607,7 @@ gboolean moz_gtk_has_scrollbar_buttons(v
 | ||||
| @@ -3391,7 +3615,7 @@ gboolean moz_gtk_has_scrollbar_buttons(v
 | ||||
|      gboolean backward, forward, secondary_backward, secondary_forward; | ||||
|      MOZ_ASSERT(is_initialized, "Forgot to call moz_gtk_init()"); | ||||
|      ensure_scrollbar_widget(); | ||||
| @ -1252,7 +1250,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|                            "has-backward-stepper", &backward, | ||||
|                            "has-forward-stepper", &forward, | ||||
|                            "has-secondary-backward-stepper", &secondary_backward, | ||||
| @@ -3409,17 +3633,19 @@ moz_gtk_shutdown()
 | ||||
| @@ -3415,17 +3639,19 @@ moz_gtk_shutdown()
 | ||||
|   | ||||
|      gProtoWindow = NULL; | ||||
|      gProtoLayout = NULL; | ||||
| @ -1279,7 +1277,7 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      gComboBoxWidget = NULL; | ||||
|      gComboBoxButtonWidget = NULL; | ||||
|      gComboBoxSeparatorWidget = NULL; | ||||
| @@ -3427,12 +3653,12 @@ moz_gtk_shutdown()
 | ||||
| @@ -3433,12 +3659,12 @@ moz_gtk_shutdown()
 | ||||
|      gComboBoxEntryWidget = NULL; | ||||
|      gComboBoxEntryButtonWidget = NULL; | ||||
|      gComboBoxEntryArrowWidget = NULL; | ||||
| @ -1294,9 +1292,9 @@ diff -up firefox-45.0.2/widget/gtk/gtk3drawing.c.gtk3-20 firefox-45.0.2/widget/g | ||||
|      gTabWidget = NULL; | ||||
|      gTooltipWidget = NULL; | ||||
|      gMenuBarWidget = NULL; | ||||
| diff -up firefox-45.0.2/widget/gtk/gtkdrawing.h.gtk3-20 firefox-45.0.2/widget/gtk/gtkdrawing.h
 | ||||
| --- firefox-45.0.2/widget/gtk/gtkdrawing.h.gtk3-20	2016-04-08 01:55:04.000000000 +0200
 | ||||
| +++ firefox-45.0.2/widget/gtk/gtkdrawing.h	2016-04-20 15:00:29.468048948 +0200
 | ||||
| diff -up firefox-46.0/widget/gtk/gtkdrawing.h.gtk3-20 firefox-46.0/widget/gtk/gtkdrawing.h
 | ||||
| --- firefox-46.0/widget/gtk/gtkdrawing.h.gtk3-20	2016-04-22 02:37:27.000000000 +0200
 | ||||
| +++ firefox-46.0/widget/gtk/gtkdrawing.h	2016-04-25 14:42:42.000000000 +0200
 | ||||
| @@ -67,6 +67,13 @@ typedef enum {
 | ||||
|    MOZ_GTK_TAB_SELECTED        = 1 << 10 | ||||
|  } GtkTabFlags; | ||||
| @ -1311,18 +1309,17 @@ diff -up firefox-45.0.2/widget/gtk/gtkdrawing.h.gtk3-20 firefox-45.0.2/widget/gt | ||||
|  /** flags for menuitems **/ | ||||
|  typedef enum { | ||||
|    /* menuitem is part of the menubar */ | ||||
| @@ -394,6 +401,10 @@ gint moz_gtk_get_tab_scroll_arrow_size(g
 | ||||
|   */ | ||||
|  gint moz_gtk_get_arrow_size(gint* width, gint* height); | ||||
| @@ -396,6 +403,9 @@ void
 | ||||
|  moz_gtk_get_arrow_size(GtkThemeWidgetType widgetType, | ||||
|                         gint* width, gint* height); | ||||
|   | ||||
| +gint moz_gtk_get_entry_height(gint* height);
 | ||||
| +
 | ||||
| +gint moz_gtk_get_button_height(gint* height);
 | ||||
| +
 | ||||
|  /** | ||||
|   * Get the desired size of a toolbar separator | ||||
|   * size:    [OUT] the desired width | ||||
| @@ -464,6 +475,12 @@ gboolean moz_gtk_images_in_buttons(void)
 | ||||
| @@ -466,6 +476,12 @@ gboolean moz_gtk_images_in_buttons(void)
 | ||||
|   */ | ||||
|  gboolean moz_gtk_has_scrollbar_buttons(void); | ||||
|   | ||||
| @ -1335,10 +1332,10 @@ diff -up firefox-45.0.2/widget/gtk/gtkdrawing.h.gtk3-20 firefox-45.0.2/widget/gt | ||||
|  #ifdef __cplusplus | ||||
|  } | ||||
|  #endif /* __cplusplus */ | ||||
| diff -up firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c
 | ||||
| --- firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c.gtk3-20	2016-04-20 15:00:29.443048846 +0200
 | ||||
| +++ firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c	2016-04-20 15:00:29.469048952 +0200
 | ||||
| @@ -503,6 +503,11 @@ STUB(gtk_window_set_type_hint)
 | ||||
| diff -up firefox-46.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-46.0/widget/gtk/mozgtk/mozgtk.c
 | ||||
| --- firefox-46.0/widget/gtk/mozgtk/mozgtk.c.gtk3-20	2016-04-22 02:37:27.000000000 +0200
 | ||||
| +++ firefox-46.0/widget/gtk/mozgtk/mozgtk.c	2016-04-25 14:46:15.299592716 +0200
 | ||||
| @@ -504,6 +504,11 @@ STUB(gtk_window_set_type_hint)
 | ||||
|  STUB(gtk_window_set_wmclass) | ||||
|  STUB(gtk_window_unfullscreen) | ||||
|  STUB(gtk_window_unmaximize) | ||||
| @ -1350,15 +1347,7 @@ diff -up firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-45.0.2/widget | ||||
|  #endif | ||||
|   | ||||
|  #ifdef GTK3_SYMBOLS | ||||
| @@ -550,6 +555,7 @@ STUB(gtk_style_context_get_border_color)
 | ||||
|  STUB(gtk_style_context_get_color) | ||||
|  STUB(gtk_style_context_get_margin) | ||||
|  STUB(gtk_style_context_get_padding) | ||||
| +STUB(gtk_style_context_get_state)
 | ||||
|  STUB(gtk_style_context_has_class) | ||||
|  STUB(gtk_style_context_new) | ||||
|  STUB(gtk_style_context_remove_class) | ||||
| @@ -577,6 +583,13 @@ STUB(gtk_color_chooser_get_type)
 | ||||
| @@ -581,6 +586,13 @@ STUB(gtk_color_chooser_get_type)
 | ||||
|  STUB(gtk_color_chooser_set_rgba) | ||||
|  STUB(gtk_color_chooser_get_rgba) | ||||
|  STUB(gtk_color_chooser_set_use_alpha) | ||||
| @ -1372,10 +1361,10 @@ diff -up firefox-45.0.2/widget/gtk/mozgtk/mozgtk.c.gtk3-20 firefox-45.0.2/widget | ||||
|  #endif | ||||
|   | ||||
|  #ifdef GTK2_SYMBOLS | ||||
| diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp
 | ||||
| --- firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20	2016-04-08 01:55:04.000000000 +0200
 | ||||
| +++ firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp	2016-04-20 15:00:29.469048952 +0200
 | ||||
| @@ -232,14 +232,18 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
| diff -up firefox-46.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-46.0/widget/gtk/nsLookAndFeel.cpp
 | ||||
| --- firefox-46.0/widget/gtk/nsLookAndFeel.cpp.gtk3-20	2016-04-22 02:37:27.000000000 +0200
 | ||||
| +++ firefox-46.0/widget/gtk/nsLookAndFeel.cpp	2016-04-25 14:18:25.000000000 +0200
 | ||||
| @@ -353,14 +353,18 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
|      case eColorID_activeborder: | ||||
|          // active window border | ||||
|          gtk_style_context_get_border_color(mBackgroundStyle,  | ||||
| @ -1396,7 +1385,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|          aColor = GDK_RGBA_TO_NS_RGBA(gdk_color); | ||||
|          break; | ||||
|      case eColorID_graytext: // disabled text in windows, menus, etc. | ||||
| @@ -248,9 +252,12 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
| @@ -369,9 +373,12 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
|          break; | ||||
|      case eColorID_inactivecaption: | ||||
|          // inactive window caption | ||||
| @ -1410,7 +1399,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|          aColor = GDK_RGBA_TO_NS_RGBA(gdk_color); | ||||
|          break; | ||||
|  #endif | ||||
| @@ -376,13 +383,17 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
| @@ -497,13 +504,17 @@ nsLookAndFeel::NativeGetColor(ColorID aI
 | ||||
|      case eColorID__moz_buttondefault: | ||||
|        // default button border color | ||||
|          gtk_style_context_get_border_color(mButtonStyle,  | ||||
| @ -1430,7 +1419,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|          aColor = GDK_RGBA_TO_NS_RGBA(gdk_color); | ||||
|          break; | ||||
|      case eColorID__moz_buttonhovertext: | ||||
| @@ -989,7 +1000,7 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1110,7 +1121,7 @@ nsLookAndFeel::Init()
 | ||||
|      style = create_context(path); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_SCROLLBAR); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_TROUGH); | ||||
| @ -1439,7 +1428,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|      sMozScrollbar = GDK_RGBA_TO_NS_RGBA(color); | ||||
|      g_object_unref(style); | ||||
|   | ||||
| @@ -997,18 +1008,18 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1118,18 +1129,18 @@ nsLookAndFeel::Init()
 | ||||
|      style = create_context(path); | ||||
|      gtk_style_context_save(style); | ||||
|      gtk_style_context_add_class(style, GTK_STYLE_CLASS_BACKGROUND); | ||||
| @ -1462,7 +1451,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|      sInfoText = GDK_RGBA_TO_NS_RGBA(color); | ||||
|      g_object_unref(style); | ||||
|   | ||||
| @@ -1023,20 +1034,26 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1144,20 +1155,26 @@ nsLookAndFeel::Init()
 | ||||
|      gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); | ||||
|   | ||||
|      style = gtk_widget_get_style_context(accel_label); | ||||
| @ -1494,7 +1483,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|   | ||||
|      g_object_unref(menu); | ||||
|  #endif | ||||
| @@ -1145,44 +1162,54 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1266,44 +1283,54 @@ nsLookAndFeel::Init()
 | ||||
|              GDK_COLOR_TO_NS_RGB(style->dark[GTK_STATE_NORMAL]); | ||||
|      } | ||||
|  #else | ||||
| @ -1566,7 +1555,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|   | ||||
|      // GTK's guide to fancy odd row background colors: | ||||
|      // 1) Check if a theme explicitly defines an odd row color | ||||
| @@ -1195,7 +1222,7 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1316,7 +1343,7 @@ nsLookAndFeel::Init()
 | ||||
|      // Get odd row background color | ||||
|      gtk_style_context_save(style); | ||||
|      gtk_style_context_add_region(style, GTK_STYLE_REGION_ROW, GTK_REGION_ODD); | ||||
| @ -1575,16 +1564,7 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|      sOddCellBackground = GDK_RGBA_TO_NS_RGBA(color); | ||||
|      gtk_style_context_restore(style); | ||||
|   | ||||
| @@ -1205,7 +1232,7 @@ nsLookAndFeel::Init()
 | ||||
|      // TODO GTK3 - update sFrameOuterLightBorder  | ||||
|      // for GTK_BORDER_STYLE_INSET/OUTSET/GROVE/RIDGE border styles (Bug 978172). | ||||
|      style = gtk_widget_get_style_context(frame); | ||||
| -    gtk_style_context_get_border_color(style, GTK_STATE_FLAG_NORMAL, &color);
 | ||||
| +    gtk_style_context_get_border_color(style, gtk_style_context_get_state(style), &color);
 | ||||
|      sFrameInnerDarkBorder = sFrameOuterLightBorder = GDK_RGBA_TO_NS_RGBA(color); | ||||
|   | ||||
|      gtk_widget_path_free(path); | ||||
| @@ -1217,9 +1244,11 @@ nsLookAndFeel::Init()
 | ||||
| @@ -1334,9 +1361,11 @@ nsLookAndFeel::Init()
 | ||||
|      gtk_container_add(GTK_CONTAINER(parent), infoBar); | ||||
|      gtk_container_add(GTK_CONTAINER(infoBarContent), infoBarLabel); | ||||
|      style = gtk_widget_get_style_context(infoBarLabel); | ||||
| @ -1597,10 +1577,10 @@ diff -up firefox-45.0.2/widget/gtk/nsLookAndFeel.cpp.gtk3-20 firefox-45.0.2/widg | ||||
|  #endif | ||||
|      // Some themes have a unified menu bar, and support window dragging on it | ||||
|      gboolean supports_menubar_drag = FALSE; | ||||
| diff -up firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20 firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp
 | ||||
| --- firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20	2016-04-08 01:55:04.000000000 +0200
 | ||||
| +++ firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp	2016-04-20 15:00:29.469048952 +0200
 | ||||
| @@ -1548,9 +1548,6 @@ nsNativeThemeGTK::GetMinimumWidgetSize(n
 | ||||
| diff -up firefox-46.0/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20 firefox-46.0/widget/gtk/nsNativeThemeGTK.cpp
 | ||||
| --- firefox-46.0/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20	2016-04-25 14:46:15.300592722 +0200
 | ||||
| +++ firefox-46.0/widget/gtk/nsNativeThemeGTK.cpp	2016-04-25 14:40:42.000000000 +0200
 | ||||
| @@ -1567,9 +1567,6 @@ nsNativeThemeGTK::GetMinimumWidgetSize(n
 | ||||
|    case NS_THEME_RADIO_CONTAINER: | ||||
|    case NS_THEME_CHECKBOX_LABEL: | ||||
|    case NS_THEME_RADIO_LABEL: | ||||
| @ -1609,12 +1589,11 @@ diff -up firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20 firefox-45.0.2/w | ||||
| -  case NS_THEME_TOOLBAR_BUTTON:
 | ||||
|    case NS_THEME_TREEVIEW_HEADER_CELL: | ||||
|      { | ||||
|        // Just include our border, and let the box code augment the size. | ||||
| @@ -1560,6 +1557,21 @@ nsNativeThemeGTK::GetMinimumWidgetSize(n
 | ||||
|        aResult->width = border.left + border.right; | ||||
|        aResult->height = border.top + border.bottom; | ||||
|        if (aWidgetType == NS_THEME_DROPDOWN) { | ||||
| @@ -1588,6 +1585,21 @@ nsNativeThemeGTK::GetMinimumWidgetSize(n
 | ||||
|        aResult->height += border.top + border.bottom; | ||||
|      } | ||||
| +    break; 
 | ||||
|      break; | ||||
| +  case NS_THEME_BUTTON:
 | ||||
| +  case NS_THEME_DROPDOWN:
 | ||||
| +  case NS_THEME_TOOLBAR_BUTTON:
 | ||||
| @ -1629,6 +1608,7 @@ diff -up firefox-45.0.2/widget/gtk/nsNativeThemeGTK.cpp.gtk3-20 firefox-45.0.2/w | ||||
| +    {
 | ||||
| +        moz_gtk_get_entry_height(&aResult->height);
 | ||||
| +    } 
 | ||||
|      break; | ||||
| +    break;
 | ||||
|    case NS_THEME_TOOLBAR_SEPARATOR: | ||||
|      { | ||||
|        gint separator_width; | ||||
|  | ||||
							
								
								
									
										28
									
								
								firefox.spec
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								firefox.spec
									
									
									
									
									
								
							| @ -86,14 +86,14 @@ | ||||
| 
 | ||||
| Summary:        Mozilla Firefox Web browser | ||||
| Name:           firefox | ||||
| Version:        45.0.2 | ||||
| Release:        5%{?pre_tag}%{?dist} | ||||
| Version:        46.0 | ||||
| Release:        1%{?pre_tag}%{?dist} | ||||
| URL:            https://www.mozilla.org/projects/firefox/ | ||||
| License:        MPLv1.1 or GPLv2+ or LGPLv2+ | ||||
| Group:          Applications/Internet | ||||
| Source0:        https://archive.mozilla.org/pub/firefox/releases/%{version}%{?pre_version}/source/firefox-%{version}%{?pre_version}.source.tar.xz | ||||
| %if %{build_langpacks} | ||||
| Source1:        firefox-langpacks-%{version}%{?pre_version}-20160411.tar.xz | ||||
| Source1:        firefox-langpacks-%{version}%{?pre_version}-20160425.tar.xz | ||||
| %endif | ||||
| Source10:       firefox-mozconfig | ||||
| Source12:       firefox-redhat-default-prefs.js | ||||
| @ -126,23 +126,15 @@ Patch223:        rhbz-1291190-appchooser-crash.patch | ||||
| Patch224:        mozilla-1170092.patch | ||||
| 
 | ||||
| # Upstream patches | ||||
| Patch301:        mozilla-1205199.patch | ||||
| Patch302:        mozilla-1228540.patch | ||||
| Patch303:        mozilla-1228540-1.patch | ||||
| Patch304:        mozilla-1253216.patch | ||||
| Patch305:        mozilla-1245076.patch | ||||
| Patch306:        mozilla-1245076-1.patch | ||||
| Patch307:        mozilla-1263145.patch | ||||
| Patch400:        mozilla-1255590.patch | ||||
| 
 | ||||
| # Debian patches | ||||
| Patch400:        Allow-unsigned-addons-in-usr-lib-share-mozilla-exten.patch | ||||
| Patch401:        mozilla-440908.patch | ||||
| 
 | ||||
| # Fix Skia Neon stuff on AArch64 | ||||
| # Update https://bugzilla.mozilla.org/show_bug.cgi?id=1142056 | ||||
| # when removed | ||||
| Patch500:        aarch64-fix-skia.patch | ||||
| 
 | ||||
| %if %{?system_nss} | ||||
| BuildRequires:  pkgconfig(nspr) >= %{nspr_version} | ||||
| BuildRequires:  pkgconfig(nss) >= %{nss_version} | ||||
| @ -268,7 +260,7 @@ cd %{tarballdir} | ||||
| %patch25 -p1 -b .rhbz-1219542-s390 | ||||
| %endif | ||||
| 
 | ||||
| %patch3  -p2 -b .arm | ||||
| %patch3  -p1 -b .arm | ||||
| 
 | ||||
| # For branding specific patches. | ||||
| 
 | ||||
| @ -278,9 +270,6 @@ cd %{tarballdir} | ||||
| %patch219 -p2 -b .rhbz-1173156 | ||||
| %patch221 -p2 -b .fedora-ua | ||||
| %patch223 -p1 -b .appchooser-crash | ||||
| %patch301 -p1 -b .1205199 | ||||
| %patch302 -p1 -b .1228540 | ||||
| %patch303 -p1 -b .1228540-1 | ||||
| %patch224 -p1 -b .1170092 | ||||
| %if 0%{?fedora} > 23 | ||||
| %patch304 -p2 -b .1253216 | ||||
| @ -289,13 +278,11 @@ cd %{tarballdir} | ||||
| %endif | ||||
| %patch305 -p1 -b .1245076 | ||||
| %patch306 -p1 -b .1245076-1 | ||||
| %patch400 -p1 -b .1255590 | ||||
| 
 | ||||
| # Debian extension patch | ||||
| %patch400 -p1 -b .debian-addon | ||||
| %patch401 -p1 -b .440908 | ||||
| 
 | ||||
| %patch500 -p1 | ||||
| 
 | ||||
| %{__rm} -f .mozconfig | ||||
| %{__cp} %{SOURCE10} .mozconfig | ||||
| %if %{official_branding} | ||||
| @ -805,6 +792,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : | ||||
| #--------------------------------------------------------------------- | ||||
| 
 | ||||
| %changelog | ||||
| * Mon Apr 25 2016 Martin Stransky <stransky@redhat.com> - 46.0-1 | ||||
| - Updated to 46.0 (B5) | ||||
| 
 | ||||
| * Thu Apr 21 2016 Martin Stransky <stransky@redhat.com> - 45.0.2-5 | ||||
| - Added patch for mozbz#1263145 | ||||
| 
 | ||||
|  | ||||
| @ -1,106 +0,0 @@ | ||||
| diff --git a/dom/plugins/base/nsPluginNativeWindowGtk.cpp b/dom/plugins/base/nsPluginNativeWindowGtk.cpp
 | ||||
| --- a/dom/plugins/base/nsPluginNativeWindowGtk.cpp
 | ||||
| +++ b/dom/plugins/base/nsPluginNativeWindowGtk.cpp
 | ||||
| @@ -19,16 +19,17 @@
 | ||||
|   | ||||
|  #if (GTK_MAJOR_VERSION == 3) | ||||
|  #include <gtk/gtkx.h> | ||||
|  #else | ||||
|  #include "gtk2xtbin.h" | ||||
|  #endif | ||||
|  #include "mozilla/X11Util.h" | ||||
|   | ||||
| +static void plug_added_cb(GtkWidget *widget, gpointer data);
 | ||||
|  static gboolean plug_removed_cb   (GtkWidget *widget, gpointer data); | ||||
|  static void socket_unrealize_cb   (GtkWidget *widget, gpointer data); | ||||
|   | ||||
|  nsPluginNativeWindowGtk::nsPluginNativeWindowGtk() : nsPluginNativeWindow() | ||||
|  { | ||||
|    // initialize the struct fields | ||||
|    window = nullptr;  | ||||
|    x = 0;  | ||||
| @@ -158,16 +159,19 @@ nsresult nsPluginNativeWindowGtk::Create
 | ||||
|   | ||||
|    //attach the socket to the container widget | ||||
|    gtk_widget_set_parent_window(mSocketWidget, parent_win); | ||||
|   | ||||
|    // enable/disable focus event handlers, | ||||
|    // see plugin_window_filter_func() for details | ||||
|    g_object_set_data(G_OBJECT(mSocketWidget), "enable-xt-focus", (void *)aEnableXtFocus); | ||||
|   | ||||
| +  g_signal_connect(mSocketWidget, "plug_added",
 | ||||
| +                   G_CALLBACK(plug_added_cb), nullptr);
 | ||||
| +
 | ||||
|    // Make sure to handle the plug_removed signal.  If we don't the | ||||
|    // socket will automatically be destroyed when the plug is | ||||
|    // removed, which means we're destroying it more than once. | ||||
|    // SYNTAX ERROR. | ||||
|    g_signal_connect(mSocketWidget, "plug_removed", | ||||
|                     G_CALLBACK(plug_removed_cb), nullptr); | ||||
|   | ||||
|    g_signal_connect(mSocketWidget, "unrealize", | ||||
| @@ -273,16 +277,42 @@ nsresult nsPluginNativeWindowGtk::Create
 | ||||
|    // Leave mWsInfo.type = 0 - Who knows what this is meant to be? | ||||
|   | ||||
|    XFlush(mWsInfo.display); | ||||
|   | ||||
|    return NS_OK; | ||||
|  } | ||||
|  #endif | ||||
|   | ||||
| +static void
 | ||||
| +plug_window_finalize_cb(gpointer socket, GObject* plug_window)
 | ||||
| +{
 | ||||
| +  g_object_unref(socket);
 | ||||
| +}
 | ||||
| +
 | ||||
| +static void
 | ||||
| +plug_added_cb(GtkWidget *socket, gpointer data)
 | ||||
| +{
 | ||||
| +  // The plug window has been embedded, and gtk_socket_add_window() has added
 | ||||
| +  // a filter to the socket's plug_window, passing the socket as data for the
 | ||||
| +  // filter, so the socket must live as long as events may be received on the
 | ||||
| +  // plug window.
 | ||||
| +  //
 | ||||
| +  // https://git.gnome.org/browse/gtk+/tree/gtk/gtksocket.c?h=3.18.7#n1124
 | ||||
| +  g_object_ref(socket);
 | ||||
| +  // When the socket is unrealized, perhaps during gtk_widget_destroy() from
 | ||||
| +  // ~nsPluginNativeWindowGtk, the plug is removed.  The plug in the child
 | ||||
| +  // process then destroys its widget and window.  When the browser process
 | ||||
| +  // receives the DestroyNotify event for the plug window, GDK releases its
 | ||||
| +  // reference to plugWindow.  This is typically the last reference and so the
 | ||||
| +  // weak ref callback triggers release of the socket.
 | ||||
| +  GdkWindow* plugWindow = gtk_socket_get_plug_window(GTK_SOCKET(socket));
 | ||||
| +  g_object_weak_ref(G_OBJECT(plugWindow), plug_window_finalize_cb, socket);
 | ||||
| +}
 | ||||
| +
 | ||||
|  /* static */ | ||||
|  gboolean | ||||
|  plug_removed_cb (GtkWidget *widget, gpointer data) | ||||
|  { | ||||
|    // Gee, thanks for the info! | ||||
|    return TRUE; | ||||
|  } | ||||
|   | ||||
| diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
 | ||||
| --- a/widget/gtk/mozgtk/mozgtk.c
 | ||||
| +++ b/widget/gtk/mozgtk/mozgtk.c
 | ||||
| @@ -384,16 +384,17 @@ STUB(gtk_selection_data_targets_include_
 | ||||
|  STUB(gtk_separator_get_type) | ||||
|  STUB(gtk_separator_menu_item_new) | ||||
|  STUB(gtk_separator_tool_item_new) | ||||
|  STUB(gtk_settings_get_default) | ||||
|  STUB(gtk_settings_get_for_screen) | ||||
|  STUB(gtk_socket_add_id) | ||||
|  STUB(gtk_socket_get_id) | ||||
|  STUB(gtk_socket_get_type) | ||||
| +STUB(gtk_socket_get_plug_window)
 | ||||
|  STUB(gtk_socket_new) | ||||
|  STUB(gtk_spin_button_new) | ||||
|  STUB(gtk_statusbar_new) | ||||
|  STUB(gtk_style_lookup_icon_set) | ||||
|  STUB(gtk_table_attach) | ||||
|  STUB(gtk_table_get_type) | ||||
|  STUB(gtk_table_new) | ||||
|  STUB(gtk_target_list_add) | ||||
| 
 | ||||
| @ -1,84 +0,0 @@ | ||||
| # HG changeset patch | ||||
| # User Jonathan Kew <jkew@mozilla.com> | ||||
| # Date 1452675061 0 | ||||
| #      Wed Jan 13 08:51:01 2016 +0000 | ||||
| # Node ID cf699e95e98829b465b64a7e0281d95ec851ce8c | ||||
| # Parent  3c9f357598e86c2f593e9895d5725bf3498f8f5a | ||||
| Bug 1228540 - pt 2 - Remove our HBGetGlyphHOrigin callback, as the default behavior is sufficient. | ||||
| 
 | ||||
| diff --git a/gfx/thebes/gfxHarfBuzzShaper.cpp b/gfx/thebes/gfxHarfBuzzShaper.cpp
 | ||||
| --- a/gfx/thebes/gfxHarfBuzzShaper.cpp
 | ||||
| +++ b/gfx/thebes/gfxHarfBuzzShaper.cpp
 | ||||
| @@ -349,27 +349,16 @@ gfxHarfBuzzShaper::HBGetGlyphVAdvance(hb
 | ||||
|          static_cast<const gfxHarfBuzzShaper::FontCallbackData*>(font_data); | ||||
|      // Currently, we don't offer gfxFont subclasses a method to override this | ||||
|      // and provide hinted platform-specific vertical advances (analogous to the | ||||
|      // GetGlyphWidth method for horizontal advances). If that proves necessary, | ||||
|      // we'll add a new gfxFont method and call it from here. | ||||
|      return fcd->mShaper->GetGlyphVAdvance(glyph); | ||||
|  } | ||||
|   | ||||
| -/* static */
 | ||||
| -hb_bool_t
 | ||||
| -gfxHarfBuzzShaper::HBGetGlyphHOrigin(hb_font_t *font, void *font_data,
 | ||||
| -                                     hb_codepoint_t glyph,
 | ||||
| -                                     hb_position_t *x, hb_position_t *y,
 | ||||
| -                                     void *user_data)
 | ||||
| -{
 | ||||
| -    // We work in horizontal coordinates, so no origin adjustment needed here.
 | ||||
| -    return true;
 | ||||
| -}
 | ||||
| -
 | ||||
|  struct VORG { | ||||
|      AutoSwap_PRUint16 majorVersion; | ||||
|      AutoSwap_PRUint16 minorVersion; | ||||
|      AutoSwap_PRInt16  defaultVertOriginY; | ||||
|      AutoSwap_PRUint16 numVertOriginYMetrics; | ||||
|  }; | ||||
|   | ||||
|  struct VORGrec { | ||||
| @@ -1262,19 +1251,16 @@ gfxHarfBuzzShaper::Initialize()
 | ||||
|          hb_font_funcs_set_glyph_func(sHBFontFuncs, HBGetGlyph, | ||||
|                                       nullptr, nullptr); | ||||
|          hb_font_funcs_set_glyph_h_advance_func(sHBFontFuncs, | ||||
|                                                 HBGetGlyphHAdvance, | ||||
|                                                 nullptr, nullptr); | ||||
|          hb_font_funcs_set_glyph_v_advance_func(sHBFontFuncs, | ||||
|                                                 HBGetGlyphVAdvance, | ||||
|                                                 nullptr, nullptr); | ||||
| -        hb_font_funcs_set_glyph_h_origin_func(sHBFontFuncs,
 | ||||
| -                                              HBGetGlyphHOrigin,
 | ||||
| -                                              nullptr, nullptr);
 | ||||
|          hb_font_funcs_set_glyph_v_origin_func(sHBFontFuncs, | ||||
|                                                HBGetGlyphVOrigin, | ||||
|                                                nullptr, nullptr); | ||||
|          hb_font_funcs_set_glyph_extents_func(sHBFontFuncs, | ||||
|                                               HBGetGlyphExtents, | ||||
|                                               nullptr, nullptr); | ||||
|          hb_font_funcs_set_glyph_contour_point_func(sHBFontFuncs, | ||||
|                                                     HBGetContourPoint, | ||||
| diff --git a/gfx/thebes/gfxHarfBuzzShaper.h b/gfx/thebes/gfxHarfBuzzShaper.h
 | ||||
| --- a/gfx/thebes/gfxHarfBuzzShaper.h
 | ||||
| +++ b/gfx/thebes/gfxHarfBuzzShaper.h
 | ||||
| @@ -56,21 +56,16 @@ public:
 | ||||
|                         hb_codepoint_t glyph, void *user_data); | ||||
|   | ||||
|      // get harfbuzz vertical advance in 16.16 fixed point format. | ||||
|      static hb_position_t | ||||
|      HBGetGlyphVAdvance(hb_font_t *font, void *font_data, | ||||
|                         hb_codepoint_t glyph, void *user_data); | ||||
|   | ||||
|      static hb_bool_t | ||||
| -    HBGetGlyphHOrigin(hb_font_t *font, void *font_data,
 | ||||
| -                      hb_codepoint_t glyph,
 | ||||
| -                      hb_position_t *x, hb_position_t *y,
 | ||||
| -                      void *user_data);
 | ||||
| -    static hb_bool_t
 | ||||
|      HBGetGlyphVOrigin(hb_font_t *font, void *font_data, | ||||
|                        hb_codepoint_t glyph, | ||||
|                        hb_position_t *x, hb_position_t *y, | ||||
|                        void *user_data); | ||||
|   | ||||
|      hb_position_t GetHKerning(uint16_t aFirstGlyph, | ||||
|                                uint16_t aSecondGlyph) const; | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										60
									
								
								mozilla-1255590.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								mozilla-1255590.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,60 @@ | ||||
| diff --git a/toolkit/mozapps/extensions/content/extensions.js b/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| --- a/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| +++ b/toolkit/mozapps/extensions/content/extensions.js
 | ||||
| @@ -195,19 +195,25 @@ function loadView(aViewId) {
 | ||||
|   | ||||
|      gViewController.loadInitialView(aViewId); | ||||
|    } else { | ||||
|      gViewController.loadView(aViewId); | ||||
|    } | ||||
|  } | ||||
|   | ||||
|  function isCorrectlySigned(aAddon) { | ||||
| -  // temporary add-ons do not require signing
 | ||||
| +  // Temporary add-ons do not require signing.
 | ||||
|    if (aAddon.scope == AddonManager.SCOPE_TEMPORARY) | ||||
|        return true; | ||||
| +  // On UNIX platforms except OSX, an additional location for system add-ons
 | ||||
| +  // exists in /usr/{lib,share}/mozilla/extensions. Add-ons installed there
 | ||||
| +  // do not require signing either.
 | ||||
| +  if (aAddon.scope == AddonManager.SCOPE_SYSTEM &&
 | ||||
| +      Services.appinfo.OS != "Darwin")
 | ||||
| +    return true;
 | ||||
|    if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING) | ||||
|      return false; | ||||
|    return true; | ||||
|  } | ||||
|   | ||||
|  function isDiscoverEnabled() { | ||||
|    if (Services.prefs.getPrefType(PREF_DISCOVERURL) == Services.prefs.PREF_INVALID) | ||||
|      return false; | ||||
| diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.jsm b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| --- a/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| +++ b/toolkit/mozapps/extensions/internal/XPIProvider.jsm
 | ||||
| @@ -682,18 +682,23 @@ function isUsableAddon(aAddon) {
 | ||||
|    // Hack to ensure the default theme is always usable | ||||
|    if (aAddon.type == "theme" && aAddon.internalName == XPIProvider.defaultSkin) | ||||
|      return true; | ||||
|   | ||||
|    if (aAddon._installLocation.name == KEY_APP_SYSTEM_ADDONS && | ||||
|        aAddon.signedState != AddonManager.SIGNEDSTATE_SYSTEM) { | ||||
|      return false; | ||||
|    } | ||||
| -  // temporary and system add-ons do not require signing
 | ||||
| -  if ((aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
 | ||||
| +  // Temporary and system add-ons do not require signing.
 | ||||
| +  // On UNIX platforms except OSX, an additional location for system add-ons
 | ||||
| +  // exists in /usr/{lib,share}/mozilla/extensions. Add-ons installed there
 | ||||
| +  // do not require signing either.
 | ||||
| +  if (((aAddon._installLocation.scope != AddonManager.SCOPE_SYSTEM ||
 | ||||
| +        Services.appinfo.OS == "Darwin") &&
 | ||||
| +       aAddon._installLocation.name != KEY_APP_SYSTEM_DEFAULTS &&
 | ||||
|         aAddon._installLocation.name != KEY_APP_TEMPORARY) && | ||||
|         mustSign(aAddon.type)) { | ||||
|      if (aAddon.signedState <= AddonManager.SIGNEDSTATE_MISSING) | ||||
|        return false; | ||||
|    } | ||||
|   | ||||
|    if (aAddon.blocklistState == Blocklist.STATE_BLOCKED) | ||||
|      return false; | ||||
| 
 | ||||
| @ -1,6 +1,6 @@ | ||||
| diff -up firefox-45.0/firefox-45.0/media/webrtc/trunk/webrtc/build/common.gypi.arm firefox-45.0/firefox-45.0/media/webrtc/trunk/webrtc/build/common.gypi
 | ||||
| --- firefox-45.0/firefox-45.0/media/webrtc/trunk/webrtc/build/common.gypi.arm	2016-03-02 13:32:46.828341623 +0100
 | ||||
| +++ firefox-45.0/firefox-45.0/media/webrtc/trunk/webrtc/build/common.gypi	2016-03-02 13:35:16.658897278 +0100
 | ||||
| diff -up firefox-46.0/media/webrtc/trunk/webrtc/build/common.gypi.arm firefox-46.0/media/webrtc/trunk/webrtc/build/common.gypi
 | ||||
| --- firefox-46.0/media/webrtc/trunk/webrtc/build/common.gypi.arm	2016-04-25 12:03:12.486027089 +0200
 | ||||
| +++ firefox-46.0/media/webrtc/trunk/webrtc/build/common.gypi	2016-04-25 12:05:55.714644873 +0200
 | ||||
| @@ -312,20 +312,6 @@
 | ||||
|          'defines': [ | ||||
|            'WEBRTC_ARCH_ARM', | ||||
| @ -13,7 +13,7 @@ diff -up firefox-45.0/firefox-45.0/media/webrtc/trunk/webrtc/build/common.gypi.a | ||||
| -              ['arm_neon==1', {
 | ||||
| -                'defines': ['WEBRTC_ARCH_ARM_NEON',],
 | ||||
| -              }],
 | ||||
| -              ['arm_neon==0 and (OS=="android" or moz_widget_toolkit_gonk==1)', {
 | ||||
| -              ['arm_neon==0 and arm_neon_optional==1', {
 | ||||
| -                'defines': ['WEBRTC_DETECT_ARM_NEON',],
 | ||||
| -              }],
 | ||||
| -            ],
 | ||||
|  | ||||
							
								
								
									
										4
									
								
								sources
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								sources
									
									
									
									
									
								
							| @ -1,2 +1,2 @@ | ||||
| deda5fcd4a41fc63cb8c14102cb8c561  firefox-45.0.2.source.tar.xz | ||||
| 0fb89c80ad1d12ec7c9246b8345c7cf4  firefox-langpacks-45.0.2-20160411.tar.xz | ||||
| 8a516da3858b17f55451810efc7a239a  firefox-46.0.source.tar.xz | ||||
| a3d5dfc93c9e657908319a2c21212e69  firefox-langpacks-46.0-20160425.tar.xz | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user