From b6eed7bea858f07b3f2d902e974e9dc9594518d8 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Sun, 5 Jun 2011 15:14:51 +0000 Subject: [PATCH] Check return value of wp_check_browser_version(). Make return value consistent. Props duck_, aaroncampbell. fixes #17682 git-svn-id: https://develop.svn.wordpress.org/trunk@18150 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/includes/dashboard.php | 43 +++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/wp-admin/includes/dashboard.php b/wp-admin/includes/dashboard.php index 88d6111a95..988cf43b92 100644 --- a/wp-admin/includes/dashboard.php +++ b/wp-admin/includes/dashboard.php @@ -27,7 +27,7 @@ function wp_dashboard_setup() { $response = wp_check_browser_version(); - if ( $response['upgrade'] ) { + if ( $response && $response['upgrade'] ) { add_filter( 'postbox_classes_dashboard_dashboard_browser_nag', 'dashboard_browser_nag_class' ); if ( $response['insecure'] ) wp_add_dashboard_widget( 'dashboard_browser_nag', __( 'You are using an insecure browser!' ), 'wp_dashboard_browser_nag' ); @@ -1162,23 +1162,25 @@ function wp_dashboard_browser_nag() { $notice = ''; $response = wp_check_browser_version(); - if ( $response['insecure'] ) { - $msg = sprintf( __( 'It looks like you\'re using an insecure version of %2$s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser.' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ) ); - } else { - $msg = sprintf( __( 'It looks like you\'re using an old version of %2$s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser.' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ) ); - } + if ( $response ) { + if ( $response['insecure'] ) { + $msg = sprintf( __( 'It looks like you\'re using an insecure version of %2$s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser.' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ) ); + } else { + $msg = sprintf( __( 'It looks like you\'re using an old version of %2$s. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser.' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ) ); + } - $browser_nag_class = ''; - if ( !empty( $response['img_src'] ) ) { - $img_src = ( is_ssl() && ! empty( $response['img_src_ssl'] ) )? $response['img_src_ssl'] : $response['img_src']; + $browser_nag_class = ''; + if ( !empty( $response['img_src'] ) ) { + $img_src = ( is_ssl() && ! empty( $response['img_src_ssl'] ) )? $response['img_src_ssl'] : $response['img_src']; - $notice .= '
'; - $browser_nag_class = ' has-browser-icon'; + $notice .= '
'; + $browser_nag_class = ' has-browser-icon'; + } + $notice .= "

{$msg}

"; + $notice .= sprintf( __( '

Update %2$s or learn how to browse happy

' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ), 'http://browsehappy.com/' ); + $notice .= '

' . __( 'Dismiss' ) . '

'; + $notice .= '
'; } - $notice .= "

{$msg}

"; - $notice .= sprintf( __( '

Update %2$s or learn how to browse happy

' ), esc_attr( $response['update_url'] ), esc_html( $response['name'] ), 'http://browsehappy.com/' ); - $notice .= '

' . __( 'Dismiss' ) . '

'; - $notice .= '
'; echo apply_filters( 'browse-happy-notice', $notice, $response ); } @@ -1186,7 +1188,7 @@ function wp_dashboard_browser_nag() { function dashboard_browser_nag_class( $classes ) { $response = wp_check_browser_version(); - if ( $response['insecure'] ) + if ( $response && $response['insecure'] ) $classes[] = 'browser-insecure'; return $classes; @@ -1196,8 +1198,13 @@ function dashboard_browser_nag_class( $classes ) { * Check if the user needs a browser update * * @since 3.2 + * + * @return array|bool False on failure, array of browser data on success. */ function wp_check_browser_version() { + if ( empty( $_SERVER['HTTP_USER_AGENT'] ) ) + return false; + $key = md5( $_SERVER['HTTP_USER_AGENT'] ); if ( false === ($response = get_site_transient('browser_' . $key) ) ) { @@ -1215,7 +1222,7 @@ function wp_check_browser_version() { /** * Response should be an array with: - * 'name' - string- A user friendly browser name + * 'name' - string - A user friendly browser name * 'version' - string - The most recent version of the browser * 'current_version' - string - The version of the browser the user is using * 'upgrade' - boolean - Whether the browser needs an upgrade @@ -1227,7 +1234,7 @@ function wp_check_browser_version() { $response = unserialize( wp_remote_retrieve_body( $response ) ); if ( ! $response ) - return; + return false; set_site_transient( 'browser_' . $key, $response, 604800 ); // cache for 1 week }