summaryrefslogtreecommitdiff
path: root/content
diff options
context:
space:
mode:
authorBen Murdoch <benm@google.com>2014-11-12 02:35:50 +0000
committerBen Murdoch <benm@google.com>2014-11-12 02:35:50 +0000
commit29b820f8d84e3bc97d62552e54923c42407f2f29 (patch)
tree38ffdce1fd2c2514e7c7d777b9476c05bd09cd18 /content
parent42a0b512b27badd0d560042d40f00d2b782c416f (diff)
downloadchromium_org-29b820f8d84e3bc97d62552e54923c42407f2f29.tar.gz
Merge from Chromium at DEPS revision 39.0.2171.59
This commit was generated by merge_to_master.py. Change-Id: If9c0c09d8c3a3121b5e75ae9c4c446e4e4baaae6
Diffstat (limited to 'content')
-rw-r--r--content/browser/accessibility/accessibility_ipc_error_browsertest.cc183
-rw-r--r--content/browser/appcache/appcache_update_job.cc20
-rw-r--r--content/browser/frame_host/render_frame_host_impl.cc44
-rw-r--r--content/browser/frame_host/render_frame_host_impl.h44
-rw-r--r--content/child/web_url_loader_impl.cc2
-rw-r--r--content/common/accessibility_messages.h22
-rw-r--r--content/content_tests.gypi1
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_am.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ar.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_bg.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ca.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_cs.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_da.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_de.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_el.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_en-GB.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_es-419.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_es.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_fa.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_fi.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_fil.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_fr.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_hi.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_hr.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_hu.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_id.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_it.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_iw.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ja.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ko.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_lt.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_lv.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_nl.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_no.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_pl.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_pt-BR.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_pt-PT.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ro.xtb7
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_ru.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_sk.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_sl.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_sr.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_sv.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_sw.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_th.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_tr.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_uk.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_vi.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_zh-CN.xtb5
-rw-r--r--[-rwxr-xr-x]content/public/android/java/strings/translations/android_content_strings_zh-TW.xtb5
-rw-r--r--content/renderer/accessibility/renderer_accessibility_browsertest.cc4
-rw-r--r--content/renderer/accessibility/renderer_accessibility_complete.cc15
-rw-r--r--content/renderer/accessibility/renderer_accessibility_complete.h5
-rw-r--r--content/renderer/accessibility/renderer_accessibility_focus_only.cc2
-rw-r--r--content/test/weburl_loader_mock.cc1
55 files changed, 375 insertions, 185 deletions
diff --git a/content/browser/accessibility/accessibility_ipc_error_browsertest.cc b/content/browser/accessibility/accessibility_ipc_error_browsertest.cc
new file mode 100644
index 0000000000..2a1098eea9
--- /dev/null
+++ b/content/browser/accessibility/accessibility_ipc_error_browsertest.cc
@@ -0,0 +1,183 @@
+// Copyright (c) 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "content/browser/frame_host/render_frame_host_impl.h"
+#include "content/browser/web_contents/web_contents_impl.h"
+#include "content/common/accessibility_messages.h"
+#include "content/public/test/browser_test_utils.h"
+#include "content/public/test/content_browser_test.h"
+#include "content/public/test/content_browser_test_utils.h"
+#include "content/shell/browser/shell.h"
+#include "content/test/accessibility_browser_test_utils.h"
+#include "ui/accessibility/ax_node.h"
+#include "ui/accessibility/ax_tree.h"
+
+namespace content {
+
+class AccessibilityIpcErrorBrowserTest : public ContentBrowserTest {
+ public:
+ AccessibilityIpcErrorBrowserTest() {}
+
+ protected:
+ // Convenience method to get the value of a particular AXNode
+ // attribute as a UTF-8 string.
+ std::string GetAttr(const ui::AXNode* node,
+ const ui::AXStringAttribute attr) {
+ const ui::AXNodeData& data = node->data();
+ for (size_t i = 0; i < data.string_attributes.size(); ++i) {
+ if (data.string_attributes[i].first == attr)
+ return data.string_attributes[i].second;
+ }
+ return std::string();
+ }
+
+ DISALLOW_COPY_AND_ASSIGN(AccessibilityIpcErrorBrowserTest);
+};
+
+IN_PROC_BROWSER_TEST_F(AccessibilityIpcErrorBrowserTest,
+ ResetBrowserAccessibilityManager) {
+ // Create a data url and load it.
+ const char url_str[] =
+ "data:text/html,"
+ "<div aria-live='polite'>"
+ " <p id='p1'>Paragraph One</p>"
+ " <p id='p2'>Paragraph Two</p>"
+ "</div>"
+ "<button id='button'>Button</button>";
+ GURL url(url_str);
+ NavigateToURL(shell(), url);
+
+ // Simulate a condition where the RFH can't create a
+ // BrowserAccessibilityManager - like if there's no view.
+ RenderFrameHostImpl* frame = static_cast<RenderFrameHostImpl*>(
+ shell()->web_contents()->GetMainFrame());
+ frame->set_disallow_browser_accessibility_manager_for_testing(true);
+ ASSERT_EQ(nullptr, frame->GetOrCreateBrowserAccessibilityManager());
+
+ {
+ // Enable accessibility (passing AccessibilityModeComplete to
+ // AccessibilityNotificationWaiter does this automatically) and wait for
+ // the first event.
+ AccessibilityNotificationWaiter waiter(
+ shell(), AccessibilityModeComplete, ui::AX_EVENT_LAYOUT_COMPLETE);
+ waiter.WaitForNotification();
+ }
+
+ // Make sure we still didn't create a BrowserAccessibilityManager.
+ // This means that at least one accessibility IPC was lost.
+ ASSERT_EQ(nullptr, frame->GetOrCreateBrowserAccessibilityManager());
+
+ // Now allow a BrowserAccessibilityManager, simulating what would happen
+ // if the RFH's view is created now.
+ frame->set_disallow_browser_accessibility_manager_for_testing(false);
+ ASSERT_TRUE(frame->GetOrCreateBrowserAccessibilityManager() != nullptr);
+
+ {
+ // Hide one of the elements on the page, and wait for an accessibility
+ // notification triggered by the hide.
+ AccessibilityNotificationWaiter waiter(
+ shell(), AccessibilityModeComplete, ui::AX_EVENT_LIVE_REGION_CHANGED);
+ ASSERT_TRUE(ExecuteScript(
+ shell()->web_contents(),
+ "document.getElementById('p1').style.display = 'none';"));
+ waiter.WaitForNotification();
+ }
+
+ // Show that accessibility was reset because the frame doesn't have a
+ // BrowserAccessibilityManager anymore.
+ ASSERT_EQ(nullptr, frame->browser_accessibility_manager());
+ const ui::AXTree* tree = nullptr;
+ {
+ // Ensure that we didn't kill the renderer; we can still send it messages.
+ AccessibilityNotificationWaiter waiter(
+ shell(), AccessibilityModeComplete, ui::AX_EVENT_FOCUS);
+ ASSERT_TRUE(ExecuteScript(
+ shell()->web_contents(),
+ "document.getElementById('button').focus();"));
+ waiter.WaitForNotification();
+ tree = &waiter.GetAXTree();
+ }
+
+ // Get the accessibility tree, ensure it reflects the final state of the
+ // document.
+ const ui::AXNode* root = tree->GetRoot();
+
+ // Use this for debugging if the test fails.
+ VLOG(1) << tree->ToString();
+
+ EXPECT_EQ(ui::AX_ROLE_ROOT_WEB_AREA, root->data().role);
+ ASSERT_EQ(2, root->child_count());
+
+ const ui::AXNode* live_region = root->ChildAtIndex(0);
+ ASSERT_EQ(1, live_region->child_count());
+ EXPECT_EQ(ui::AX_ROLE_DIV, live_region->data().role);
+
+ const ui::AXNode* para = live_region->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_PARAGRAPH, para->data().role);
+
+ const ui::AXNode* button_container = root->ChildAtIndex(1);
+ EXPECT_EQ(ui::AX_ROLE_GROUP, button_container->data().role);
+ ASSERT_EQ(1, button_container->child_count());
+
+ const ui::AXNode* button = button_container->ChildAtIndex(0);
+ EXPECT_EQ(ui::AX_ROLE_BUTTON, button->data().role);
+ EXPECT_TRUE(button->data().state >> ui::AX_STATE_FOCUSED & 1);
+}
+
+IN_PROC_BROWSER_TEST_F(AccessibilityIpcErrorBrowserTest,
+ MultipleBadAccessibilityIPCsKillsRenderer) {
+ // Create a data url and load it.
+ const char url_str[] =
+ "data:text/html,"
+ "<button id='button'>Button</button>";
+ GURL url(url_str);
+ NavigateToURL(shell(), url);
+ RenderFrameHostImpl* frame = static_cast<RenderFrameHostImpl*>(
+ shell()->web_contents()->GetMainFrame());
+
+ {
+ // Enable accessibility (passing AccessibilityModeComplete to
+ // AccessibilityNotificationWaiter does this automatically) and wait for
+ // the first event.
+ AccessibilityNotificationWaiter waiter(
+ shell(), AccessibilityModeComplete, ui::AX_EVENT_LAYOUT_COMPLETE);
+ waiter.WaitForNotification();
+ }
+
+ // Construct a bad accessibility message that BrowserAccessibilityManager
+ // will reject.
+ std::vector<AccessibilityHostMsg_EventParams> bad_accessibility_event_list;
+ bad_accessibility_event_list.push_back(AccessibilityHostMsg_EventParams());
+ bad_accessibility_event_list[0].update.node_id_to_clear = -2;
+
+ // We should be able to reset accessibility |max_iterations-1| times
+ // (see render_frame_host_impl.cc - kMaxAccessibilityResets),
+ // but the subsequent time the renderer should be killed.
+ int max_iterations = RenderFrameHostImpl::kMaxAccessibilityResets;
+
+ for (int iteration = 0; iteration < max_iterations; iteration++) {
+ // Send the browser accessibility the bad message.
+ BrowserAccessibilityManager* manager =
+ frame->GetOrCreateBrowserAccessibilityManager();
+ manager->OnAccessibilityEvents(bad_accessibility_event_list);
+
+ // Now the frame should have deleted the BrowserAccessibilityManager.
+ ASSERT_EQ(nullptr, frame->browser_accessibility_manager());
+
+ if (iteration == max_iterations - 1)
+ break;
+
+ AccessibilityNotificationWaiter waiter(
+ shell(), AccessibilityModeComplete, ui::AX_EVENT_LAYOUT_COMPLETE);
+ waiter.WaitForNotification();
+ }
+
+ // Wait for the renderer to be killed.
+ RenderProcessHostWatcher render_process_watcher(
+ frame->GetProcess(), RenderProcessHostWatcher::WATCH_FOR_PROCESS_EXIT);
+ render_process_watcher.Wait();
+ ASSERT_FALSE(frame->IsRenderFrameLive());
+}
+
+} // namespace content
diff --git a/content/browser/appcache/appcache_update_job.cc b/content/browser/appcache/appcache_update_job.cc
index 2b8b3ecc81..3ae65e8315 100644
--- a/content/browser/appcache/appcache_update_job.cc
+++ b/content/browser/appcache/appcache_update_job.cc
@@ -12,6 +12,7 @@
#include "base/strings/stringprintf.h"
#include "content/browser/appcache/appcache_group.h"
#include "content/browser/appcache/appcache_histograms.h"
+#include "net/base/host_port_pair.h"
#include "net/base/io_buffer.h"
#include "net/base/load_flags.h"
#include "net/base/net_errors.h"
@@ -20,6 +21,15 @@
#include "net/http/http_response_headers.h"
#include "net/url_request/url_request_context.h"
+namespace {
+bool IsDataReductionProxy(const net::HostPortPair& proxy_server) {
+ return (
+ proxy_server.Equals(net::HostPortPair("proxy.googlezip.net", 443)) ||
+ proxy_server.Equals(net::HostPortPair("compress.googlezip.net", 80)) ||
+ proxy_server.Equals(net::HostPortPair("proxy-dev.googlezip.net", 80)));
+}
+} // namspace
+
namespace content {
static const int kBufferSize = 32768;
@@ -144,6 +154,16 @@ void AppCacheUpdateJob::URLFetcher::OnReceivedRedirect(
const net::RedirectInfo& redirect_info,
bool* defer_redirect) {
DCHECK(request_ == request);
+ // TODO(bengr): Remove this special case logic when crbug.com/429505 is
+ // resolved. Until then, the data reduction proxy client logic uses the
+ // redirect mechanism to resend requests over a direct connection when
+ // the proxy instructs it to do so. The redirect is to the same location
+ // as the original URL.
+ if ((request->load_flags() & net::LOAD_BYPASS_PROXY) &&
+ IsDataReductionProxy(request->proxy_server())) {
+ DCHECK_EQ(request->original_url(), request->url());
+ return;
+ }
// Redirect is not allowed by the update process.
job_->MadeProgress();
redirect_response_code_ = request->GetResponseCode();
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 46ff9347c5..a63a481f70 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -68,6 +68,9 @@ namespace content {
namespace {
+// The next value to use for the accessibility reset token.
+int g_next_accessibility_reset_token = 1;
+
// The (process id, routing id) pair that identifies one RenderFrame.
typedef std::pair<int32, int32> RenderFrameHostID;
typedef base::hash_map<RenderFrameHostID, RenderFrameHostImpl*>
@@ -180,6 +183,9 @@ RenderFrameHostImpl::RenderFrameHostImpl(RenderViewHostImpl* render_view_host,
is_swapped_out_(is_swapped_out),
render_frame_created_(false),
navigations_suspended_(false),
+ accessibility_reset_token_(0),
+ accessibility_reset_count_(0),
+ disallow_browser_accessibility_manager_for_testing_(false),
weak_ptr_factory_(this) {
frame_tree_->RegisterRenderFrameHost(this);
GetProcess()->AddRoute(routing_id_, this);
@@ -453,8 +459,18 @@ void RenderFrameHostImpl::AccessibilityHitTest(const gfx::Point& point) {
}
void RenderFrameHostImpl::AccessibilityFatalError() {
- Send(new AccessibilityMsg_FatalError(routing_id_));
browser_accessibility_manager_.reset(NULL);
+ if (accessibility_reset_token_)
+ return;
+
+ accessibility_reset_count_++;
+ if (accessibility_reset_count_ >= kMaxAccessibilityResets) {
+ Send(new AccessibilityMsg_FatalError(routing_id_));
+ } else {
+ accessibility_reset_token_ = g_next_accessibility_reset_token++;
+ UMA_HISTOGRAM_COUNTS("Accessibility.FrameResetCount", 1);
+ Send(new AccessibilityMsg_Reset(routing_id_, accessibility_reset_token_));
+ }
}
gfx::AcceleratedWidget
@@ -723,6 +739,7 @@ void RenderFrameHostImpl::OnDidCommitProvisionalLoad(const IPC::Message& msg) {
return;
}
+ accessibility_reset_count_ = 0;
frame_tree_node()->navigator()->DidNavigate(this, validated_params);
}
@@ -1030,7 +1047,17 @@ void RenderFrameHostImpl::OnBeginNavigation(
}
void RenderFrameHostImpl::OnAccessibilityEvents(
- const std::vector<AccessibilityHostMsg_EventParams>& params) {
+ const std::vector<AccessibilityHostMsg_EventParams>& params,
+ int reset_token) {
+ // Don't process this IPC if either we're waiting on a reset and this
+ // IPC doesn't have the matching token ID, or if we're not waiting on a
+ // reset but this message includes a reset token.
+ if (accessibility_reset_token_ != reset_token) {
+ Send(new AccessibilityMsg_Events_ACK(routing_id_));
+ return;
+ }
+ accessibility_reset_token_ = 0;
+
RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
render_view_host_->GetView());
@@ -1105,6 +1132,9 @@ void RenderFrameHostImpl::OnAccessibilityEvents(
void RenderFrameHostImpl::OnAccessibilityLocationChanges(
const std::vector<AccessibilityHostMsg_LocationChangeParams>& params) {
+ if (accessibility_reset_token_)
+ return;
+
RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
render_view_host_->GetView());
if (view &&
@@ -1374,12 +1404,18 @@ const ui::AXTree* RenderFrameHostImpl::GetAXTreeForTesting() {
BrowserAccessibilityManager*
RenderFrameHostImpl::GetOrCreateBrowserAccessibilityManager() {
+ if (disallow_browser_accessibility_manager_for_testing_)
+ return NULL;
+
RenderWidgetHostViewBase* view = static_cast<RenderWidgetHostViewBase*>(
render_view_host_->GetView());
- if (view &&
- !browser_accessibility_manager_) {
+ if (view && !browser_accessibility_manager_) {
browser_accessibility_manager_.reset(
view->CreateBrowserAccessibilityManager(this));
+ if (browser_accessibility_manager_)
+ UMA_HISTOGRAM_COUNTS("Accessibility.FrameEnabledCount", 1);
+ else
+ UMA_HISTOGRAM_COUNTS("Accessibility.FrameDidNotEnableCount", 1);
}
return browser_accessibility_manager_.get();
}
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index 60cdea90b9..24e662c000 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -63,6 +63,31 @@ class CONTENT_EXPORT RenderFrameHostImpl
: public RenderFrameHost,
public BrowserAccessibilityDelegate {
public:
+ // Keeps track of the state of the RenderFrameHostImpl, particularly with
+ // respect to swap out.
+ enum RenderFrameHostImplState {
+ // The standard state for a RFH handling the communication with an active
+ // RenderFrame.
+ STATE_DEFAULT = 0,
+ // The RFH has not received the SwapOutACK yet, but the new page has
+ // committed in a different RFH. Upon reception of the SwapOutACK, the RFH
+ // will either enter STATE_SWAPPED_OUT (if it is a main frame and there are
+ // other active frames in its SiteInstance) or it will be deleted.
+ STATE_PENDING_SWAP_OUT,
+ // The RFH is swapped out and stored inside a RenderFrameProxyHost, being
+ // used as a placeholder to allow cross-process communication. Only main
+ // frames can enter this state.
+ STATE_SWAPPED_OUT,
+ };
+ // Helper function to determine whether the RFH state should contribute to the
+ // number of active frames of a SiteInstance or not.
+ static bool IsRFHStateActive(RenderFrameHostImplState rfh_state);
+
+ // An accessibility reset is only allowed to prevent very rare corner cases
+ // or race conditions where the browser and renderer get out of sync. If
+ // this happens more than this many times, kill the renderer.
+ static const int kMaxAccessibilityResets = 5;
+
static RenderFrameHostImpl* FromID(int process_id, int routing_id);
virtual ~RenderFrameHostImpl();
@@ -293,6 +318,10 @@ class CONTENT_EXPORT RenderFrameHostImpl
// NULL.
BrowserAccessibilityManager* GetOrCreateBrowserAccessibilityManager();
+ void set_disallow_browser_accessibility_manager_for_testing(bool flag) {
+ disallow_browser_accessibility_manager_for_testing_ = flag;
+ }
+
#if defined(OS_WIN)
void SetParentNativeViewAccessible(
gfx::NativeViewAccessible accessible_parent);
@@ -378,7 +407,8 @@ class CONTENT_EXPORT RenderFrameHostImpl
void OnBeginNavigation(
const FrameHostMsg_BeginNavigation_Params& params);
void OnAccessibilityEvents(
- const std::vector<AccessibilityHostMsg_EventParams>& params);
+ const std::vector<AccessibilityHostMsg_EventParams>& params,
+ int reset_token);
void OnAccessibilityLocationChanges(
const std::vector<AccessibilityHostMsg_LocationChangeParams>& params);
@@ -476,12 +506,24 @@ class CONTENT_EXPORT RenderFrameHostImpl
ServiceRegistryImpl service_registry_;
+ // The object managing the accessibility tree for this frame.
scoped_ptr<BrowserAccessibilityManager> browser_accessibility_manager_;
+ // This is nonzero if we sent an accessibility reset to the renderer and
+ // we're waiting for an IPC containing this reset token (sequentially
+ // assigned) and a complete replacement accessibility tree.
+ int accessibility_reset_token_;
+
+ // A count of the number of times we needed to reset accessibility, so
+ // we don't keep trying to reset forever.
+ int accessibility_reset_count_;
+
// Callback when an event is received, for testing.
base::Callback<void(ui::AXEvent, int)> accessibility_testing_callback_;
// The most recently received accessibility tree - for testing only.
scoped_ptr<ui::AXTree> ax_tree_for_testing_;
+ // Flag to not create a BrowserAccessibilityManager, for testing.
+ bool disallow_browser_accessibility_manager_for_testing_;
// NOTE: This must be the last member.
base::WeakPtrFactory<RenderFrameHostImpl> weak_ptr_factory_;
diff --git a/content/child/web_url_loader_impl.cc b/content/child/web_url_loader_impl.cc
index 4d45371f45..696d8e649e 100644
--- a/content/child/web_url_loader_impl.cc
+++ b/content/child/web_url_loader_impl.cc
@@ -486,6 +486,8 @@ bool WebURLLoaderImpl::Context::OnReceivedRedirect(
new_request.setFirstPartyForCookies(
redirect_info.new_first_party_for_cookies);
new_request.setDownloadToFile(request_.downloadToFile());
+ new_request.setRequestContext(request_.requestContext());
+ new_request.setFrameType(request_.frameType());
new_request.setHTTPReferrer(WebString::fromUTF8(redirect_info.new_referrer),
referrer_policy_);
diff --git a/content/common/accessibility_messages.h b/content/common/accessibility_messages.h
index 02af80708c..5abf149303 100644
--- a/content/common/accessibility_messages.h
+++ b/content/common/accessibility_messages.h
@@ -131,16 +131,32 @@ IPC_MESSAGE_ROUTED1(AccessibilityMsg_HitTest,
// message was processed and it can send addition events.
IPC_MESSAGE_ROUTED0(AccessibilityMsg_Events_ACK)
-// Kill the renderer because we got a fatal error in the accessibility tree.
+// Tell the renderer to reset and send a new accessibility tree from
+// scratch because the browser is out of sync. It passes a sequential
+// reset token. This should be rare, and if we need reset the same renderer
+// too many times we just kill it. After sending a reset, the browser ignores
+// incoming accessibility IPCs until it receives one with the matching reset
+// token. Conversely, it ignores IPCs with a reset token if it was not
+// expecting a reset.
+IPC_MESSAGE_ROUTED1(AccessibilityMsg_Reset,
+ int /* reset token */);
+
+// Kill the renderer because we got a fatal error in the accessibility tree
+// and we've already reset too many times.
IPC_MESSAGE_ROUTED0(AccessibilityMsg_FatalError)
// Messages sent from the renderer to the browser.
// Sent to notify the browser about renderer accessibility events.
// The browser responds with a AccessibilityMsg_Events_ACK.
-IPC_MESSAGE_ROUTED1(
+// The second parameter, reset_token, is set if this IPC was sent in response
+// to a reset request from the browser. When the browser requests a reset,
+// it ignores incoming IPCs until it sees one with the correct reset token.
+// Any other time, it ignores IPCs with a reset token.
+IPC_MESSAGE_ROUTED2(
AccessibilityHostMsg_Events,
- std::vector<AccessibilityHostMsg_EventParams>)
+ std::vector<AccessibilityHostMsg_EventParams> /* events */,
+ int /* reset_token */)
// Sent to update the browser of the location of accessibility objects.
IPC_MESSAGE_ROUTED1(
diff --git a/content/content_tests.gypi b/content/content_tests.gypi
index 94b2a852a3..ba9da064c0 100644
--- a/content/content_tests.gypi
+++ b/content/content_tests.gypi
@@ -1163,6 +1163,7 @@
],
'sources': [
'app/mojo/mojo_browsertest.cc',
+ 'browser/accessibility/accessibility_ipc_error_browsertest.cc',
'browser/accessibility/accessibility_mode_browsertest.cc',
'browser/accessibility/accessibility_win_browsertest.cc',
'browser/accessibility/android_hit_testing_browsertest.cc',
diff --git a/content/public/android/java/strings/translations/android_content_strings_am.xtb b/content/public/android/java/strings/translations/android_content_strings_am.xtb
index 19c45004f8..38a33422ef 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_am.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_am.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="am">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="am">
<translation id="2094750046714988961">ውጫዊ ማከማቻ ዝግጁ ስላልሆነ መገለጫ ሰሪውን ማስጀመር አልተቻለም</translation>
<translation id="1256337885411059545">ቪዲዮ ማጫወት አልተቻለም</translation>
<translation id="2520230379124234395">መገለጫ ሰሪ ተጀምሯል</translation>
<translation id="4859501799452851758">መግለጫ ሰሪ ተጠናቅቋል። ውጤቶች በ<ph name="FILENAME"/> ውስጥ ናቸው።</translation>
<translation id="273860350361291195">ይቅርታ፣ ይህ ቪዲዮ ወደዚህ መሣሪያ በዥረት ለመልቀቅ ልክ የሆነ አይደለም።</translation>
<translation id="2410828433627930127">ይቅርታ፣ ይህ ቪዲዮ ሊጫወት አልቻለም።</translation>
-<translation id="2532336938189706096">የድር ዕይታ</translation>
<translation id="7096034533295549981">ቪዲዮን በመጫን ላይ</translation>
<translation id="1542044944667958430">የድር ፍለጋ</translation>
<translation id="6849295950938417341">መገለጫ ሰሪውን ማስጀመር አልተሳካም</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_ar.xtb b/content/public/android/java/strings/translations/android_content_strings_ar.xtb
index 874f7a1fdb..c708640333 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ar.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ar.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ar">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ar">
<translation id="2094750046714988961">لا يمكن بدء المحلل لأن وحدة التخزين الخارجية غير جاهزة</translation>
<translation id="1256337885411059545">لا يمكن تشغيل الفيديو</translation>
<translation id="2520230379124234395">تم بدء المحلل</translation>
<translation id="4859501799452851758">انتهى المحلل. توجد النتائج في <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">عذرًا، هذا الفيديو غير صالح للبث إلى هذا الجهاز.</translation>
<translation id="2410828433627930127">عذرًا، لا يمكن تشغيل هذا الفيديو.</translation>
-<translation id="2532336938189706096">عرض الويب</translation>
<translation id="7096034533295549981">تحميل الفيديو</translation>
<translation id="1542044944667958430">بحث الويب</translation>
<translation id="6849295950938417341">أخفق بدء المحلل</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_bg.xtb b/content/public/android/java/strings/translations/android_content_strings_bg.xtb
index fd458c549c..c88b734303 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_bg.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_bg.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="bg">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="bg">
<translation id="2094750046714988961">Не можем да стартираме профайлера, защото външното хранилище не е готово</translation>
<translation id="1256337885411059545">Видеоклипът не може да се пусне</translation>
<translation id="2520230379124234395">Профайлерът стартира</translation>
<translation id="4859501799452851758">Профайлерът приключи. Резултатите са в/ъв „<ph name="FILENAME"/>“.</translation>
<translation id="273860350361291195">За съжаление този видеоклип не е валиден за поточно предаване към устройството.</translation>
<translation id="2410828433627930127">За съжаление този видеоклип не може да се пусне.</translation>
-<translation id="2532336938189706096">Изглед в мрежата</translation>
<translation id="7096034533295549981">Клип: Зарежда се</translation>
<translation id="1542044944667958430">Търсене в мрежата</translation>
<translation id="6849295950938417341">Стартирането на профайлера не бе успешно</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_ca.xtb b/content/public/android/java/strings/translations/android_content_strings_ca.xtb
index bdb2707d79..6465e8a749 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ca.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ca.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ca">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ca">
<translation id="2094750046714988961">No es pot iniciar el generador de perfils perquè l'emmagatzematge extern no està preparat.</translation>
<translation id="1256337885411059545">No es pot reproduir el vídeo</translation>
<translation id="2520230379124234395">El generador de perfils s'ha iniciat.</translation>
<translation id="4859501799452851758">El generador de perfils ha finalitzat. Els resultats són a <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Aquest vídeo no és vàlid per reproduir-lo en temps real en aquest dispositiu.</translation>
<translation id="2410828433627930127">No es pot reproduir aquest vídeo.</translation>
-<translation id="2532336938189706096">Visualització web</translation>
<translation id="7096034533295549981">Carregant vídeo</translation>
<translation id="1542044944667958430">Cerca al web</translation>
<translation id="6849295950938417341">S'ha produït un error en iniciar el generador de perfils.</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_cs.xtb b/content/public/android/java/strings/translations/android_content_strings_cs.xtb
index 6073caf052..c30887bd8a 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_cs.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_cs.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="cs">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="cs">
<translation id="2094750046714988961">Nástroj profiler nelze spustit, protože externí zařízení není připraveno</translation>
<translation id="1256337885411059545">Video nelze přehrát</translation>
<translation id="2520230379124234395">Nástroj profiler byl spuštěn</translation>
<translation id="4859501799452851758">Nástroj profiler byl ukončen. Výsledky naleznete v souboru <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Video do zařízení nelze streamovat.</translation>
<translation id="2410828433627930127">Toto video nelze přehrát.</translation>
-<translation id="2532336938189706096">Webové zobrazení</translation>
<translation id="7096034533295549981">Načítání videa</translation>
<translation id="1542044944667958430">Vyhledávání na webu</translation>
<translation id="6849295950938417341">Spuštění nástroje profiler se nezdařilo</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_da.xtb b/content/public/android/java/strings/translations/android_content_strings_da.xtb
index bfee0306d6..f20ee948c3 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_da.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_da.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="da">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="da">
<translation id="2094750046714988961">Profileringsværktøjet kan ikke startes, fordi det eksterne lager ikke er klar</translation>
<translation id="1256337885411059545">Videoen kan ikke afspilles</translation>
<translation id="2520230379124234395">Profileringsværktøjet er startet</translation>
<translation id="4859501799452851758">Profileringsværktøjet er færdigt. Resultaterne er i <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Denne video er ikke gyldig til streaming på denne enhed.</translation>
<translation id="2410828433627930127">Denne video kan ikke afspilles.</translation>
-<translation id="2532336938189706096">Webvisning</translation>
<translation id="7096034533295549981">Videoen indlæses</translation>
<translation id="1542044944667958430">Websøgning</translation>
<translation id="6849295950938417341">Profileringsværktøjet kunne ikke startes</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_de.xtb b/content/public/android/java/strings/translations/android_content_strings_de.xtb
index c0d3787dcc..2f6621c966 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_de.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_de.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="de">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="de">
<translation id="2094750046714988961">Profiler kann nicht gestartet werden, da der externe Speicher nicht bereit ist.</translation>
<translation id="1256337885411059545">Videowiedergabe nicht möglich</translation>
<translation id="2520230379124234395">Profiler gestartet</translation>
<translation id="4859501799452851758">Profiler ist fertig. Die Ergebnisse befinden sich in der Datei <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Leider ist dieses Video nicht für Streaming auf diesem Gerät gültig.</translation>
<translation id="2410828433627930127">Dieses Video kann leider nicht abgespielt werden.</translation>
-<translation id="2532336938189706096">Web-Ansicht</translation>
<translation id="7096034533295549981">Video wird geladen</translation>
<translation id="1542044944667958430">Websuche</translation>
<translation id="6849295950938417341">Profiler konnte nicht gestartet werden.</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_el.xtb b/content/public/android/java/strings/translations/android_content_strings_el.xtb
index 5b3ae0ee4b..bc2dfa9bd3 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_el.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_el.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="el">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="el">
<translation id="2094750046714988961">Δεν είναι δυνατή η έναρξη του προγράμματος προφίλ επειδή ο εξωτερικός χώρος αποθήκευσης δεν είναι έτοιμος</translation>
<translation id="1256337885411059545">Αδύνατη αναπαραγωγή βίντεο</translation>
<translation id="2520230379124234395">Η λειτουργία του προγράμματος προφίλ έχει ξεκινήσει</translation>
<translation id="4859501799452851758">Η λειτουργία του προγράμματος προφίλ ολοκληρώθηκε. Τα αποτελέσματα βρίσκονται στο αρχείο <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Δυστυχώς, αυτό το βίντεο δεν είναι έγκυρο για ροή σε αυτήν τη συσκευή.</translation>
<translation id="2410828433627930127">Δυστυχώς, δεν είναι δυνατή η αναπαραγωγή αυτού του βίντεο.</translation>
-<translation id="2532336938189706096">Προβολή ιστού</translation>
<translation id="7096034533295549981">Φόρτωση βίντεο</translation>
<translation id="1542044944667958430">Αναζήτηση στον Ιστό</translation>
<translation id="6849295950938417341">Αποτυχία έναρξης προγράμματος προφίλ</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_en-GB.xtb b/content/public/android/java/strings/translations/android_content_strings_en-GB.xtb
index 130ae8a749..a167b29850 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_en-GB.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_en-GB.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="en-GB">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="en-GB">
<translation id="2094750046714988961">Can't start profiler because external storage is not ready</translation>
<translation id="1256337885411059545">Cannot play video</translation>
<translation id="2520230379124234395">Profiler started</translation>
<translation id="4859501799452851758">Profiler finished. Results are in <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Sorry, this video is not valid for streaming to this device.</translation>
<translation id="2410828433627930127">Sorry, this video cannot be played.</translation>
-<translation id="2532336938189706096">Web View</translation>
<translation id="7096034533295549981">Loading video</translation>
<translation id="1542044944667958430">Web search</translation>
<translation id="6849295950938417341">Failed to start profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_es-419.xtb b/content/public/android/java/strings/translations/android_content_strings_es-419.xtb
index a08da68429..1a000ad07f 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_es-419.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_es-419.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="es-419">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="es-419">
<translation id="2094750046714988961">No se puede iniciar el generador de perfiles porque el almacenamiento externo no está disponible.</translation>
<translation id="1256337885411059545">No se puede reproducir el video.</translation>
<translation id="2520230379124234395">Se inició el generador de perfiles.</translation>
<translation id="4859501799452851758">El generador de perfiles terminó. Los resultados están en <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">El video no se puede transmitir a este dispositivo.</translation>
<translation id="2410828433627930127">El video no se puede reproducir.</translation>
-<translation id="2532336938189706096">Vista web</translation>
<translation id="7096034533295549981">Cargando video</translation>
<translation id="1542044944667958430">Búsqueda en la Web</translation>
<translation id="6849295950938417341">Error al iniciar el generador de perfiles</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_es.xtb b/content/public/android/java/strings/translations/android_content_strings_es.xtb
index e444d657f3..59bb88d4c8 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_es.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_es.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="es">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="es">
<translation id="2094750046714988961">No se puede iniciar el creador de perfiles porque el almacenamiento externo no está listo</translation>
<translation id="1256337885411059545">No se puede reproducir el vídeo.</translation>
<translation id="2520230379124234395">Se ha iniciado el creador de perfiles</translation>
<translation id="4859501799452851758">El creador de perfiles ha completado la operación. Los resultados se encuentran en el archivo <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Este vídeo no se puede reproducir en este dispositivo.</translation>
<translation id="2410828433627930127">Este vídeo no se puede reproducir.</translation>
-<translation id="2532336938189706096">Vista web</translation>
<translation id="7096034533295549981">Cargando vídeo</translation>
<translation id="1542044944667958430">Búsqueda web</translation>
<translation id="6849295950938417341">No se ha podido iniciar el creador de perfiles</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_fa.xtb b/content/public/android/java/strings/translations/android_content_strings_fa.xtb
index 6ac1d06c7f..6075bc7634 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_fa.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_fa.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fa">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fa">
<translation id="2094750046714988961">نمایه‌ساز اجرا نمی‌شود زیرا حافظه خارجی آماده نیست</translation>
<translation id="1256337885411059545">ویدیو پخش نمی‌شود</translation>
<translation id="2520230379124234395">نمایه‌ساز اجرا شد</translation>
<translation id="4859501799452851758">نمایه‌ساز پایان یافت. نتایج در <ph name="FILENAME"/> ذخیره شده‌اند.</translation>
<translation id="273860350361291195">با عرض پوزش، این ویدیو برای پخش هم‌زمان در این دستگاه معتبر نیست.</translation>
<translation id="2410828433627930127">با عرض پوزش، این ویدیو پخش نمی‌شود.</translation>
-<translation id="2532336938189706096">نمای وب</translation>
<translation id="7096034533295549981">بارگیری ویدیو</translation>
<translation id="1542044944667958430">جستجوی وب</translation>
<translation id="6849295950938417341">نمایه‌ساز اجرا نشد</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_fi.xtb b/content/public/android/java/strings/translations/android_content_strings_fi.xtb
index e32a0ac3bd..c789ccf255 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_fi.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_fi.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fi">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fi">
<translation id="2094750046714988961">Profiiliohjelmaa ei voi käynnistää, koska ulkoinen tallennustila ei ole valmis</translation>
<translation id="1256337885411059545">Videon toistaminen epäonnistui</translation>
<translation id="2520230379124234395">Profiiliohjelma käynnistyi</translation>
<translation id="4859501799452851758">Profiiliohjelma on valmis. Tulokset ovat tiedostossa <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Videota ei voi suoratoistaa tällä laitteella.</translation>
<translation id="2410828433627930127">Tätä videota ei voi toistaa.</translation>
-<translation id="2532336938189706096">Verkkonäkymä</translation>
<translation id="7096034533295549981">Videota ladataan</translation>
<translation id="1542044944667958430">Verkkohaku</translation>
<translation id="6849295950938417341">Profiiliohjelman käynnistys epäonnistui</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_fil.xtb b/content/public/android/java/strings/translations/android_content_strings_fil.xtb
index 63d47c4cc0..5df0d3eaec 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_fil.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_fil.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fil">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fil">
<translation id="2094750046714988961">Hindi masimulan ang profiler dahil hindi handa ang panlabas na storage</translation>
<translation id="1256337885411059545">Hindi ma-play ang video</translation>
<translation id="2520230379124234395">Nagsimula na ang profiler</translation>
<translation id="4859501799452851758">Tapos na ang profiler. Ang mga resulta ay nasa <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Paumanhin, di-wasto ang video na ito para sa pag-stream sa device na ito.</translation>
<translation id="2410828433627930127">Paumanhin, hindi mape-play ang video na ito.</translation>
-<translation id="2532336938189706096">View ng Web</translation>
<translation id="7096034533295549981">Naglo-load</translation>
<translation id="1542044944667958430">Paghahanap sa web</translation>
<translation id="6849295950938417341">Nabigong simulan ang profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_fr.xtb b/content/public/android/java/strings/translations/android_content_strings_fr.xtb
index dbca54535a..b808aa8b9e 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_fr.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_fr.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="fr">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fr">
<translation id="2094750046714988961">Impossible de démarrer le générateur de profils, car la mémoire de stockage externe n'est pas disponible.</translation>
<translation id="1256337885411059545">Impossible de lire la vidéo.</translation>
<translation id="2520230379124234395">Le générateur de profils a été lancé.</translation>
<translation id="4859501799452851758">Le générateur de profils a terminé sa tâche. Les résultats ont été exportés dans le fichier <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Désolé, impossible de lire cette vidéo en streaming sur cet appareil.</translation>
<translation id="2410828433627930127">Désolé, impossible de lire cette vidéo.</translation>
-<translation id="2532336938189706096">Vue Web</translation>
<translation id="7096034533295549981">Chargement vidéo…</translation>
<translation id="1542044944667958430">Recherche sur le Web</translation>
<translation id="6849295950938417341">Échec du démarrage du générateur de profils.</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_hi.xtb b/content/public/android/java/strings/translations/android_content_strings_hi.xtb
index 3aa91ca9f0..0209968221 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_hi.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_hi.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hi">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hi">
<translation id="2094750046714988961">प्रोफ़ाइलर प्रारंभ नहीं हो सकता क्‍योंकि बाहरी मेमोरी तैयार नहीं है</translation>
<translation id="1256337885411059545">वीडियो नहीं चलाया जा सकता</translation>
<translation id="2520230379124234395">प्रोफ़ाइलर प्रारंभ किया गया</translation>
<translation id="4859501799452851758">प्रोफ़ाइलर पूर्ण. परिणाम <ph name="FILENAME"/> में हैं.</translation>
<translation id="273860350361291195">क्षमा करें, यह वीडियो इस डिवाइस पर स्‍ट्रीम करने के लिए मान्य नहीं है.</translation>
<translation id="2410828433627930127">क्षमा करें, यह वीडियो नहीं चलाया जा सकता.</translation>
-<translation id="2532336938189706096">वेब दृश्य</translation>
<translation id="7096034533295549981">वीडियो लोड हो रहा है</translation>
<translation id="1542044944667958430">वेब खोज</translation>
<translation id="6849295950938417341">प्रोफ़ाइलर प्रारंभ करने में विफल</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_hr.xtb b/content/public/android/java/strings/translations/android_content_strings_hr.xtb
index 2ec923f339..666fa58fa1 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_hr.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_hr.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hr">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hr">
<translation id="2094750046714988961">Nije moguće pokrenuti profiler jer vanjska pohrana nije spremna</translation>
<translation id="1256337885411059545">Nije moguće reprod. videozapis</translation>
<translation id="2520230379124234395">Profiler se pokrenuo</translation>
<translation id="4859501799452851758">Profiler je završio. Rezultati su u datoteci <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Videozapis nije valjan za strujanje na uređaj.</translation>
<translation id="2410828433627930127">Nije moguće reproducirati taj videozapis.</translation>
-<translation id="2532336938189706096">Web-prikaz</translation>
<translation id="7096034533295549981">Učitavanje videa</translation>
<translation id="1542044944667958430">Pretraživanje weba</translation>
<translation id="6849295950938417341">Nije uspjelo pokretanje profilera</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_hu.xtb b/content/public/android/java/strings/translations/android_content_strings_hu.xtb
index 4218f8a6c1..fbf389a78c 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_hu.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_hu.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="hu">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hu">
<translation id="2094750046714988961">Nem lehet elindítani a profilozót, mert a külső tároló nem áll készen</translation>
<translation id="1256337885411059545">Nem lehet lejátszani a videót</translation>
<translation id="2520230379124234395">A profilozó elindult</translation>
<translation id="4859501799452851758">A profilozó végzett. Az eredmény a következőben található: <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Sajnos ezt a videót nem lehet erre az eszközre sugározni.</translation>
<translation id="2410828433627930127">Sajnos a videót nem lehet lejátszani.</translation>
-<translation id="2532336938189706096">Internetes megtekintés</translation>
<translation id="7096034533295549981">Videó betöltése</translation>
<translation id="1542044944667958430">Internetes keresés</translation>
<translation id="6849295950938417341">Nem sikerült elindítani a profilozót</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_id.xtb b/content/public/android/java/strings/translations/android_content_strings_id.xtb
index 839433003f..752ea6e0c3 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_id.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_id.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="id">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="id">
<translation id="2094750046714988961">Tidak dapat memulai profiler karena penyimpanan eksternal tidak siap</translation>
<translation id="1256337885411059545">Tidak dapat memutar video</translation>
<translation id="2520230379124234395">Profiler dimulai</translation>
<translation id="4859501799452851758">Profiler selesai. Hasil berupa <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Maaf, video ini tidak dapat di-streaming ke perangkat ini.</translation>
<translation id="2410828433627930127">Maaf, video tidak dapat diputar.</translation>
-<translation id="2532336938189706096">Tampilan Web</translation>
<translation id="7096034533295549981">Memuat video</translation>
<translation id="1542044944667958430">Penelusuran web</translation>
<translation id="6849295950938417341">Gagal memulai profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_it.xtb b/content/public/android/java/strings/translations/android_content_strings_it.xtb
index f43af3a63a..6b1910edbb 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_it.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_it.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="it">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="it">
<translation id="2094750046714988961">Impossibile avviare profiler perché la memoria esterna non è pronta</translation>
<translation id="1256337885411059545">Impossibile riprodurre il video</translation>
<translation id="2520230379124234395">Profiler avviato</translation>
<translation id="4859501799452851758">Profiler ha finito. I risultati sono in <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Spiacenti, questo video non può essere visualizzato in streaming su questo dispositivo.</translation>
<translation id="2410828433627930127">Spiacenti, impossibile riprodurre il video.</translation>
-<translation id="2532336938189706096">Visualizzazione web</translation>
<translation id="7096034533295549981">Caricamento video</translation>
<translation id="1542044944667958430">Ricerca Google</translation>
<translation id="6849295950938417341">Impossibile avviare profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_iw.xtb b/content/public/android/java/strings/translations/android_content_strings_iw.xtb
index 245851fc4e..19c9ea0f5a 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_iw.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_iw.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="iw">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="iw">
<translation id="2094750046714988961">לא ניתן להפעיל את יוצר הפרופילים משום שהאחסון החיצוני אינו מוכן</translation>
<translation id="1256337885411059545">לא ניתן להפעיל את הסרטון</translation>
<translation id="2520230379124234395">יוצר הפרופילים הופעל</translation>
<translation id="4859501799452851758">יוצר הפרופילים סיים את פעולתו. התוצאות נמצאות ב-<ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">מצטערים. הזרמת הסרטון הזה למכשיר הזה אינה חוקית.</translation>
<translation id="2410828433627930127">מצטערים. לא ניתן להפעיל את הסרטון הזה.</translation>
-<translation id="2532336938189706096">תצוגת אינטרנט</translation>
<translation id="7096034533295549981">טוען סרטון</translation>
<translation id="1542044944667958430">‏חיפוש Google</translation>
<translation id="6849295950938417341">נכשלה פתיחת יוצר הפרופילים</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_ja.xtb b/content/public/android/java/strings/translations/android_content_strings_ja.xtb
index 8c65db4a4b..fc32803c00 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ja.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ja.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ja">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ja">
<translation id="2094750046714988961">外部ストレージの準備ができていないためプロファイラを開始できません</translation>
<translation id="1256337885411059545">動画を再生できません</translation>
<translation id="2520230379124234395">プロファイラを開始しました</translation>
<translation id="4859501799452851758">プロファイラを終了しました。結果は <ph name="FILENAME"/> をご覧ください。</translation>
<translation id="273860350361291195">この動画はご使用のデバイスではストリーミングできません。</translation>
<translation id="2410828433627930127">この動画は再生できません。</translation>
-<translation id="2532336938189706096">ウェブ表示</translation>
<translation id="7096034533295549981">動画を読み込み中</translation>
<translation id="1542044944667958430">ウェブ検索</translation>
<translation id="6849295950938417341">プロファイラを開始できませんでした</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_ko.xtb b/content/public/android/java/strings/translations/android_content_strings_ko.xtb
index 2cac40b0d5..eb9523434c 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ko.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ko.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ko">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ko">
<translation id="2094750046714988961">외부 저장소가 준비되지 않아 프로파일러를 시작할 수 없습니다.</translation>
<translation id="1256337885411059545">동영상 재생 안됨</translation>
<translation id="2520230379124234395">프로파일러가 시작되었습니다.</translation>
<translation id="4859501799452851758">프로파일러가 완료되었습니다. 결과는 <ph name="FILENAME"/>에 있습니다.</translation>
<translation id="273860350361291195">죄송합니다. 이 동영상은 이 기기로 스트리밍할 수 없습니다.</translation>
<translation id="2410828433627930127">동영상을 재생할 수 없습니다.</translation>
-<translation id="2532336938189706096">웹 보기</translation>
<translation id="7096034533295549981">동영상 로드 중</translation>
<translation id="1542044944667958430">웹 검색</translation>
<translation id="6849295950938417341">프로파일러를 시작하지 못했습니다.</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_lt.xtb b/content/public/android/java/strings/translations/android_content_strings_lt.xtb
index e1e4f15c66..ab733e0701 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_lt.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_lt.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="lt">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="lt">
<translation id="2094750046714988961">Nepavyksta paleisti profiliavimo priemonės, nes išorinė atmintis neparuošta</translation>
<translation id="1256337885411059545">Nepavyksta paleisti vaizdo įrašo</translation>
<translation id="2520230379124234395">Profiliavimo priemonė paleista</translation>
<translation id="4859501799452851758">Profiliavimo priemonės veiksmai baigti. Rezultatai išsaugoti „<ph name="FILENAME"/>“.</translation>
<translation id="273860350361291195">Apgailestaujame, šis vaizdo įrašas yra netinkamas perduoti srautu į šį įrenginį.</translation>
<translation id="2410828433627930127">Apgailestaujame, šio vaizdo įrašo negalima paleisti.</translation>
-<translation id="2532336938189706096">Žiniatinklio rodinys</translation>
<translation id="7096034533295549981">Įkel. v. įrašas</translation>
<translation id="1542044944667958430">Žiniatinklio paieška</translation>
<translation id="6849295950938417341">Paleidžiant profiliavimo priemonę įvyko klaida</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_lv.xtb b/content/public/android/java/strings/translations/android_content_strings_lv.xtb
index 6ba2e85375..f8ad0b4181 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_lv.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_lv.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="lv">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="lv">
<translation id="2094750046714988961">Nevar startēt profilētāju, jo ārējā krātuve nav gatava.</translation>
<translation id="1256337885411059545">Nevar atskaņot videoklipu.</translation>
<translation id="2520230379124234395">Profilētājs startēts.</translation>
<translation id="4859501799452851758">Profilētāja izpilde ir pabeigta. Rezultāti ir pieejami šeit: <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Diemžēl šo videoklipu nevar straumēt šajā ierīcē.</translation>
<translation id="2410828433627930127">Diemžēl šo videoklipu nevar atskaņot.</translation>
-<translation id="2532336938189706096">Tīmekļa skatījums</translation>
<translation id="7096034533295549981">Video ielāde</translation>
<translation id="1542044944667958430">Meklēšana tīmeklī</translation>
<translation id="6849295950938417341">Neizdevās startēt profilētāju.</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_nl.xtb b/content/public/android/java/strings/translations/android_content_strings_nl.xtb
index dd30ecc706..f174345b16 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_nl.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_nl.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="nl">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="nl">
<translation id="2094750046714988961">Kan profiler niet starten omdat externe opslag niet gereed is</translation>
<translation id="1256337885411059545">Kan video niet afspelen</translation>
<translation id="2520230379124234395">Profiler gestart</translation>
<translation id="4859501799452851758">Profiler klaar. De resultaten staan in <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Kan deze video niet streamen naar dit apparaat.</translation>
<translation id="2410828433627930127">Deze video kan niet worden afgespeeld.</translation>
-<translation id="2532336938189706096">Webweergave</translation>
<translation id="7096034533295549981">Video laden</translation>
<translation id="1542044944667958430">Zoeken op internet</translation>
<translation id="6849295950938417341">Kan profiler niet starten</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_no.xtb b/content/public/android/java/strings/translations/android_content_strings_no.xtb
index 51ba98aca5..a537148a21 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_no.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_no.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="no">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="no">
<translation id="2094750046714988961">Kan ikke starte profileringsverktøyet fordi ekstern lagring ikke er klar</translation>
<translation id="1256337885411059545">Kan ikke spille av videoen</translation>
<translation id="2520230379124234395">Profileringsverktøyet har startet</translation>
<translation id="4859501799452851758">Profileringsverktøyet er ferdig. Du finner resultatene i <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Beklager, videoen er ikke gyldig for strømming på denne enheten.</translation>
<translation id="2410828433627930127">Beklager, videoen kan ikke spilles av.</translation>
-<translation id="2532336938189706096">Nettvisning</translation>
<translation id="7096034533295549981">Laster inn videoen ...</translation>
<translation id="1542044944667958430">Nettsøk</translation>
<translation id="6849295950938417341">Kunne ikke starte profileringsverktøyet</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_pl.xtb b/content/public/android/java/strings/translations/android_content_strings_pl.xtb
index 796a5ed277..2fd6bf6794 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_pl.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_pl.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pl">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pl">
<translation id="2094750046714988961">Nie można uruchomić narzędzia do profilowania, ponieważ zewnętrzna pamięć masowa nie jest gotowa</translation>
<translation id="1256337885411059545">Nie można odtworzyć filmu</translation>
<translation id="2520230379124234395">Narzędzie do profilowania zostało uruchomione</translation>
<translation id="4859501799452851758">Profilowanie zakończone. Wyniki zostały zapisane w pliku <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Tego filmu nie można przesłać na to urządzenie.</translation>
<translation id="2410828433627930127">Tego filmu nie można odtworzyć.</translation>
-<translation id="2532336938189706096">Widok sieci</translation>
<translation id="7096034533295549981">Wczytuję film</translation>
<translation id="1542044944667958430">Wyszukaj w Google</translation>
<translation id="6849295950938417341">Nie można uruchomić narzędzia do profilowania</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_pt-BR.xtb b/content/public/android/java/strings/translations/android_content_strings_pt-BR.xtb
index 082d2400d9..d6fd32ebf1 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_pt-BR.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_pt-BR.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pt-BR">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pt-BR">
<translation id="2094750046714988961">Não é possível iniciar o profiler porque o armazenamento externo não está pronto</translation>
<translation id="1256337885411059545">Não é possível reproduzir vídeo</translation>
<translation id="2520230379124234395">Profiler iniciado</translation>
<translation id="4859501799452851758">Profiler terminado. Os resultados estão em <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Não é possível realizar o streaming deste vídeo para este dispositivo.</translation>
<translation id="2410828433627930127">Não é possível reproduzir este vídeo.</translation>
-<translation id="2532336938189706096">Visualização da Web</translation>
<translation id="7096034533295549981">Carregando vídeo</translation>
<translation id="1542044944667958430">Pesquisa da Web</translation>
<translation id="6849295950938417341">Falha ao iniciar o profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_pt-PT.xtb b/content/public/android/java/strings/translations/android_content_strings_pt-PT.xtb
index c2899deb46..6016a4111a 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_pt-PT.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_pt-PT.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="pt-PT">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pt-PT">
<translation id="2094750046714988961">Não é possível iniciar o gerador de perfis, porque o armazenamento externo não está pronto</translation>
<translation id="1256337885411059545">Impossível reproduzir vídeo</translation>
<translation id="2520230379124234395">O gerador de perfis foi iniciado</translation>
<translation id="4859501799452851758">O gerador de perfis terminou. Os resultados estão em <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Este vídeo não é válido para transmissão em fluxo contínuo neste dispositivo.</translation>
<translation id="2410828433627930127">Não é possível reproduzir este vídeo.</translation>
-<translation id="2532336938189706096">Visualização na Web</translation>
<translation id="7096034533295549981">A carregar vídeo</translation>
<translation id="1542044944667958430">Pesquisa Web</translation>
<translation id="6849295950938417341">Falha ao iniciar o gerador de perfis</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_ro.xtb b/content/public/android/java/strings/translations/android_content_strings_ro.xtb
index bd04d2c442..46014de139 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ro.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ro.xtb
@@ -1,16 +1,13 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ro">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ro">
<translation id="2094750046714988961">Instrumentul de creare a profilului nu poate porni, deoarece stocarea externă nu este gata</translation>
<translation id="1256337885411059545">Nu se poate reda videoclipul</translation>
<translation id="2520230379124234395">Instrumentul de creare a profilului a pornit</translation>
<translation id="4859501799452851758">Instrumentul de creare a profilului a finalizat operația. Rezultatele apar în <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Ne pare rău, acest videoclip nu este valid pentru transmitere în flux pe acest dispozitiv.</translation>
<translation id="2410828433627930127">Ne pare rău, acest videoclip nu poate fi redat.</translation>
-<translation id="2532336938189706096">Vizualizare pe web</translation>
<translation id="7096034533295549981">Se încarcă video</translation>
<translation id="1542044944667958430">Căutare pe web</translation>
<translation id="6849295950938417341">Instrumentul de creare a profilului nu a putut porni</translation>
-<translation id="6527303717912515753">Trimiteți</translation>
+<translation id="6527303717912515753">Trimite</translation>
<translation id="6965382102122355670">OK</translation>
</translationbundle> \ No newline at end of file
diff --git a/content/public/android/java/strings/translations/android_content_strings_ru.xtb b/content/public/android/java/strings/translations/android_content_strings_ru.xtb
index 29df3b7d48..4f012ff267 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_ru.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_ru.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="ru">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ru">
<translation id="2094750046714988961">Не удалось запустить профайлер, поскольку внешнее хранилище недоступно</translation>
<translation id="1256337885411059545">Не удается воспроизвести видео</translation>
<translation id="2520230379124234395">Профайлер запущен</translation>
<translation id="4859501799452851758">Работа профайлера завершена. Результаты сохранены в файле <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Невозможно воспроизвести видео на этом устройстве</translation>
<translation id="2410828433627930127">Невозможно воспроизвести видео.</translation>
-<translation id="2532336938189706096">Веб-версия</translation>
<translation id="7096034533295549981">Загрузка видео…</translation>
<translation id="1542044944667958430">Веб-поиск</translation>
<translation id="6849295950938417341">Не удалось запустить профайлер</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_sk.xtb b/content/public/android/java/strings/translations/android_content_strings_sk.xtb
index 893a0299e2..c96fbc006a 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_sk.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_sk.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sk">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sk">
<translation id="2094750046714988961">Profilovač sa nedá spustiť, pretože externý ukladací priestor nie je pripravený</translation>
<translation id="1256337885411059545">Video sa nedá prehrať</translation>
<translation id="2520230379124234395">Profilovač bol spustený</translation>
<translation id="4859501799452851758">Profilovač bol ukončený. Výsledky sa uložili do súboru <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Je nám to ľúto, ale toto video sa nedá streamovať do tohto zariadenia.</translation>
<translation id="2410828433627930127">Je nám to ľúto, ale toto video sa nedá prehrať.</translation>
-<translation id="2532336938189706096">Webové zobrazenie</translation>
<translation id="7096034533295549981">Načítanie videa</translation>
<translation id="1542044944667958430">Vyhľadávanie na webe</translation>
<translation id="6849295950938417341">Spustenie profilovača zlyhalo</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_sl.xtb b/content/public/android/java/strings/translations/android_content_strings_sl.xtb
index 6119404bf5..a1a4e0c6a5 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_sl.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_sl.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sl">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sl">
<translation id="2094750046714988961">Orodja za spremljanje delovanja aplikacije ali sistema ni mogoče zagnati, ker zunanja naprava za shranjevanje ni pripravljena</translation>
<translation id="1256337885411059545">Videa ni mogoče predvajati</translation>
<translation id="2520230379124234395">Orodje za spremljanje delovanja aplikacije ali sistema se je zagnalo</translation>
<translation id="4859501799452851758">Orodje za spremljanje delovanja aplikacije ali sistema je končalo postopek. Rezultati so v datoteki <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Ta video ni veljaven za pretakanje v to napravo.</translation>
<translation id="2410828433627930127">Tega videa ni mogoče predvajati.</translation>
-<translation id="2532336938189706096">Spletni pogled</translation>
<translation id="7096034533295549981">Nalaganje videa</translation>
<translation id="1542044944667958430">Spletno iskanje</translation>
<translation id="6849295950938417341">Orodja za spremljanje delovanja aplikacije ali sistema ni bilo mogoče zagnati</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_sr.xtb b/content/public/android/java/strings/translations/android_content_strings_sr.xtb
index 5917056712..ee080a55dd 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_sr.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_sr.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sr">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sr">
<translation id="2094750046714988961">Није могуће покренути програм за оптимизацију зато што спољна меморија није спремна</translation>
<translation id="1256337885411059545">Није могуће пустити видео</translation>
<translation id="2520230379124234395">Програм за оптимизацију је покренут</translation>
<translation id="4859501799452851758">Програм за оптимизацију је завршио. Резултати су у датотеци <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Жао нам је, овај видео није погодан за стриминг на овом уређају.</translation>
<translation id="2410828433627930127">Жао нам је, није могуће пустити овај видео.</translation>
-<translation id="2532336938189706096">Веб-приказ</translation>
<translation id="7096034533295549981">Учитавање видеа</translation>
<translation id="1542044944667958430">Веб-претрага</translation>
<translation id="6849295950938417341">Покретање програма за оптимизацију није успело</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_sv.xtb b/content/public/android/java/strings/translations/android_content_strings_sv.xtb
index b00a6998e5..b8bf6fc60b 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_sv.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_sv.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sv">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sv">
<translation id="2094750046714988961">Det går inte att starta profileraren eftersom den externa lagringsplatsen inte är klar</translation>
<translation id="1256337885411059545">Det går inte att spela upp video</translation>
<translation id="2520230379124234395">Profileraren har startats</translation>
<translation id="4859501799452851758">Profileringen är klar. Resultaten finns i <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Det går tyvärr inte att spela upp videon på den här enheten.</translation>
<translation id="2410828433627930127">Det går tyvärr inte att spela upp den här videon.</translation>
-<translation id="2532336938189706096">Webbvy</translation>
<translation id="7096034533295549981">Videon läses in</translation>
<translation id="1542044944667958430">Webbsökning</translation>
<translation id="6849295950938417341">Det gick inte att starta profileraren</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_sw.xtb b/content/public/android/java/strings/translations/android_content_strings_sw.xtb
index 91524c6d1e..cb6e31c198 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_sw.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_sw.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="sw">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sw">
<translation id="2094750046714988961">Haiwezi kuanzisha kihoji rejesta kwa sababu hifadhi ya nje haiko tayari</translation>
<translation id="1256337885411059545">Haiwezi kucheza video</translation>
<translation id="2520230379124234395">Kihoji rejesta kimeanzishwa</translation>
<translation id="4859501799452851758">Kihoji rejesta kimemaliza. Matokeo yako katika <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Samahani, video hii sio sahihi kutiririshwa kwenye kifaa hiki.</translation>
<translation id="2410828433627930127">Samahani, video hii haiwezi kuchezwa.</translation>
-<translation id="2532336938189706096">Mwonekano wa Wavuti</translation>
<translation id="7096034533295549981">Inapakia video</translation>
<translation id="1542044944667958430">Tafuta kwenye wavuti</translation>
<translation id="6849295950938417341">Imeshindwa kuanzisha kihoji rejesta</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_th.xtb b/content/public/android/java/strings/translations/android_content_strings_th.xtb
index 5a21aa8073..d30cb6eca4 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_th.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_th.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="th">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="th">
<translation id="2094750046714988961">ไม่สามารถเริ่มโปรแกรมโปรไฟล์เลอร์ได้เนื่องจากที่จัดเก็บข้อมูลภายนอกไม่พร้อมใช้งาน</translation>
<translation id="1256337885411059545">ไม่สามารถเล่นวิดีโอ</translation>
<translation id="2520230379124234395">เริ่มโปรแกรมโปรไฟล์เลอร์แล้ว</translation>
<translation id="4859501799452851758">โปรแกรมโปรไฟล์เลอร์ดำเนินการเสร็จแล้ว ผลลัพธ์อยู่ใน <ph name="FILENAME"/></translation>
<translation id="273860350361291195">ขออภัย ไม่สามารถสตรีมวิดีโอไปยังอุปกรณ์นี้</translation>
<translation id="2410828433627930127">ขออภัย วิดีโอนี้เล่นไม่ได้</translation>
-<translation id="2532336938189706096">มุมมองเว็บ</translation>
<translation id="7096034533295549981">กำลังโหลดวิดีโอ</translation>
<translation id="1542044944667958430">ค้นเว็บ</translation>
<translation id="6849295950938417341">ไม่สามารถเริ่มโปรแกรมโปรไฟล์เลอร์</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_tr.xtb b/content/public/android/java/strings/translations/android_content_strings_tr.xtb
index b9a9de072b..a903adcdff 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_tr.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_tr.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="tr">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="tr">
<translation id="2094750046714988961">Harici depolama birimi hazır olmadığından profil düzenleyici başlatılamıyor</translation>
<translation id="1256337885411059545">Video oynatılamıyor</translation>
<translation id="2520230379124234395">Profil düzenleyici başlatıldı</translation>
<translation id="4859501799452851758">Profil düzenleyici tamamlandı. Sonuçlar <ph name="FILENAME"/> dosyasındadır.</translation>
<translation id="273860350361291195">Bu video maalesef bu cihaza akışla gönderilmek için uygun değil.</translation>
<translation id="2410828433627930127">Maalesef bu video oynatılamıyor.</translation>
-<translation id="2532336938189706096">Web Görüntüleme</translation>
<translation id="7096034533295549981">Video yükleniyor</translation>
<translation id="1542044944667958430">Web arama</translation>
<translation id="6849295950938417341">Profil düzenleyici başlatılamadı</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_uk.xtb b/content/public/android/java/strings/translations/android_content_strings_uk.xtb
index 5212e564c0..a42394bf02 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_uk.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_uk.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="uk">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="uk">
<translation id="2094750046714988961">Неможливо запустити профілювальник, оскільки зовнішня пам’ять не готова</translation>
<translation id="1256337885411059545">Не вдається відтворити відео</translation>
<translation id="2520230379124234395">Профілювальник запущено</translation>
<translation id="4859501799452851758">Профілювальник закінчив роботу. Результати у файлі <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">На жаль, це відео неможливо транслювати на цьому пристрої.</translation>
<translation id="2410828433627930127">На жаль, це відео неможливо відтворити.</translation>
-<translation id="2532336938189706096">Веб-версія</translation>
<translation id="7096034533295549981">Завантаж. відео</translation>
<translation id="1542044944667958430">Веб-пошук</translation>
<translation id="6849295950938417341">Помилка запуску профілювальника</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_vi.xtb b/content/public/android/java/strings/translations/android_content_strings_vi.xtb
index b445646fd8..52a9340aa2 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_vi.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_vi.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="vi">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="vi">
<translation id="2094750046714988961">Không thể khởi động profiler vì bộ nhớ ngoài không sẵn sàng</translation>
<translation id="1256337885411059545">Không thể phát video</translation>
<translation id="2520230379124234395">Đã chạy Profiler</translation>
<translation id="4859501799452851758">Đã hoàn tất Profiler. Kết quả có trong <ph name="FILENAME"/>.</translation>
<translation id="273860350361291195">Rất tiếc, video này không hợp lệ để phát trực tuyến sang thiết bị này.</translation>
<translation id="2410828433627930127">Rất tiếc, không thể phát video này.</translation>
-<translation id="2532336938189706096">Lượt xem trên web</translation>
<translation id="7096034533295549981">Đang tải video</translation>
<translation id="1542044944667958430">Tìm kiếm trên web</translation>
<translation id="6849295950938417341">Không khởi động được profiler</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_zh-CN.xtb b/content/public/android/java/strings/translations/android_content_strings_zh-CN.xtb
index 2c775bd834..3f84d29a6c 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_zh-CN.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_zh-CN.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zh-CN">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="zh-CN">
<translation id="2094750046714988961">外部存储设备尚未准备就绪,无法启动分析器</translation>
<translation id="1256337885411059545">无法播放视频</translation>
<translation id="2520230379124234395">分析器已启动</translation>
<translation id="4859501799452851758">分析器已完成操作。请在 <ph name="FILENAME"/> 中查看分析结果。</translation>
<translation id="273860350361291195">抱歉,此视频无法流式传输到该设备。</translation>
<translation id="2410828433627930127">抱歉,此视频无法播放。</translation>
-<translation id="2532336938189706096">网页视图</translation>
<translation id="7096034533295549981">加载视频</translation>
<translation id="1542044944667958430">网页搜索</translation>
<translation id="6849295950938417341">无法启动分析器</translation>
diff --git a/content/public/android/java/strings/translations/android_content_strings_zh-TW.xtb b/content/public/android/java/strings/translations/android_content_strings_zh-TW.xtb
index 210f2d666d..6a18925cbf 100755..100644
--- a/content/public/android/java/strings/translations/android_content_strings_zh-TW.xtb
+++ b/content/public/android/java/strings/translations/android_content_strings_zh-TW.xtb
@@ -1,13 +1,10 @@
-<?xml version="1.0" ?>
-<!DOCTYPE translationbundle>
-<translationbundle lang="zh-TW">
+<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="zh-TW">
<translation id="2094750046714988961">外部儲存空間尚未準備就緒,因此無法啟動分析器</translation>
<translation id="1256337885411059545">無法播放影片</translation>
<translation id="2520230379124234395">分析器已啟動</translation>
<translation id="4859501799452851758">分析器已執行完成,請參閱 <ph name="FILENAME"/> 查看分析結果。</translation>
<translation id="273860350361291195">很抱歉,這部影片的格式有誤,無法透過這個裝置串流播放。</translation>
<translation id="2410828433627930127">很抱歉,無法播放這部影片。</translation>
-<translation id="2532336938189706096">網頁檢視</translation>
<translation id="7096034533295549981">正在載入影片</translation>
<translation id="1542044944667958430">網頁搜尋</translation>
<translation id="6849295950938417341">無法啟動分析器</translation>
diff --git a/content/renderer/accessibility/renderer_accessibility_browsertest.cc b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
index 736ebb6e0f..cad44264ab 100644
--- a/content/renderer/accessibility/renderer_accessibility_browsertest.cc
+++ b/content/renderer/accessibility/renderer_accessibility_browsertest.cc
@@ -59,7 +59,7 @@ class RendererAccessibilityTest : public RenderViewTest {
const IPC::Message* message =
sink_->GetUniqueMessageMatching(AccessibilityHostMsg_Events::ID);
ASSERT_TRUE(message);
- Tuple1<std::vector<AccessibilityHostMsg_EventParams> > param;
+ Tuple2<std::vector<AccessibilityHostMsg_EventParams>, int> param;
AccessibilityHostMsg_Events::Read(message, &param);
ASSERT_GE(param.a.size(), 1U);
*params = param.a[0];
@@ -549,7 +549,7 @@ TEST_F(RendererAccessibilityTest, EventOnObjectNotInTree) {
const IPC::Message* message =
sink_->GetUniqueMessageMatching(AccessibilityHostMsg_Events::ID);
ASSERT_TRUE(message);
- Tuple1<std::vector<AccessibilityHostMsg_EventParams> > param;
+ Tuple2<std::vector<AccessibilityHostMsg_EventParams>, int> param;
AccessibilityHostMsg_Events::Read(message, &param);
ASSERT_EQ(0U, param.a.size());
}
diff --git a/content/renderer/accessibility/renderer_accessibility_complete.cc b/content/renderer/accessibility/renderer_accessibility_complete.cc
index 6c4cc9245c..ef0cd11d56 100644
--- a/content/renderer/accessibility/renderer_accessibility_complete.cc
+++ b/content/renderer/accessibility/renderer_accessibility_complete.cc
@@ -39,6 +39,7 @@ RendererAccessibilityComplete::RendererAccessibilityComplete(
serializer_(&tree_source_),
last_scroll_offset_(gfx::Size()),
ack_pending_(false),
+ reset_token_(0),
weak_factory_(this) {
WebView* web_view = render_frame_->GetRenderView()->GetWebView();
WebSettings* settings = web_view->settings();
@@ -80,6 +81,7 @@ bool RendererAccessibilityComplete::OnMessageReceived(
IPC_MESSAGE_HANDLER(AccessibilityMsg_SetTextSelection,
OnSetTextSelection)
IPC_MESSAGE_HANDLER(AccessibilityMsg_HitTest, OnHitTest)
+ IPC_MESSAGE_HANDLER(AccessibilityMsg_Reset, OnReset)
IPC_MESSAGE_HANDLER(AccessibilityMsg_FatalError, OnFatalError)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
@@ -227,7 +229,8 @@ void RendererAccessibilityComplete::SendPendingAccessibilityEvents() {
<< "\n" << event_msg.update.ToString();
}
- Send(new AccessibilityHostMsg_Events(routing_id(), event_msgs));
+ Send(new AccessibilityHostMsg_Events(routing_id(), event_msgs, reset_token_));
+ reset_token_ = 0;
if (had_layout_complete_messages)
SendLocationChanges();
@@ -414,6 +417,16 @@ void RendererAccessibilityComplete::OnSetFocus(int acc_obj_id) {
obj.setFocused(true);
}
+void RendererAccessibilityComplete::OnReset(int reset_token) {
+ reset_token_ = reset_token;
+ serializer_.Reset();
+ pending_events_.clear();
+
+ const WebDocument& document = GetMainDocument();
+ if (!document.isNull())
+ HandleAXEvent(document.accessibilityObject(), ui::AX_EVENT_LAYOUT_COMPLETE);
+}
+
void RendererAccessibilityComplete::OnFatalError() {
CHECK(false) << "Invalid accessibility tree.";
}
diff --git a/content/renderer/accessibility/renderer_accessibility_complete.h b/content/renderer/accessibility/renderer_accessibility_complete.h
index 63c0d7e690..040f6b8681 100644
--- a/content/renderer/accessibility/renderer_accessibility_complete.h
+++ b/content/renderer/accessibility/renderer_accessibility_complete.h
@@ -70,6 +70,7 @@ class CONTENT_EXPORT RendererAccessibilityComplete
void OnSetFocus(int acc_obj_id);
void OnSetTextSelection(int acc_obj_id, int start_offset, int end_offset);
void OnHitTest(gfx::Point point);
+ void OnReset(int reset_token);
void OnFatalError();
// Events from Blink are collected until they are ready to be
@@ -93,6 +94,10 @@ class CONTENT_EXPORT RendererAccessibilityComplete
// Set if we are waiting for an accessibility event ack.
bool ack_pending_;
+ // Nonzero if the browser requested we reset the accessibility state.
+ // We need to return this token in the next IPC.
+ int reset_token_;
+
// So we can queue up tasks to be executed later.
base::WeakPtrFactory<RendererAccessibilityComplete> weak_factory_;
diff --git a/content/renderer/accessibility/renderer_accessibility_focus_only.cc b/content/renderer/accessibility/renderer_accessibility_focus_only.cc
index 43914121ec..e86f2f129d 100644
--- a/content/renderer/accessibility/renderer_accessibility_focus_only.cc
+++ b/content/renderer/accessibility/renderer_accessibility_focus_only.cc
@@ -140,7 +140,7 @@ void RendererAccessibilityFocusOnly::HandleFocusedNodeChanged(
**/
#endif
- Send(new AccessibilityHostMsg_Events(routing_id(), events));
+ Send(new AccessibilityHostMsg_Events(routing_id(), events, false));
// Increment the id, wrap back when we get past a million.
next_id_++;
diff --git a/content/test/weburl_loader_mock.cc b/content/test/weburl_loader_mock.cc
index 056564a839..02047a3c89 100644
--- a/content/test/weburl_loader_mock.cc
+++ b/content/test/weburl_loader_mock.cc
@@ -58,6 +58,7 @@ blink::WebURLRequest WebURLLoaderMock::ServeRedirect(
const blink::WebURLResponse& redirectResponse) {
blink::WebURLRequest newRequest;
newRequest.initialize();
+ newRequest.setRequestContext(blink::WebURLRequest::RequestContextInternal);
GURL redirectURL(redirectResponse.httpHeaderField("Location"));
newRequest.setURL(redirectURL);
client_->willSendRequest(this, newRequest, redirectResponse);