public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/blogs-gentoo:master commit in: plugins/jetpack/modules/sharedaddy/, ...
@ 2017-03-19  6:03 Yury German
  0 siblings, 0 replies; only message in thread
From: Yury German @ 2017-03-19  6:03 UTC (permalink / raw
  To: gentoo-commits

commit:     d946d0ca50778c9baa09f05d09cb2e92720b82fe
Author:     Yury German <blueknight <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 19 06:02:42 2017 +0000
Commit:     Yury German <blueknight <AT> gentoo <DOT> org>
CommitDate: Sun Mar 19 06:02:42 2017 +0000
URL:        https://gitweb.gentoo.org/proj/blogs-gentoo.git/commit/?id=d946d0ca

Jetpack version 4.7.1

 plugins/jetpack/_inc/jetpack-strings.php           |  16 +--
 plugins/jetpack/changelog.txt                      |  86 ++++++++++++++
 plugins/jetpack/class.jetpack.php                  |  36 +++++-
 plugins/jetpack/css/jetpack-rtl.css                |   3 +
 plugins/jetpack/css/jetpack.css                    |   3 +
 plugins/jetpack/jetpack.php                        |   4 +-
 .../jetpack/modules/carousel/jetpack-carousel.js   |   5 +
 plugins/jetpack/modules/markdown.php               |  14 +++
 .../jetpack/modules/sharedaddy/sharing-service.php |   6 -
 plugins/jetpack/modules/sso.php                    |  74 ++++++++++--
 .../modules/videopress/class.videopress-xmlrpc.php |  13 ++-
 .../modules/videopress/utility-functions.php       | 128 ++++++++++++++++++++-
 .../widget-visibility/widget-conditions.php        |  76 ++++++++++++
 .../rtl/widget-conditions-rtl.css                  |  59 ++++++++--
 .../widget-conditions/widget-conditions.js         |   5 +-
 plugins/jetpack/modules/widgets/image-widget.php   |  14 +--
 plugins/jetpack/readme.txt                         |  20 +++-
 17 files changed, 503 insertions(+), 59 deletions(-)

diff --git a/plugins/jetpack/_inc/jetpack-strings.php b/plugins/jetpack/_inc/jetpack-strings.php
index 7e177b7..3c626a2 100644
--- a/plugins/jetpack/_inc/jetpack-strings.php
+++ b/plugins/jetpack/_inc/jetpack-strings.php
@@ -131,11 +131,11 @@ __( "Security Scanning", "jetpack" ), // _inc/client/at-a-glance/scan.jsx:29
 __( "{{a}}Activate Site Verification{{/a}} to verify your site and increase ranking with Google, Bing, and Pinterest.", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:43
 __( "Site Verification Tools are active. Ensure your site is verified with Google, Bing, and Pinterest for more accurate indexing and ranking. {{a}}Verify now{{/a}}", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:27
 __( "Site Verification Tools", "jetpack" ), // _inc/client/at-a-glance/site-verification.jsx:21
-__( "By activating ads, you agree to the Automattic Ads {{link}}Terms of Service{{/link}}.", "jetpack" ), // _inc/client/engagement/index.jsx:276
-__( "View your earnings", "jetpack" ), // _inc/client/engagement/index.jsx:251
-__( "View your {{a}}Email Followers{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:232
-__( "View {{a}}All Stats{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:217
-__( "Learn More", "jetpack" ), // _inc/client/engagement/index.jsx:210
+__( "By activating ads, you agree to the Automattic Ads {{link}}Terms of Service{{/link}}.", "jetpack" ), // _inc/client/engagement/index.jsx:279
+__( "View your earnings", "jetpack" ), // _inc/client/engagement/index.jsx:254
+__( "View your {{a}}Email Followers{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:235
+__( "View {{a}}All Stats{{/a}}", "jetpack" ), // _inc/client/engagement/index.jsx:220
+__( "Learn More", "jetpack" ), // _inc/client/engagement/index.jsx:213
 __( "Paid", "jetpack" ), // _inc/client/engagement/index.jsx:158
 __( "Unavailable in Dev Mode", "jetpack" ), // _inc/client/engagement/index.jsx:128
 __( "Your site must be accessible by search engines for this feature to work properly. You can change this in {{a}}Reading Settings{{/a}}.", "jetpack" ), // _inc/client/engagement/index.jsx:55
@@ -279,14 +279,14 @@ __( "Something happened while loading stats. Please try again later or {{a}}view
 __( "Click to view detailed stats.", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:92
 __( "Views: %(numberOfViews)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:90
 __( "Week of %(date)s", "jetpack" ), // _inc/client/at-a-glance/stats/index.jsx:74
-__( "Paid", "jetpack" ), // _inc/client/components/dash-item/index.jsx:98
-__( "Active", "jetpack" ), // _inc/client/components/dash-item/index.jsx:87
-__( "Updates Needed", "jetpack" ), // _inc/client/components/dash-item/index.jsx:81
 __( "Connect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:101
 __( "Disconnect Jetpack", "jetpack" ), // _inc/client/components/connect-button/index.jsx:86
 __( "Do you really want to disconnect your site from WordPress.com?", "jetpack" ), // _inc/client/components/connect-button/index.jsx:71
 __( "Link to WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:65
 __( "Unlink me from WordPress.com", "jetpack" ), // _inc/client/components/connect-button/index.jsx:48
+__( "Paid", "jetpack" ), // _inc/client/components/dash-item/index.jsx:98
+__( "Active", "jetpack" ), // _inc/client/components/dash-item/index.jsx:87
+__( "Updates Needed", "jetpack" ), // _inc/client/components/dash-item/index.jsx:81
 _x( "Settings", "Noun. Displayed to screen readers.", "jetpack" ), // _inc/client/components/dash-section-header/index.jsx:43
 _x( "Privacy", "Shorthand for Privacy Policy.", "jetpack" ), // _inc/client/components/footer/index.jsx:126
 __( "Automattic's Privacy Policy", "jetpack" ), // _inc/client/components/footer/index.jsx:124

diff --git a/plugins/jetpack/changelog.txt b/plugins/jetpack/changelog.txt
index 3412325..c47593d 100644
--- a/plugins/jetpack/changelog.txt
+++ b/plugins/jetpack/changelog.txt
@@ -1,5 +1,91 @@
 == Changelog ==
 
+= 4.7 =
+
+* Release date: March 7th, 2017
+* Release post: http://wp.me/p1moTy-46L
+
+**Enhancements**
+
+* Quickly jump to post specific stats on WordPress.com with a new link.
+* We've added more information to our debug tools to improve your support experience.
+* New HTML5 versions of our house ads are out.
+* Display custom copyright EXIF information in the Carousel with this new filter.
+* We've highlighted the ability to export Contact Form feedback as it was being overlooked.
+* If you have images on WordPress.com we're going to skip using Photon when the images include resize parameters.
+* It is now possible to use the Sharing filter to customize the emails sent from the Email Sharing button.
+* We've updated the library powering the Print link in the Recipe shortcode.
+* Customize the speed and display of your slideshows with new Slideshow shortcode filters.
+* The Twitch.tv shortcode now uses Twitch's new embedded player.
+* Social Menus now come with the option to use SVG icons.
+* Customize the content of the Display Posts Widget with a new filter.
+* We've added a new email field to the Contact Info Widget.
+* The Image and the Text widgets now use Photon if it is enabled.
+* The WordPress.com REST API got several updates including using `register_rest_route()` consistently for registering, new date and time format settings, a filter for theme info results, new links and endpoints, and more.
+* We cleaned up the Google+ Shortcode JS library and added a way to filter the SlideShare shortcode.
+
+**Performance Improvements**
+
+* Experience better performance with single page load caching of the media summary.
+* We made some improvements to avoid slow queries on sites with thousands of images.
+* The Top Posts widget now utilizes an endpoint from the WP.com REST API improving performance.
+* Improve development mode performance by only calling `site_url()` once.
+* We rewrote the way major/minor rules lists are generated to save bandwidth, and memory for sites using Widget Visibility.
+* We've removed sync options that weren't needed to save memory during the sync process.
+
+**Accessibility**
+
+* We've improved the highlight of the stats range for a better visual experience and to make it consistent with other areas of the dashboard.
+* Added a missing label to one of the fields in the Email sharing dialog.
+* We've enabled keyboard focus styling in the new admin interface.
+* Increased padding to sharing buttons on mobile to avoid usability issues.
+* We've replaced Widget Visibility text labels with icons to improve usability on smaller devices.
+
+**Slightly Less Exciting Enhancements:**
+
+* We've added a filter to allow you to remove the Comment Form title.
+* The Development Mode notice got an update to include all possible options to activate Development mode.
+* Jetpack registration function got an update and cleanup.
+* A notice displayed to WooCommerce store owners now detects when WooCommerce Services is installed, but not active.
+* We've removed the Holiday Snow settings until you need them.
+* Improved Infinite Scroll settings to reduce confusion.
+* The HTML classes `infinite-scroll` and `neverending` are now applied using JS instead of PHP.
+* We've updated the support link appearing when you're locked out of your site.
+* New Unit Tests were added to make sure Publicize doesn't break when making changes to the Publicize process.
+* We've added a sync filter to allow customizing timeout.
+* The Top Posts widget now supports non-square image sizes.
+* Added the Video GUID to the media API endpoint.
+
+**Improved Compatibility**
+
+* Fixed some W3C validation errors in Comments.
+* Infinite Scroll now works beautifully with the Twenty Seventeen Theme.
+* Translate new terms easier with an improvement to the translator comments.
+* We switched to use Core functions to retrieve the list of sites in a multisite network for more accurate results.
+* We added Product visibility to post meta whitelist, for better control of products displayed in Related Posts.
+* We no longer sync specific post meta data added by Postman or WP RSS Mutli Importer to avoid performance issues during the sync process.
+* We're now avoiding conflicts with plugins adding the core Video upload library to the post editor.
+* Removed deprecated compatibility code for older versions of WordPress.
+* We had some Shortcode conflicts with WordPress Post embeds, but that's been fixed.
+
+**Bug Fixes**
+
+* The Carousel `jp_carousel_load_for_images_linked_to_file` filter wasn't working well with Photon, this has been fixed.
+* Carousel is now working well when loaded from infinite scroll.
+* We removed double slashes from file paths in the Contact Form to avoid errors in specific server environments.
+* Fixed a problem where CSS was being stripped when migrating from Jetpack's Custom CSS to Core's CSS editor.
+* Our Debug Tool is now reporting the correct URL when WordPress lives in a subdirectory.
+* Found and fixed a PHP error when uninstalling Jetpack.
+* Infinite Scroll is no longer buggy when displaying the last page, and is more compatible with certain themes that were returning posts when there were none left to show.
+* We're now skipping Photon for .ashx files.
+* The Twitter character counter in Publicize got a fix to display info correctly.
+* Related Posts are now displaying correctly for everyone, and we brought back the `jetpack_sharing_headline_html` filter.
+* We've improved Sharing to render custom sharing services correctly, include Open Graph Meta Tags, and avoid JavaScript errors when jQuery is enqueued in the footer.
+* Synchronization scheduling issues have been resolved.
+* We're now trimming spaces in URLs for Image and Display Posts Widgets.
+* Widget Visibility wasn't playing nice on taxonomy pages, this is no longer the case.
+* The WordPress.com REST API received a couple of fixes to remove PHP errors when editing via the WordPress.com interface, authentication errors when using third-party apps, and permission errors when trying to preview edited posts in the WordPress.com editor.
+
 = 4.6 =
 
 * Release date: February 7, 2017

diff --git a/plugins/jetpack/class.jetpack.php b/plugins/jetpack/class.jetpack.php
index c347322..0cd3870 100644
--- a/plugins/jetpack/class.jetpack.php
+++ b/plugins/jetpack/class.jetpack.php
@@ -335,7 +335,7 @@ class Jetpack {
 			list( $version ) = explode( ':', Jetpack_Options::get_option( 'version' ) );
 			if ( JETPACK__VERSION != $version ) {
 
-				// Check which active modules actually exist and remove others from active_modules list
+				// check which active modules actually exist and remove others from active_modules list
 				$unfiltered_modules = Jetpack::get_active_modules();
 				$modules = array_filter( $unfiltered_modules, array( 'Jetpack', 'is_module' ) );
 				if ( array_diff( $unfiltered_modules, $modules ) ) {
@@ -349,11 +349,43 @@ class Jetpack {
 					Jetpack_Options::delete_option( 'identity_crisis_whitelist' );
 				}
 
-				Jetpack::maybe_set_version_option();
+				// Make sure Markdown for posts gets turned back on
+				if ( ! get_option( 'wpcom_publish_posts_with_markdown' ) ) {
+					update_option( 'wpcom_publish_posts_with_markdown', true );
+				}
+
+				if ( did_action( 'wp_loaded' ) ) {
+					self::upgrade_on_load();
+				} else {
+					add_action(
+						'wp_loaded',
+						array( __CLASS__, 'upgrade_on_load' )
+					);
+				}
 			}
 		}
 	}
 
+	/**
+	 * Runs upgrade routines that need to have modules loaded.
+	 */
+	static function upgrade_on_load() {
+
+		// Not attempting any upgrades if jetpack_modules_loaded did not fire.
+		// This can happen in case Jetpack has been just upgraded and is
+		// being initialized late during the page load. In this case we wait
+		// until the next proper admin page load with Jetpack active.
+		if ( ! did_action( 'jetpack_modules_loaded' ) ) {
+			return;
+		}
+
+		Jetpack::maybe_set_version_option();
+
+		if ( class_exists( 'Jetpack_Widget_Conditions' ) ) {
+			Jetpack_Widget_Conditions::migrate_post_type_rules();
+		}
+	}
+
 	static function activate_manage( ) {
 		if ( did_action( 'init' ) || current_filter() == 'init' ) {
 			self::activate_module( 'manage', false, false );

diff --git a/plugins/jetpack/css/jetpack-rtl.css b/plugins/jetpack/css/jetpack-rtl.css
index 5358ab7..168d7e7 100644
--- a/plugins/jetpack/css/jetpack-rtl.css
+++ b/plugins/jetpack/css/jetpack-rtl.css
@@ -22,4 +22,7 @@ div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding
 .jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
 .widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:100% 0;clear:none;float:right;margin:0 0 -3px -5px;padding:0 0 6px 8px;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:100% 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
 .widget.widget_authors li>ul,.widget_authors>ul{margin-right:inherit;padding-right:0}.widget_authors ul li li{padding-right:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-left:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
+/*!
+* Do not modify this file directly.  It is compiled SASS code.
+*/#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#23282d;padding:4px 8px;font-size:12px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#23282d;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#eee}
 .wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;right:0;left:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:right!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
\ No newline at end of file

diff --git a/plugins/jetpack/css/jetpack.css b/plugins/jetpack/css/jetpack.css
index 0240848..a56d0e3 100644
--- a/plugins/jetpack/css/jetpack.css
+++ b/plugins/jetpack/css/jetpack.css
@@ -22,4 +22,7 @@ div[class^=gr_custom_container]{border:1px solid gray;border-radius:10px;padding
 .jetpack-image-container:after{clear:both}.jetpack-image-container:after,.jetpack-image-container:before{display:table;content:""}
 .widgets-multi-column-grid ul{overflow:hidden;padding:0;margin:0;list-style-type:none}.widgets-multi-column-grid ul li{background:0 0;clear:none;float:left;margin:0 -5px -3px 0;padding:0 8px 6px 0;border:none;list-style-type:none!important}.widgets-multi-column-grid ul li a{background:0 0;margin:0;padding:0;border:0}.widgets-multi-column-grid .avatar{vertical-align:middle}.widget_jetpack_my_community .avatar-240,.widget_jetpack_my_community .avatar-48{max-width:48px;max-height:48px}
 .widget.widget_authors li>ul,.widget_authors>ul{margin-left:inherit;padding-left:0}.widget_authors ul li li{padding-left:0}.widget_authors>ul>li{margin-bottom:1em;list-style:none}.widget_authors>ul>li+li{border-top:0}.widget.widget_authors img{margin-right:5px;margin-bottom:5px;vertical-align:middle;box-shadow:none}
+/*!
+* Do not modify this file directly.  It is compiled SASS code.
+*/#wp-admin-bar-jetpack-idc.hide{display:none}#wp-admin-bar-jetpack-idc .jp-idc-admin-bar{background:#fff;border-radius:2px;color:#23282d;padding:4px 8px;font-size:12px}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons{color:#23282d;font-family:dashicons}#wpadminbar #wp-admin-bar-jetpack-idc .dashicons:before{font-size:16px}#wpadminbar #wp-admin-bar-jetpack-idc:hover .ab-item{background:inherit}#wpadminbar #wp-admin-bar-jetpack-idc:hover .jp-idc-admin-bar{background:#eee}
 .wpcnt{text-align:center;line-height:2}.wpa{position:relative;overflow:hidden;display:inline-block;max-width:100%}.wpa-about{position:absolute;top:5px;left:0;right:0;display:block;margin-top:0;color:#888;font:10px/1 "Open Sans",Arial,sans-serif!important;text-align:left!important;text-decoration:none!important;opacity:.85;border-bottom:none!important;box-shadow:none!important}.wpa .u>div{display:block;margin-top:5px;margin-bottom:1em}div.wpa>div{margin-top:20px}.wpa .u .adsbygoogle{display:block;margin-top:17px;margin-bottom:1em;background-color:transparent}
\ No newline at end of file

diff --git a/plugins/jetpack/jetpack.php b/plugins/jetpack/jetpack.php
index 71df606..79109e0 100644
--- a/plugins/jetpack/jetpack.php
+++ b/plugins/jetpack/jetpack.php
@@ -5,7 +5,7 @@
  * Plugin URI: http://jetpack.com
  * Description: Bring the power of the WordPress.com cloud to your self-hosted WordPress. Jetpack enables you to connect your blog to a WordPress.com account to use the powerful features normally only available to WordPress.com users.
  * Author: Automattic
- * Version: 4.7
+ * Version: 4.7.1
  * Author URI: http://jetpack.com
  * License: GPL2+
  * Text Domain: jetpack
@@ -14,7 +14,7 @@
 
 define( 'JETPACK__MINIMUM_WP_VERSION', '4.6' );
 
-define( 'JETPACK__VERSION',            '4.7' );
+define( 'JETPACK__VERSION',            '4.7.1' );
 define( 'JETPACK_MASTER_USER',         true );
 define( 'JETPACK__API_VERSION',        1 );
 define( 'JETPACK__PLUGIN_DIR',         plugin_dir_path( __FILE__ ) );

diff --git a/plugins/jetpack/modules/carousel/jetpack-carousel.js b/plugins/jetpack/modules/carousel/jetpack-carousel.js
index b32cc84..dbb8315 100644
--- a/plugins/jetpack/modules/carousel/jetpack-carousel.js
+++ b/plugins/jetpack/modules/carousel/jetpack-carousel.js
@@ -445,6 +445,11 @@ jQuery(document).ready(function($) {
 				return;
 			}
 
+			// skip if the container is not a link
+			if ( 'undefined' === typeof( $( container ).attr( 'href' ) ) ) {
+				return;
+			}
+
 			var valid = false;
 
 			// if link points to 'Media File' (ignoring GET parameters) and flag is set allow it

diff --git a/plugins/jetpack/modules/markdown.php b/plugins/jetpack/modules/markdown.php
index b173ffb..e572eff 100644
--- a/plugins/jetpack/modules/markdown.php
+++ b/plugins/jetpack/modules/markdown.php
@@ -13,3 +13,17 @@
  */
 
 include dirname( __FILE__ ) . '/markdown/easy-markdown.php';
+
+/**
+ * Remove checkbox set in modules/markdown/easy-markdown.php.
+ * We don't just remove the register_setting call there because the checkbox is
+ * needed on WordPress.com, where the file is sync'ed verbatim.
+ */
+function jetpack_markdown_posting_always_on() {
+	// why oh why isn't there a remove_settings_field?
+	global $wp_settings_fields;
+	if ( isset( $wp_settings_fields['writing']['default'][ WPCom_Markdown::POST_OPTION ] ) ) {
+		unset( $wp_settings_fields['writing']['default'][ WPCom_Markdown::POST_OPTION ] );
+	}
+}
+add_action( 'admin_init', 'jetpack_markdown_posting_always_on', 11 );

diff --git a/plugins/jetpack/modules/sharedaddy/sharing-service.php b/plugins/jetpack/modules/sharedaddy/sharing-service.php
index f89d859..a3a3e6d 100644
--- a/plugins/jetpack/modules/sharedaddy/sharing-service.php
+++ b/plugins/jetpack/modules/sharedaddy/sharing-service.php
@@ -548,9 +548,6 @@ function sharing_add_footer() {
 		);
 		wp_localize_script( 'sharing-js', 'sharing_js_options', $sharing_js_options);
 	}
-}
-
-function sharing_add_footer_scripts_inline() {
 	$sharer = new Sharing_Service();
 	$enabled = $sharer->get_blog_services();
 	foreach ( array_merge( $enabled['visible'], $enabled['hidden'] ) AS $service ) {
@@ -779,9 +776,6 @@ function sharing_display( $text = '', $echo = false ) {
 
 			// Enqueue scripts for the footer
 			add_action( 'wp_footer', 'sharing_add_footer' );
-
-			// Print inline scripts that depend on jQuery
-			add_action( 'wp_footer', 'sharing_add_footer_scripts_inline', 25 );
 		}
 	}
 

diff --git a/plugins/jetpack/modules/sso.php b/plugins/jetpack/modules/sso.php
index 4313447..578e753 100644
--- a/plugins/jetpack/modules/sso.php
+++ b/plugins/jetpack/modules/sso.php
@@ -31,8 +31,8 @@ class Jetpack_SSO {
 		add_action( 'init',                   array( $this, 'maybe_logout_user' ), 5 );
 		add_action( 'jetpack_modules_loaded', array( $this, 'module_configure_button' ) );
 		add_action( 'login_form_logout',      array( $this, 'store_wpcom_profile_cookies_on_logout' ) );
-		add_action( 'wp_login',               array( 'Jetpack_SSO', 'clear_wpcom_profile_cookies' ) );
 		add_action( 'jetpack_unlinked_user',  array( $this, 'delete_connection_for_user') );
+		add_action( 'wp_login',               array( 'Jetpack_SSO', 'clear_cookies_after_login' ) );
 
 		// Adding this action so that on login_init, the action won't be sanitized out of the $action global.
 		add_action( 'login_form_jetpack-sso', '__return_true' );
@@ -554,6 +554,44 @@ class Jetpack_SSO {
 		}
 	}
 
+	/**
+	 * Clear cookies that are no longer needed once the user has logged in.
+	 *
+	 * @since 4.8.0
+	 */
+	static function clear_cookies_after_login() {
+		self::clear_wpcom_profile_cookies();
+		if ( isset( $_COOKIE[ 'jetpack_sso_nonce' ] ) ) {
+			setcookie(
+				'jetpack_sso_nonce',
+				' ',
+				time() - YEAR_IN_SECONDS,
+				COOKIEPATH,
+				COOKIE_DOMAIN
+			);
+		}
+
+		if ( isset( $_COOKIE[ 'jetpack_sso_original_request' ] ) ) {
+			setcookie(
+				'jetpack_sso_original_request',
+				' ',
+				time() - YEAR_IN_SECONDS,
+				COOKIEPATH,
+				COOKIE_DOMAIN
+			);
+		}
+
+		if ( isset( $_COOKIE[ 'jetpack_sso_redirect_to' ] ) ) {
+			setcookie(
+				'jetpack_sso_redirect_to',
+				' ',
+				time() - YEAR_IN_SECONDS,
+				COOKIEPATH,
+				COOKIE_DOMAIN
+			);
+		}
+	}
+
 	static function delete_connection_for_user( $user_id ) {
 		if ( ! $wpcom_user_id = get_user_meta( $user_id, 'wpcom_user_id', true ) ) {
 			return;
@@ -577,17 +615,33 @@ class Jetpack_SSO {
 	}
 
 	static function request_initial_nonce() {
-		Jetpack::load_xml_rpc_client();
-		$xml = new Jetpack_IXR_Client( array(
-			'user_id' => get_current_user_id(),
-		) );
-		$xml->query( 'jetpack.sso.requestNonce' );
+		$nonce = ! empty( $_COOKIE[ 'jetpack_sso_nonce' ] )
+			? $_COOKIE[ 'jetpack_sso_nonce' ]
+			: false;
 
-		if ( $xml->isError() ) {
-			return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() );
+		if ( ! $nonce ) {
+			Jetpack::load_xml_rpc_client();
+			$xml = new Jetpack_IXR_Client( array(
+				'user_id' => get_current_user_id(),
+			) );
+			$xml->query( 'jetpack.sso.requestNonce' );
+
+			if ( $xml->isError() ) {
+				return new WP_Error( $xml->getErrorCode(), $xml->getErrorMessage() );
+			}
+
+			$nonce = $xml->getResponse();
+
+			setcookie(
+				'jetpack_sso_nonce',
+				$nonce,
+				time() + ( 10 * MINUTE_IN_SECONDS ),
+				COOKIEPATH,
+				COOKIE_DOMAIN
+			);
 		}
 
-		return $xml->getResponse();
+		return sanitize_key( $nonce );
 	}
 
 	/**
@@ -727,8 +781,6 @@ class Jetpack_SSO {
 			if ( ! empty( $_COOKIE['jetpack_sso_redirect_to'] ) ) {
 				// Set that as the requested redirect to
 				$redirect_to = $_request_redirect_to = esc_url_raw( $_COOKIE['jetpack_sso_redirect_to'] );
-				// And then purge it
-				setcookie( 'jetpack_sso_redirect_to', ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
 			}
 
 			$json_api_auth_environment = Jetpack_SSO_Helpers::get_json_api_auth_environment();

diff --git a/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php b/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
index 72e88c8..6537b43 100644
--- a/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
+++ b/plugins/jetpack/modules/videopress/class.videopress-xmlrpc.php
@@ -155,18 +155,21 @@ class VideoPress_XMLRPC {
 			return false;
 		}
 
+		// We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
+		$poster = apply_filters( 'jetpack_photon_url', $poster, array( 'ssl' => 1 ), 'https' );
+
+		$meta = wp_get_attachment_metadata( $post_id );
+		$meta['videopress']['poster'] = $poster;
+		wp_update_attachment_metadata( $post_id, $meta );
+
 		// Update the poster in the VideoPress info.
 		$thumbnail_id = videopress_download_poster_image( $poster, $post_id );
 
-		if ( !is_int( $thumbnail_id ) ) {
+		if ( ! is_int( $thumbnail_id ) ) {
 			return false;
 		}
 
 		update_post_meta( $post_id, '_thumbnail_id', $thumbnail_id );
-		$meta = wp_get_attachment_metadata( $post_id );
-
-		$meta['videopress']['poster'] = $poster;
-		wp_update_attachment_metadata( $post_id, $meta );
 
 		return true;
 	}

diff --git a/plugins/jetpack/modules/videopress/utility-functions.php b/plugins/jetpack/modules/videopress/utility-functions.php
index c690316..e9f597a 100644
--- a/plugins/jetpack/modules/videopress/utility-functions.php
+++ b/plugins/jetpack/modules/videopress/utility-functions.php
@@ -558,17 +558,22 @@ function videopress_make_media_upload_path( $blog_id ) {
 function video_get_info_by_blogpostid( $blog_id, $post_id ) {
 	$post = get_post( $post_id );
 
+	$video_info = new stdClass();
+	$video_info->post_id = $post_id;
+	$video_info->blog_id = $blog_id;
+	$video_info->guid = null;
+	$video_info->finish_date_gmt = '0000-00-00 00:00:00';
+
 	if ( is_wp_error( $post ) ) {
-		return false;
+		return $video_info;
 	}
 
 	if ( 'video/videopress' !== $post->post_mime_type ) {
-		return false;
+		return $video_info;
 	}
 
-	$video_info = new stdClass();
+	// Since this is a VideoPress post, lt's fill out the rest of the object.
 	$video_info->guid = get_post_meta( $post_id, 'videopress_guid', true );
-	$video_info->finish_date_gmt = '0000-00-00 00:00:00';
 
 	if ( videopress_is_finished_processing( $post_id ) ) {
 		$video_info->finish_date_gmt = date( 'Y-m-d H:i:s' );
@@ -576,3 +581,118 @@ function video_get_info_by_blogpostid( $blog_id, $post_id ) {
 
 	return $video_info;
 }
+
+
+/**
+ * Check that a VideoPress video format has finished processing.
+ *
+ * This uses the info object, because that is what the WPCOM endpoint
+ * uses, however we don't have a complete info object in the same way
+ * WPCOM does, so we pull the meta information out of the post
+ * options instead.
+ *
+ * Note: This mimics the WPCOM function of the same name and helps the media
+ * API endpoint add all needed VideoPress data.
+ *
+ * @param stdClass $info
+ * @param string $format
+ * @return bool
+ */
+function video_format_done( $info, $format ) {
+
+	// Avoids notice when a non-videopress item is found.
+	if ( ! is_object( $info ) ) {
+		return false;
+	}
+
+	$post_id = $info->post_id;
+
+	if ( get_post_mime_type( $post_id ) !== 'video/videopress' ) {
+		return false;
+	}
+
+	$post = get_post( $post_id );
+
+	if ( is_wp_error( $post ) ) {
+		return false;
+	}
+
+	$meta = wp_get_attachment_metadata( $post->ID );
+
+	switch ( $format ) {
+		case 'fmt_hd':
+			return isset( $meta['videopress']['files']['hd']['mp4'] );
+			break;
+
+		case 'fmt_dvd':
+			return isset( $meta['videopress']['files']['dvd']['mp4'] );
+			break;
+
+		case 'fmt_std':
+			return isset( $meta['videopress']['files']['std']['mp4'] );
+			break;
+
+		case 'fmt_ogg':
+			return isset( $meta['videopress']['files']['std']['ogg'] );
+			break;
+	}
+
+	return false;
+}
+
+/**
+ * Get the image URL for the given VideoPress GUID
+ *
+ * We look up by GUID, because that is what WPCOM does and this needs to be
+ * parameter compatible with that.
+ *
+ * Note: This mimics the WPCOM function of the same name and helps the media
+ * API endpoint add all needed VideoPress data.
+ *
+ * @param string $guid
+ * @param string $format
+ * @return string
+ */
+function video_image_url_by_guid( $guid, $format ) {
+
+	$post = video_get_post_by_guid( $guid );
+
+	if ( is_wp_error( $post ) ) {
+		return null;
+	}
+
+	$meta = wp_get_attachment_metadata( $post->ID );
+
+	// We add ssl => 1 to make sure that the videos.files.wordpress.com domain is parsed as photon.
+	$poster = apply_filters( 'jetpack_photon_url', $meta['videopress']['poster'], array( 'ssl' => 1 ), 'https' );
+
+	return $poster;
+}
+
+/**
+ * Using a GUID, find a post.
+ *
+ * @param string $guid
+ * @return WP_Post
+ */
+function video_get_post_by_guid( $guid ) {
+	$args = array(
+		'post_type' 	 => 'attachment',
+		'post_mime_type' => 'video/videopress',
+		'post_status' 	 => 'inherit',
+		'meta_query' 	 => array(
+			array(
+				'key' 	  => 'videopress_guid',
+				'value'   => $guid,
+				'compare' => '=',
+			)
+		)
+	);
+
+	$query = new WP_Query( $args );
+
+	$post = $query->next_post();
+
+	return $post;
+}
+

diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions.php b/plugins/jetpack/modules/widget-visibility/widget-conditions.php
index 9f65b08..f2492c4 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions.php
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions.php
@@ -91,13 +91,17 @@ class Jetpack_Widget_Conditions {
 		$post_types = get_post_types( array( 'public' => true ), 'objects' );
 
 		$widget_conditions_post_types = array();
+		$widget_conditions_post_type_archives = array();
 
 		foreach ( $post_types as $post_type ) {
 			$widget_conditions_post_types[] = array( 'post_type-' . $post_type->name, $post_type->labels->singular_name );
+			$widget_conditions_post_type_archives[] = array( 'post_type_archive-' . $post_type->name, $post_type->labels->name );
 		}
 
 		$widget_conditions_data['page'][] = array( __( 'Post type:', 'jetpack' ), $widget_conditions_post_types );
 
+		$widget_conditions_data['page'][] = array( __( 'Post type Archives:', 'jetpack' ), $widget_conditions_post_type_archives );
+
 		$pages_dropdown = preg_replace( '/<\/?select[^>]*?>/i', '', wp_dropdown_pages( array( 'echo' => false ) ) );
 
 		preg_match_all( '/value=.([0-9]+).[^>]*>([^<]+)</', $pages_dropdown, $page_ids_and_titles, PREG_SET_ORDER );
@@ -490,6 +494,8 @@ class Jetpack_Widget_Conditions {
 							default:
 								if ( substr( $rule['minor'], 0, 10 ) == 'post_type-' ) {
 									$condition_result = is_singular( substr( $rule['minor'], 10 ) );
+								} elseif ( substr( $rule['minor'], 0, 18 ) == 'post_type_archive-' ) {
+									$condition_result = is_post_type_archive( substr( $rule['minor'], 18 ) );
 								} elseif ( $rule['minor'] == get_option( 'page_for_posts' ) ) {
 									// If $rule['minor'] is a page ID which is also the posts page
 									$condition_result = $wp_query->is_posts_page;
@@ -690,6 +696,76 @@ class Jetpack_Widget_Conditions {
 
 		return $term_id;
 	}
+
+	/**
+	 * Upgrade routine to go through all widgets and move the Post Type
+	 * setting to its newer location.
+	 *
+	 * @since 4.7.1
+	 *
+	 */
+	static function migrate_post_type_rules() {
+		global $wp_registered_widgets;
+
+		$sidebars_widgets = get_option( 'sidebars_widgets' );
+
+		// Going through all sidebars and through inactive and orphaned widgets
+		foreach ( $sidebars_widgets as $s => $sidebar ) {
+			if ( ! is_array( $sidebar ) ) {
+				continue;
+			}
+
+			foreach ( $sidebar as $w => $widget ) {
+				// $widget is the id of the widget
+				if ( empty( $wp_registered_widgets[ $widget ] ) ) {
+					continue;
+				}
+
+				$opts = $wp_registered_widgets[ $widget ];
+				$instances = get_option( $opts['callback'][0]->option_name );
+
+				// Going through each instance of the widget
+				foreach( $instances as $number => $instance ) {
+					if (
+						! is_array( $instance ) ||
+						empty( $instance['conditions'] ) ||
+						empty( $instance['conditions']['rules'] )
+					) {
+						continue;
+					}
+
+					// Going through all visibility rules
+					foreach( $instance['conditions']['rules'] as $index => $rule ) {
+
+						// We only need Post Type rules
+						if ( 'post_type' !== $rule['major'] ) {
+							continue;
+						}
+
+						$rule_type = false;
+
+						// Post type or type archive rule
+						if ( 0 === strpos( $rule['minor'], 'post_type_archive' ) ) {
+							$rule_type = 'post_type_archive';
+						} else if ( 0 === strpos( $rule['minor'], 'post_type' ) ) {
+							$rule_type = 'post_type';
+						}
+
+						if ( $rule_type ) {
+							$post_type = substr( $rule['minor'], strlen( $rule_type ) + 1 );
+							$rule['minor'] = $rule_type . '-' . $post_type;
+							$rule['major'] = 'page';
+
+							$instances[ $number ]['conditions']['rules'][ $index ] = $rule;
+						}
+					}
+				}
+
+				update_option( $opts['callback'][0]->option_name, $instances );
+			}
+		}
+	}
+
 }
 
 add_action( 'init', array( 'Jetpack_Widget_Conditions', 'init' ) );

diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css b/plugins/jetpack/modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css
index 94cf450..d2770de 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/rtl/widget-conditions-rtl.css
@@ -1,10 +1,7 @@
-/* This file was automatically generated on Jul 14 2014 00:47:30 */
-
+/* Do not modify this file directly.  It is concatenated from individual module CSS files. */
 .wp-customizer  .expanded .widget-conditional .widget-conditional-inner {
-	width: 98%;
-	-webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-	-moz-box-sizing: border-box;    /* Firefox, other Gecko */
-	box-sizing: border-box; 
+	width: 98%; /* Safari/Chrome, other WebKit */    /* Firefox, other Gecko */
+	box-sizing: border-box;
 }
 
 .wp-customizer  .expanded .widget-conditional .form{
@@ -35,9 +32,12 @@
 }
 .widget-conditional .condition {
 	padding-top: 12px;
+	position: relative;
 }
 .widget-conditional .condition select {
 	width: 120px;
+	position: relative;
+	z-index: 2;
 }
 .widget-conditional .condition-top select {
 	width: auto;
@@ -48,22 +48,51 @@
 	margin-top: -20px;
 }
 .widget-conditional .selection {
-	margin-left: 70px;
+	margin-left: 50px;
+	margin-right: 20px;
+}
+.widget-conditional .conditions-rule-has-children {
+	display: block;
 }
 .widget-conditional .condition .actions {
 	margin-top: -28px;
+}.widget-conditional .condition .actions {
+	margin-top: -28px;
 }
 
 .widget-conditional .condition-control a {
 	text-decoration: none;
+	position: absolute;
+	top: 17px;
+	text-indent: -9999px;
+	z-index: 1;
+}
+.widget-conditional .condition-control a:before {
+	position: absolute;
+	text-indent: 0;
+	right: 0;
 }
-.widget-conditional .condition:last-child .condition-conjunction {
+.widget-conditional .condition-control .delete-condition {
+	right: 0;
+	color: #f11;
+}
+.widget-conditional .condition-control .add-condition {
+	left: 0;
+}
+
+.widget-conditional .condition:last-child .condition-conjunction,
+.widget-conditional .condition:last-child .condition-intersection {
 	display: none;
 }
-.widget-control-actions .alignright {
-	text-align: left;
-	color:#999;
+
+.widget-conditional.conjunction .condition-intersection {
+	display: none;
+}
+
+.widget-conditional.intersection .condition-conjunction {
+	display: none;
 }
+
 .wp-core-ui .button.display-options {
 	margin-left: 5px;
 }
@@ -76,3 +105,11 @@
 	max-width: none;
 	height: auto;
 }
+.wp-customizer .widget-conditional .condition-control a {
+	top: 15px;
+}
+@media screen and ( max-width: 782px ) {
+	.widget-conditional .condition-control a {
+		top: 20px;
+	}
+}

diff --git a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
index 9217e67..658c427 100644
--- a/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
+++ b/plugins/jetpack/modules/widget-visibility/widget-conditions/widget-conditions.js
@@ -200,7 +200,10 @@ jQuery( function( $ ) {
 			select = condition.find( '.conditions-rule-minor' ).html( '' ),
 			major = condition.data( 'rule-major' );
 
-		if ( ! major ) {
+		// Disable the select, if major rule is empty or if it's a `post_type`.
+		// "Post Type" rule has been removed in Jetpack 4.7, and
+		// because it breaks all other rules we should `return`.
+		if ( ! major || 'post_type' === major ) {
 			select.attr( 'disabled', 'disabled' );
 			return;
 		}

diff --git a/plugins/jetpack/modules/widgets/image-widget.php b/plugins/jetpack/modules/widgets/image-widget.php
index 82039e7..10ba8cc 100644
--- a/plugins/jetpack/modules/widgets/image-widget.php
+++ b/plugins/jetpack/modules/widgets/image-widget.php
@@ -69,14 +69,7 @@ class Jetpack_Image_Widget extends WP_Widget {
 
 		if ( '' != $instance['img_url'] ) {
 
-			$image_url = Jetpack::is_module_active( 'photon' )
-				? jetpack_photon_url( $instance['img_url'], array(
-                                        'w' => $instance['img_width'],
-                                        'h' => $instance['img_height'],
-                                  ) )
-				: $instance['img_url'];
-
-			$output = '<img src="' . esc_url( $image_url ) . '" ';
+			$output = '<img src="' . esc_url( $instance['img_url'] ) . '" ';
 
 			if ( '' != $instance['alt_text'] ) {
 				$output .= 'alt="' . esc_attr( $instance['alt_text'] ) .'" ';
@@ -94,6 +87,11 @@ class Jetpack_Image_Widget extends WP_Widget {
 				$output .= 'height="' . esc_attr( $instance['img_height'] ) .'" ';
 			}
 			$output .= '/>';
+
+			if ( class_exists( 'Jetpack_Photon' ) && Jetpack::is_module_active( 'photon' ) ) {
+				$output = Jetpack_Photon::filter_the_content( $output );
+			}
+
 			if ( '' != $instance['link'] ) {
 				$target = ! empty( $instance['link_target_blank'] )
 					? 'target="_blank"'

diff --git a/plugins/jetpack/readme.txt b/plugins/jetpack/readme.txt
index 74e06e7..de86f73 100644
--- a/plugins/jetpack/readme.txt
+++ b/plugins/jetpack/readme.txt
@@ -1,7 +1,7 @@
 === Jetpack by WordPress.com ===
 Contributors: automattic, adamkheckler, aduth, akirk, allendav, alternatekev, andy, annezazu, apeatling, azaozz, batmoo, barry, beaulebens, blobaugh, cainm, cena, cfinke, chaselivingston, chellycat, csonnek, danielbachhuber, davoraltman, daniloercoli, designsimply, dllh, drawmyface, dsmart, dzver, ebinnion, eliorivero, enej, eoigal, erania-pinnera, ethitter, gcorne, georgestephanis, gibrown, goldsounds, hew, hugobaeta, hypertextranch, iammattthomas, iandunn, jacobshere, jblz, jeherve, jenhooks, jenia, jgs, jkudish, jmdodd, Joen, johnjamesjacoby, jshreve, koke, kraftbj, lamdayap, lancewillett, lschuyler, macmanx, martinremy, matt, matveb, mattwiebe, maverick3x6, mcsf, mdawaffe, michael-arestad, migueluy, mikeyarce, mkaz, nancythanki, nickmomrik, obenland, pento, professor44, rachelsquirrel, rdcoll, ryancowles, richardmuscat, richardmtl, roccotripaldi, samhotchkiss, scarstocea, sdquirk, stephdau, tmoorewp, tyxla, Viper007Bond, westi, yoavf, zinigor
 Tags: Jetpack, WordPress.com, backup, security, related posts, CDN, speed, anti-spam, social sharing, SEO, video, stats
-Stable tag: 4.7
+Stable tag: 4.7.1
 Requires at least: 4.6
 Tested up to: 4.7
 
@@ -103,6 +103,24 @@ There are opportunities for developers at all levels to contribute. [Learn more
 
 == Changelog ==
 
+= 4.7.1 =
+
+* Release date: March 14th, 2017
+* Release post: http://wp.me/p1moTy-48Y
+
+**Bug Fixes**
+
+* Carousel: avoid javascript errors that may cause issues with Slideshows or Tiled Galleries.
+* Markdown: always enable Markdown for posts whenever the module is active.
+* Sharing: make sure that sharing buttons open in a small pop-up instead of a separate window.
+* SSO: Avoid token or nonce errors when trying to log in to your site via the Secure Sign On option.
+* VideoPress: add in the ability to get video thumbnails from the WordPress.com REST API.
+* Widgets: improve rendering of the Image Widget via Photon.
+* Widget Visibility: avoid empty widget visibility rules after updating to Jetpack 4.7.
+* Widget Visibility: restore the option to make widgets appear on archive pages of different Custom Post Types.
+* Widget Visibility: migrate widget visibility settings to the new major Page rule for Custom Post Types.
+* Widget Visibility: add missing CSS for widget visibility settings on sites using an RTL language.
+
 = 4.7 =
 
 * Release date: March 7th, 2017


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-03-19  6:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-19  6:03 [gentoo-commits] proj/blogs-gentoo:master commit in: plugins/jetpack/modules/sharedaddy/, Yury German

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox