[arch-commits] Commit in chromium/trunk (3 files)

Evangelos Foutras foutrelis at nymeria.archlinux.org
Wed Nov 13 23:41:00 UTC 2013


    Date: Thursday, November 14, 2013 @ 00:41:00
  Author: foutrelis
Revision: 199519

upgpkg: chromium 31.0.1650.48-1

New upstream release.

Added:
  chromium/trunk/chromium-31.0.1650.48-NPAPI-cookies.patch
  chromium/trunk/chromium-31.0.1650.48-NPN_URLRedirectResponse.patch
Modified:
  chromium/trunk/PKGBUILD

-----------------------------------------------------+
 PKGBUILD                                            |   36 +-
 chromium-31.0.1650.48-NPAPI-cookies.patch           |  276 ++++++++++++++++++
 chromium-31.0.1650.48-NPN_URLRedirectResponse.patch |   13 
 3 files changed, 316 insertions(+), 9 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-11-13 23:06:31 UTC (rev 199518)
+++ PKGBUILD	2013-11-13 23:41:00 UTC (rev 199519)
@@ -5,8 +5,8 @@
 # Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
 
 pkgname=chromium
-pkgver=30.0.1599.114
-_toolchains_rev=12029
+pkgver=31.0.1650.48
+_toolchains_rev=12181
 pkgrel=1
 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
 arch=('i686' 'x86_64')
@@ -13,7 +13,7 @@
 url="http://www.chromium.org/"
 license=('BSD')
 depends=('gtk2' 'nss' 'alsa-lib' 'xdg-utils' 'bzip2' 'libevent' 'libxss' 'icu'
-         'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'libwebp' 'snappy'
+         'libgcrypt' 'ttf-font' 'udev' 'dbus' 'flac' 'opus' 'snappy'
          'speech-dispatcher' 'pciutils' 'libpulse' 'harfbuzz' 'harfbuzz-icu'
          'desktop-file-utils' 'hicolor-icon-theme')
 makedepends=('python2' 'perl' 'gperf' 'yasm' 'mesa' 'libgnome-keyring'
@@ -21,6 +21,7 @@
 [[ $CARCH = x86_64 ]] && makedepends+=('lib32-gcc-libs' 'lib32-zlib')
 optdepends=('kdebase-kdialog: needed for file dialogs in KDE')
 backup=('etc/chromium/default')
+options=('!strip')
 install=chromium.install
 source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
         naclsdk_nacl_linux_x86-$_toolchains_rev.tgz::https://commondatastorage.googleapis.com/nativeclient-archive2/toolchain/$_toolchains_rev/naclsdk_linux_x86.tgz
@@ -30,18 +31,22 @@
         chromium.desktop
         chromium.default
         chromium.sh
+        chromium-31.0.1650.48-NPN_URLRedirectResponse.patch
+        chromium-31.0.1650.48-NPAPI-cookies.patch
         chromium-system-icu-r0.patch)
 noextract=(naclsdk_nacl_linux_x86-$_toolchains_rev.tgz
            naclsdk_pnacl_linux_x86-$_toolchains_rev.tgz
            naclsdk_pnacl_translator-$_toolchains_rev.tgz)
