extra/chromium to 32.0.1700.77-1

This commit is contained in:
Kevin Mihelich 2014-01-16 01:17:22 +00:00
parent aa6f2cc948
commit 091956378b
5 changed files with 59 additions and 338 deletions

View file

@ -20,8 +20,9 @@
buildarch=20
pkgname=chromium
pkgver=31.0.1650.63
pkgrel=2
pkgver=32.0.1700.77
_srcver=32.0.1700.76
pkgrel=1
pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser"
arch=('armv6h' 'armv7h')
url="http://www.chromium.org/"
@ -37,14 +38,11 @@ provides=('chromium-browser')
conflicts=('chromium-browser')
backup=('etc/chromium/default')
install=chromium.install
source=(https://gsdview.appspot.com/chromium-browser-official/$pkgname-$pkgver.tar.xz
#https://dev.archlinux.org/~foutrelis/sources/$pkgname/$pkgname-$pkgver.tar.xz{,.sig}
source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$_srcver.tar.xz
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
chromium-32.0.1700.76-diff-to-32.0.1700.77.patch
arm-webrtc-fix.patch
skia.patch
v6-ffmpeg.patch)
@ -52,9 +50,7 @@ sha256sums=('7f0a37391b2829fa077426127f61b830cca51518e6a55ace2bf397aba9e52008'
'09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322'
'478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232'
'4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9'
'c2e56730e0cf962d762d18abf8488e1b19b4688ce39d22dd74c47dba7996319b'
'b24f58147333eb29f762aec58742db74825b587def3d6daf16c8cd315ce6ccff'
'9bf164094ff33565f79807ab17cbd1d3f75655383fdaa01bb1a702263174cf09'
'3b167d9480a6472c60ad9493f9a92b0cf79785a029bd0e886ab275f923b510df'
'222ec0db5d40b02e4ebbde8a1f1c5de3f0579e51836be87be138c44f8487d0ce'
'77668a94924c6bce6c48ca78c5cb778c6728bb687b66334b7164d7301a267939'
'3fbabcbd512494b529e0a0e17560735887acf2291a74653750f9b29f5d45774d')
@ -69,7 +65,7 @@ _google_default_client_id=413772536636.apps.googleusercontent.com
_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4
prepare() {
cd "$srcdir/$pkgname-$pkgver"
cd "$srcdir/$pkgname-$_srcver"
# Fix WebRTC for ARM
patch -Np2 -i "$srcdir/arm-webrtc-fix.patch"
@ -80,16 +76,9 @@ prepare() {
# Temp fix for skia
patch -Np0 -i "$srcdir/skia.patch"
# 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"
# Source tarball for 32.0.1700.77 is currently missing so we might as well
# patch 32.0.1700.76 with the single change before 32.0.1700.77 was tagged
patch -Np1 -i "$srcdir/chromium-32.0.1700.76-diff-to-32.0.1700.77.patch"
# Use Python 2
find . -type f -exec sed -i -r \
@ -103,7 +92,7 @@ prepare() {
}
build() {
cd "$srcdir/$pkgname-$pkgver"
cd "$srcdir/$pkgname-$_srcver"
export PATH="$srcdir/python2-path:$PATH"
@ -181,7 +170,7 @@ fi
}
package() {
cd "$srcdir/$pkgname-$pkgver"
cd "$srcdir/$pkgname-$_srcver"
install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium"

View file

@ -1,276 +0,0 @@
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);

View file

@ -1,13 +0,0 @@
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|.

View file

@ -0,0 +1,47 @@
Index: src/chrome/VERSION
===================================================================
--- src/chrome/VERSION (revision 244501)
+++ src/chrome/VERSION (revision 244503)
@@ -1,4 +1,4 @@
MAJOR=32
MINOR=0
BUILD=1700
-PATCH=76
+PATCH=77
Index: src/chrome/browser/browser_process_impl.cc
===================================================================
--- src/chrome/browser/browser_process_impl.cc (revision 244501)
+++ src/chrome/browser/browser_process_impl.cc (revision 244503)
@@ -882,7 +882,6 @@
prefs::kMetricsReportingEnabled,
base::Bind(&BrowserProcessImpl::ApplyMetricsReportingPolicy,
base::Unretained(this)));
- ApplyMetricsReportingPolicy();
#endif
int max_per_proxy = local_state_->GetInteger(prefs::kMaxConnectionsPerProxy);
@@ -912,6 +911,10 @@
if (local_state_->IsManagedPreference(prefs::kDefaultBrowserSettingEnabled))
ApplyDefaultBrowserPolicy();
+#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
+ ApplyMetricsReportingPolicy();
+#endif
+
#if defined(ENABLE_PLUGINS)
PluginService* plugin_service = PluginService::GetInstance();
plugin_service->SetFilter(ChromePluginServiceFilter::GetInstance());
@@ -1037,11 +1040,11 @@
void BrowserProcessImpl::ApplyMetricsReportingPolicy() {
#if !defined(OS_CHROMEOS) && !defined(OS_ANDROID) && !defined(OS_IOS)
- BrowserThread::PostTask(
+ CHECK(BrowserThread::PostTask(
BrowserThread::FILE, FROM_HERE,
base::Bind(
base::IgnoreResult(&GoogleUpdateSettings::SetCollectStatsConsent),
- local_state()->GetBoolean(prefs::kMetricsReportingEnabled)));
+ local_state()->GetBoolean(prefs::kMetricsReportingEnabled))));
#endif
}

View file

@ -1,26 +0,0 @@
--- build/linux/unbundle/icu.gyp.orig 2013-09-27 18:18:50.531839532 +0000
+++ build/linux/unbundle/icu.gyp 2013-09-27 18:19:08.301950500 +0000
@@ -7,6 +7,7 @@
{
'target_name': 'system_icu',
'type': 'none',
+ 'toolsets': ['host', 'target'],
'direct_dependent_settings': {
'defines': [
'U_USING_ICU_NAMESPACE=0',
@@ -30,6 +31,7 @@
{
'target_name': 'icui18n',
'type': 'none',
+ 'toolsets': ['host', 'target'],
'dependencies': ['system_icu'],
'export_dependent_settings': ['system_icu'],
'variables': {
@@ -116,6 +118,7 @@
{
'target_name': 'icuuc',
'type': 'none',
+ 'toolsets': ['host', 'target'],
'dependencies': ['system_icu'],
'export_dependent_settings': ['system_icu'],
'variables': {