-sha256sums=('82ff2b54cb6fa9f314098e9905e79d578d97940bab05111a3c0c782217c2b760'
-            '641e2acf0e755bfe052016164e9e0198104130b612a042eacf259a2f2630d6cd'
-            '6ce53b1af8fef34c1557c7fbb764cfbca29cb70b8ee3367746a31976cf115e01'
-            '0b7afcbad1461336e7062d7c8d64e67e670a1fce07214e24313204af1f3a5a70'
-            'd6c5ed767ee9ee4e92b4de958cd32b0152783f170c1483fe99d2199fc2623813'
+sha256sums=('3e478b5b85a023b3bba55b23d71cd6f585a08f865f7a98297a9a0757e9695c5d'
+            'cb4ac159f61de5e75d339813c0fc74f986156310a2c43a30ba40125951e72450'
+            'ad229b69a5af72a9fa7cf2167ee48560cc11049206e4ef919cb31d1273d6409f'
+            'fdb8309ef2b1c8600d63c4420ac02d66d85ab9befe98d99e9706828870730077'
+            '162cf456b0a1cb4ce505004f828a09164ee3e3c8274739c6d5e972bf0ef1cfe9'
             '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
             '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
             '4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
+            'c2e56730e0cf962d762d18abf8488e1b19b4688ce39d22dd74c47dba7996319b'
+            'b24f58147333eb29f762aec58742db74825b587def3d6daf16c8cd315ce6ccff'
             '9bf164094ff33565f79807ab17cbd1d3f75655383fdaa01bb1a702263174cf09')
 
 # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys)
@@ -55,6 +60,14 @@
 prepare() {
   cd "$srcdir/$pkgname-$pkgver"
 
+  # Black screen is displayed when playing a video with NPAPI plugin
+  # http://code.google.com/p/chromium/issues/detail?id=301510
+  patch -Np0 -i "$srcdir/chromium-31.0.1650.48-NPN_URLRedirectResponse.patch"
+
+  # Cookies not being sent with plugin requests
+  # http://code.google.com/p/chromium/issues/detail?id=316511
+  patch -Np0 -i "$srcdir/chromium-31.0.1650.48-NPAPI-cookies.patch"
+
   # Fix build with system ICU (patch from Gentoo)
   patch -Np0 -i "$srcdir/chromium-system-icu-r0.patch"
 
@@ -116,7 +129,6 @@
     -Duse_system_libevent=1
     -Duse_system_libjpeg=1
     -Duse_system_libpng=1
-    -Duse_system_libwebp=1
     -Duse_system_libxml=0
     -Duse_system_opus=1
     -Duse_system_snappy=1
@@ -146,6 +158,12 @@
     out/Release/{libppGoogleNaClPluginChrome.so,nacl_irt_*.nexe} \
     "$pkgdir/usr/lib/chromium/"
 
+  # Manually strip binaries so that 'nacl_irt_*.nexe' is left intact
+  strip $STRIP_BINARIES "$pkgdir/usr/lib/chromium/"{chromium,chrome-sandbox} \
+    "$pkgdir/usr/lib/chromium/"nacl_helper{,_bootstrap}
+  strip $STRIP_SHARED "$pkgdir/usr/lib/chromium/libffmpegsumo.so" \
+    "$pkgdir/usr/lib/chromium/libppGoogleNaClPluginChrome.so"
+
   # Allow users to override command-line options
   install -Dm644 "$srcdir/chromium.default" "$pkgdir/etc/chromium/default"
 

Added: chromium-31.0.1650.48-NPAPI-cookies.patch
===================================================================
--- chromium-31.0.1650.48-NPAPI-cookies.patch	                        (rev 0)
+++ chromium-31.0.1650.48-NPAPI-cookies.patch	2013-11-13 23:41:00 UTC (rev 199519)
@@ -0,0 +1,276 @@
+Index: content/browser/child_process_security_policy_impl.cc
+===================================================================
+--- content/browser/child_process_security_policy_impl.cc	(revision 233522)
++++ content/browser/child_process_security_policy_impl.cc	(working copy)
+@@ -793,7 +793,7 @@
+ bool ChildProcessSecurityPolicyImpl::CanSendCookiesForOrigin(int child_id,
+                                                              const GURL& gurl) {
+   for (PluginProcessHostIterator iter; !iter.Done(); ++iter) {
+-    if (iter.GetData().process_type == child_id) {
++    if (iter.GetData().id == child_id) {
+       if (iter.GetData().process_type == PROCESS_TYPE_PLUGIN) {
+         // NPAPI plugin processes are unsandboxed and so are trusted. Plugins
+         // can make request to any origin.
+Index: content/browser/plugin_browsertest.cc
+===================================================================
+--- content/browser/plugin_browsertest.cc	(revision 233522)
++++ content/browser/plugin_browsertest.cc	(working copy)
+@@ -5,15 +5,21 @@
+ #include "base/command_line.h"
+ #include "base/file_util.h"
+ #include "base/path_service.h"
++#include "base/strings/string_util.h"
+ #include "base/strings/utf_string_conversions.h"
++#include "content/browser/loader/resource_dispatcher_host_impl.h"
+ #include "content/public/browser/browser_thread.h"
++#include "content/public/browser/resource_dispatcher_host_delegate.h"
+ #include "content/public/common/content_switches.h"
+ #include "content/public/test/browser_test_utils.h"
++#include "content/public/test/test_utils.h"
+ #include "content/shell/browser/shell.h"
+ #include "content/shell/common/shell_switches.h"
+ #include "content/test/content_browser_test.h"
+ #include "content/test/content_browser_test_utils.h"
+ #include "content/test/net/url_request_mock_http_job.h"
++#include "net/test/embedded_test_server/embedded_test_server.h"
++#include "net/url_request/url_request.h"
+ #include "ui/gfx/rect.h"
+ 
+ #if defined(OS_WIN)
+@@ -468,4 +474,77 @@
+ }
+ #endif  // defined(OS_WIN)
+ 
++class TestResourceDispatcherHostDelegate
++    : public ResourceDispatcherHostDelegate {
++ public:
++  TestResourceDispatcherHostDelegate() : found_cookie_(false) {}
++
++  bool found_cookie() { return found_cookie_; }
++
++  void WaitForPluginRequest() {
++    if (found_cookie_)
++      return;
++
++    runner_ = new MessageLoopRunner;
++    runner_->Run();
++  }
++
++ private:
++  // ResourceDispatcherHostDelegate implementation:
++  virtual void OnResponseStarted(
++      net::URLRequest* request,
++      ResourceContext* resource_context,
++      ResourceResponse* response,
++      IPC::Sender* sender) OVERRIDE {
++    // The URL below comes from plugin_geturl_test.cc.
++    if (!EndsWith(request->url().spec(),
++                 "npapi/plugin_ref_target_page.html",
++                 true)) {
++      return;
++    }
++    net::HttpRequestHeaders headers;
++    bool found_cookie = false;
++    if (request->GetFullRequestHeaders(&headers) &&
++        headers.ToString().find("Cookie: blah") != std::string::npos) {
++      found_cookie = true;
++    }
++    BrowserThread::PostTask(
++        BrowserThread::UI,
++        FROM_HERE,
++        base::Bind(&TestResourceDispatcherHostDelegate::GotCookie,
++                   base::Unretained(this), found_cookie));
++  }
++
++  void GotCookie(bool found_cookie) {
++    found_cookie_ = found_cookie;
++    if (runner_)
++      runner_->QuitClosure().Run();
++  }
++
++  scoped_refptr<MessageLoopRunner> runner_;
++  bool found_cookie_;
++
++  DISALLOW_COPY_AND_ASSIGN(TestResourceDispatcherHostDelegate);
++};
++
++// Ensure that cookies get sent with plugin requests.
++IN_PROC_BROWSER_TEST_F(PluginTest, MAYBE(Cookies)) {
++  // Create a new browser just to ensure that the plugin process' child_id is
++  // not equal to its type (PROCESS_TYPE_PLUGIN), as that was the error which
++  // caused this bug.
++  NavigateToURL(CreateBrowser(), GURL("about:blank"));
++
++  ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
++  GURL url(embedded_test_server()->GetURL("/npapi/cookies.html"));
++
++  TestResourceDispatcherHostDelegate test_delegate;
++  ResourceDispatcherHostDelegate* old_delegate =
++      ResourceDispatcherHostImpl::Get()->delegate();
++  ResourceDispatcherHostImpl::Get()->SetDelegate(&test_delegate);
++  LoadAndWait(url);
++  test_delegate.WaitForPluginRequest();
++  ASSERT_TRUE(test_delegate.found_cookie());
++  ResourceDispatcherHostImpl::Get()->SetDelegate(old_delegate);
++}
++
+ }  // namespace content
+Index: content/test/data/npapi/cookies.html
+===================================================================
+--- content/test/data/npapi/cookies.html	(revision 0)
++++ content/test/data/npapi/cookies.html	(revision 0)
+@@ -0,0 +1,27 @@
++<html>
++
++<head>
++<script src="npapi.js"></script>
++<script>document.cookie="blah"</script>
++</head>
++
++
++<body>
++<div id="statusPanel" style="border: 1px solid red; width: 100%">
++Test running....
++</div>
++
++
++Cookies Test<p>
++This test fetches an URL via the plugin, and verifies that the cookies are sent
++with plugin-initiated requests.
++
++<embed	type="application/vnd.npapi-test" 
++	src="foo"
++	name="cookies"
++	id="1"
++	mode="np_embed"
++>
++
++</body>
++</html>
+
+Property changes on: content\test\data\npapi\cookies.html
+___________________________________________________________________
+Added: svn:mime-type
+   + text/html
+Added: svn:eol-style
+   + LF
+
+Index: content/test/plugin/plugin_geturl_test.cc
+===================================================================
+--- content/test/plugin/plugin_geturl_test.cc	(revision 233522)
++++ content/test/plugin/plugin_geturl_test.cc	(working copy)
+@@ -48,7 +48,8 @@
+     expect_404_response_(false),
+     npn_evaluate_context_(false),
+     handle_url_redirects_(false),
+-    received_url_redirect_notification_(false) {
++    received_url_redirect_notification_(false),
++    check_cookies_(false) {
+ }
+ 
+ PluginGetURLTest::~PluginGetURLTest() {}
+@@ -78,7 +79,14 @@
+                         "geturlredirectnotify")) {
+     handle_url_redirects_ = true;
+   }
+-  return PluginTest::New(mode, argc, argn, argv, saved);
++
++  NPError error = PluginTest::New(mode, argc, argn, argv, saved);
++
++  // The above sets test_name().
++  if (test_name() == "cookies")
++    check_cookies_ = true;
++
++  return error;
+ }
+ 
+ NPError PluginGetURLTest::SetWindow(NPWindow* pNPWindow) {
+@@ -108,6 +116,13 @@
+           id(), REDIRECT_SRC_URL, NULL,
+           reinterpret_cast<void*>(REDIRECT_SRC_URL_NOTIFICATION_ID));
+       return NPERR_NO_ERROR;
++    } else if (check_cookies_) {
++      HostFunctions()->geturlnotify(
++          id(),
++          "plugin_ref_target_page.html",
++          NULL,
++          reinterpret_cast<void*>(SELF_URL_STREAM_ID));
++      return NPERR_NO_ERROR;
+     }
+ 
+     std::string url = SELF_URL;
+@@ -161,7 +176,7 @@
+     return NPERR_NO_ERROR;
+   }
+ 
+-  if (!fail_write_url_.empty()) {
++  if (!fail_write_url_.empty() || check_cookies_) {
+     return NPERR_NO_ERROR;
+   }
+ 
+@@ -217,7 +232,7 @@
+     return PluginTest::WriteReady(stream);
+   }
+ 
+-  if (!referrer_target_url_.empty()) {
++  if (!referrer_target_url_.empty() || check_cookies_) {
+     return STREAM_CHUNK;
+   }
+ 
+@@ -242,7 +257,7 @@
+     return -1;
+   }
+ 
+-  if (!referrer_target_url_.empty()) {
++  if (!referrer_target_url_.empty() || check_cookies_) {
+     return len;
+   }
+ 
+@@ -314,6 +329,11 @@
+     return NPERR_NO_ERROR;
+   }
+ 
++  if (check_cookies_) {
++    SignalTestCompleted();
++    return NPERR_NO_ERROR;
++  }
++
+   unsigned long stream_id =
+       reinterpret_cast<unsigned long>(stream->notifyData);
+   switch (stream_id) {
+@@ -367,6 +387,9 @@
+     return;
+   }
+ 
++  if (check_cookies_)
++    return;
++
+   COMPILE_ASSERT(sizeof(unsigned long) <= sizeof(data), cast_validity_check);
+   unsigned long stream_id = reinterpret_cast<unsigned long>(data);
+   switch (stream_id) {
+Index: content/test/plugin/plugin_geturl_test.h
+===================================================================
+--- content/test/plugin/plugin_geturl_test.h	(revision 233522)
++++ content/test/plugin/plugin_geturl_test.h	(working copy)
+@@ -57,6 +57,7 @@
+   std::string page_not_found_url_;
+   std::string fail_write_url_;
+   std::string referrer_target_url_;
++  bool check_cookies_;
+ };
+ 
+ }  // namespace NPAPIClient
+Index: content/test/plugin/plugin_test_factory.cc
+===================================================================
+--- content/test/plugin/plugin_test_factory.cc	(revision 233522)
++++ content/test/plugin/plugin_test_factory.cc	(working copy)
+@@ -38,7 +38,8 @@
+   } else if (test_name == "geturl" || test_name == "geturl_404_response" ||
+              test_name == "geturl_fail_write" ||
+              test_name == "plugin_referrer_test" ||
+-             test_name == "geturlredirectnotify") {
++             test_name == "geturlredirectnotify" ||
++             test_name == "cookies") {
+     new_test = new PluginGetURLTest(instance, host_functions);
+   } else if (test_name == "npobject_identity") {
+     new_test = new NPObjectIdentityTest(instance, host_functions);

Added: chromium-31.0.1650.48-NPN_URLRedirectResponse.patch
===================================================================
--- chromium-31.0.1650.48-NPN_URLRedirectResponse.patch	                        (rev 0)
+++ chromium-31.0.1650.48-NPN_URLRedirectResponse.patch	2013-11-13 23:41:00 UTC (rev 199519)
@@ -0,0 +1,13 @@
+Index: content/child/npapi/plugin_url_fetcher.cc
+===================================================================
+--- content/child/npapi/plugin_url_fetcher.cc	(revision 233351)
++++ content/child/npapi/plugin_url_fetcher.cc	(working copy)
+@@ -145,7 +145,7 @@
+ 
+ void PluginURLFetcher::URLRedirectResponse(bool allow) {
+   if (allow) {
+-    bridge_->SetDefersLoading(true);
++    bridge_->SetDefersLoading(false);
+   } else {
+     bridge_->Cancel();
+     plugin_stream_->DidFail(resource_id_);  // That will delete |this|.




More information about the arch-commits mailing list