diff --git a/DEPS b/DEPS index db94f8b..6f15e20c 100644 --- a/DEPS +++ b/DEPS
@@ -105,11 +105,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': 'c06b8a4e0ca3844afbbbff545730f96d31fab897', + 'skia_revision': 'a78b6dcb82d2f6c940e9c0a6bc14853f846344d0', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '74c725b6a190a9eb39319d93988aab6682c2cddf', + 'v8_revision': '5e5144a59f3800bbf1a93f7d356606514b419e1f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -121,7 +121,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling build tools # and whatever else without interference from each other. - 'buildtools_revision': '0dd5c6f980d22be96b728155249df2da355989d9', + 'buildtools_revision': '9a90d9aaadeb5e04327ed05775f45132e4b3523f', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. @@ -165,7 +165,7 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling catapult # and whatever else without interference from each other. - 'catapult_revision': 'dd9e5b9c8c10464e1c4ec227ae7edbc626138acc', + 'catapult_revision': '0f2c4fec12728f0ebf98a6afa4f8a18f2a9b2a0b', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling libFuzzer # and whatever else without interference from each other. @@ -808,7 +808,7 @@ }, 'src/third_party/libvpx/source/libvpx': - Var('chromium_git') + '/webm/libvpx.git' + '@' + '3b921d49b07abd619a6fab135795c94f4ce1c7bd', + Var('chromium_git') + '/webm/libvpx.git' + '@' + '2d79df49408873dd62a1b26cf8ed0e067c26dc6d', 'src/third_party/libwebm/source': Var('chromium_git') + '/webm/libwebm.git' + '@' + '01c1d1d76f139345c442bfc8e61b4e1cba809059', @@ -912,7 +912,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '7e4b89eab724e67175bd55173a74aa79c56a46ff', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '296b43d7e177bac4bdb53e8807ef2c0898b53d88', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78', @@ -1034,7 +1034,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '21dbf06b5aa6c7dc8cf56314d4a3f96f57956c53', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + '009d0969867e411d40dfc9abd1bcedebea9cf17b', + Var('webrtc_git') + '/src.git' + '@' + '1bd66642c37083156c625578130dbed13f5fb32c', 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
diff --git a/PRESUBMIT.py b/PRESUBMIT.py index 74208a78..5e71b48 100644 --- a/PRESUBMIT.py +++ b/PRESUBMIT.py
@@ -36,6 +36,11 @@ _IMPLEMENTATION_EXTENSIONS = r'\.(cc|cpp|cxx|mm)$' +# Fragment of a regular expression that matches C++ and Objective-C++ +# header files. +_HEADER_EXTENSIONS = r'\.(h|hpp|hxx)$' + + # Regular expression that matches code only used for test binaries # (best effort). _TEST_CODE_EXCLUDED_PATHS = ( @@ -2775,6 +2780,46 @@ return [] +def _CheckNewHeaderWithoutGnChange(input_api, output_api): + """Checks that newly added header files have corresponding GN changes. + Note that this is only a heuristic. To be precise, run script: + build/check_gn_headers.py. + """ + + def headers(f): + return input_api.FilterSourceFile( + f, white_list=(r'.+%s' % _HEADER_EXTENSIONS, )) + + new_headers = [] + for f in input_api.AffectedSourceFiles(headers): + if f.Action() != 'A': + continue + new_headers.append(f.LocalPath()) + + def gn_files(f): + return input_api.FilterSourceFile(f, white_list=(r'.+\.gn', )) + + all_gn_changed_contents = '' + for f in input_api.AffectedSourceFiles(gn_files): + for _, line in f.ChangedContents(): + all_gn_changed_contents += line + + problems = [] + for header in new_headers: + basename = input_api.os_path.basename(header) + if basename not in all_gn_changed_contents: + problems.append(header) + + if problems: + return [output_api.PresubmitPromptWarning( + 'Missing GN changes for new header files', items=sorted(problems), + long_text='Please double check whether newly added header files need ' + 'corresponding changes in gn or gni files.\nThis checking is only a ' + 'heuristic. Run build/check_gn_headers.py to be precise.\n' + 'Read https://crbug.com/661774 for more info.')] + return [] + + def _AndroidSpecificOnUploadChecks(input_api, output_api): """Groups checks that target android code.""" results = [] @@ -3255,6 +3300,7 @@ results.extend(_CheckGoogleSupportAnswerUrl(input_api, output_api)) results.extend(_CheckCrbugLinksHaveHttps(input_api, output_api)) results.extend(_CheckUniquePtr(input_api, output_api)) + results.extend(_CheckNewHeaderWithoutGnChange(input_api, output_api)) return results
diff --git a/PRESUBMIT_test.py b/PRESUBMIT_test.py index 1692f5f..e5eb2ec 100755 --- a/PRESUBMIT_test.py +++ b/PRESUBMIT_test.py
@@ -1511,6 +1511,113 @@ self.assertEqual(1, len(errors)) +class NewHeaderWithoutGnChangeTest(unittest.TestCase): + def testAddHeaderWithoutGn(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(1, len(warnings)) + self.assertTrue('base/stuff.h' in warnings[0].items) + + def testModifyHeader(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', '', action='M'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(0, len(warnings)) + + def testDeleteHeader(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', '', action='D'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(0, len(warnings)) + + def testAddHeaderWithGn(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/BUILD.gn', 'stuff.h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(0, len(warnings)) + + def testAddHeaderWithGni(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/files.gni', 'stuff.h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(0, len(warnings)) + + def testAddHeaderWithOther(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/stuff.cc', 'stuff.h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(1, len(warnings)) + + def testAddHeaderWithWrongGn(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/BUILD.gn', 'stuff_h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(1, len(warnings)) + + def testAddHeadersWithGn(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/another.h', ''), + MockAffectedFile('base/BUILD.gn', 'another.h\nstuff.h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(0, len(warnings)) + + def testAddHeadersWithWrongGn(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/another.h', ''), + MockAffectedFile('base/BUILD.gn', 'another_h\nstuff.h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(1, len(warnings)) + self.assertFalse('base/stuff.h' in warnings[0].items) + self.assertTrue('base/another.h' in warnings[0].items) + + def testAddHeadersWithWrongGn2(self): + mock_input_api = MockInputApi() + mock_input_api.files = [ + MockAffectedFile('base/stuff.h', ''), + MockAffectedFile('base/another.h', ''), + MockAffectedFile('base/BUILD.gn', 'another_h\nstuff_h'), + ] + warnings = PRESUBMIT._CheckNewHeaderWithoutGnChange( + mock_input_api, MockOutputApi()) + self.assertEqual(1, len(warnings)) + self.assertTrue('base/stuff.h' in warnings[0].items) + self.assertTrue('base/another.h' in warnings[0].items) + + class MojoManifestOwnerTest(unittest.TestCase): def testMojoManifestChangeNeedsSecurityOwner(self): mock_input_api = MockInputApi()
diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java index 538f1a49..d71fea1 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwContentsClientOnRenderProcessGoneTest.java
@@ -130,11 +130,8 @@ @CommandLineFlags.Add(AwSwitches.WEBVIEW_SANDBOXED_RENDERER) @SkipCommandLineParameterization public void testRenderProcessTermination() throws Throwable { - createAndTerminateRenderProcess((AwContents awContents) -> { - awContents.evaluateJavaScript("0", (String result) -> { - Assert.assertTrue(awContents.getRenderProcess().terminate()); - }); - }, false); + createAndTerminateRenderProcess( + (AwContents awContents) -> { awContents.getRenderProcess().terminate(); }, false); } @Test
diff --git a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc index 1471ad4..9cbc5c7f 100644 --- a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc +++ b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.cc
@@ -51,6 +51,8 @@ KeyboardShortcutView* g_ksv_view = nullptr; +constexpr base::nullopt_t kAllCategories = base::nullopt; + // Setups the illustration views for search states, including an icon and a // descriptive text. void SetupSearchIllustrationView(views::View* illustration_view, @@ -146,6 +148,8 @@ g_ksv_view->AddAccelerator( ui::Accelerator(ui::VKEY_W, ui::EF_CONTROL_DOWN)); + g_ksv_view->needs_init_all_categories_ = false; + g_ksv_view->did_first_paint_ = false; g_ksv_view->GetWidget()->Show(); g_ksv_view->search_box_view_->search_box()->RequestFocus(); @@ -206,6 +210,30 @@ return gfx::Size(800, 512); } +void KeyboardShortcutView::OnPaint(gfx::Canvas* canvas) { + views::View::OnPaint(canvas); + + // Skip if it is the first OnPaint event. + if (!did_first_paint_) { + did_first_paint_ = true; + needs_init_all_categories_ = true; + return; + } + + if (!needs_init_all_categories_) + return; + + needs_init_all_categories_ = false; + // Cannot post a task right after initializing the first category, it will + // have a chance to end up in the same group of drawing commands sent to + // compositor. We can wait for the second OnPaint, which means previous + // drawing commands have been sent to compositor for the next frame and new + // coming commands will be sent for the next-next frame. + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(&KeyboardShortcutView::InitCategoriesTabbedPane, + weak_factory_.GetWeakPtr(), kAllCategories)); +} + void KeyboardShortcutView::QueryChanged(search_box::SearchBoxViewBase* sender) { const bool query_empty = sender->IsSearchBoxTrimmedQueryEmpty(); if (is_search_box_empty_ != query_empty) { @@ -244,7 +272,7 @@ UpdateViewsLayout(is_search_box_active); } -KeyboardShortcutView::KeyboardShortcutView() { +KeyboardShortcutView::KeyboardShortcutView() : weak_factory_(this) { DCHECK_EQ(g_ksv_view, nullptr); g_ksv_view = this; @@ -296,10 +324,16 @@ new views::TabbedPane(views::TabbedPane::Orientation::kVertical, views::TabbedPane::TabStripStyle::kHighlight); AddChildView(categories_tabbed_pane_); - InitCategoriesTabbedPane(); + + // Initial Layout of KeyboardShortcutItemView is time consuming. To speed up + // the startup time, we only initialize the first category pane, which is + // visible to user, and defer initialization of other categories in the + // background. + InitCategoriesTabbedPane(ShortcutCategory::kPopular); } -void KeyboardShortcutView::InitCategoriesTabbedPane() { +void KeyboardShortcutView::InitCategoriesTabbedPane( + base::Optional<ShortcutCategory> initial_category) { // If the tab count is 0, |GetSelectedTabIndex()| will return -1, which we do // not want to cache. active_tab_index_ = @@ -314,6 +348,7 @@ categories_tabbed_pane_->child_at(0)->RemoveAllChildViews(true); categories_tabbed_pane_->child_at(1)->RemoveAllChildViews(true); + const bool first_init = initial_category.has_value(); ShortcutCategory current_category = ShortcutCategory::kUnknown; KeyboardShortcutItemListView* item_list_view; for (const auto& item_view : shortcut_views_) { @@ -327,6 +362,13 @@ categories_tabbed_pane_->AddTab(GetStringForCategory(current_category), scroller); } + + // If |first_init| is true, we only initialize the pane with the + // KeyboardShortcutItemView in the specific category in |initial_category|. + // Otherwise, we will initialize all the panes. + if (first_init && category != initial_category.value()) + continue; + if (item_list_view->has_children()) item_list_view->AddHorizontalSeparator(); views::StyledLabel* description_label_view = @@ -337,6 +379,7 @@ // Remove the search query highlight. description_label_view->Layout(); } + Layout(); } void KeyboardShortcutView::UpdateViewsLayout(bool is_search_box_active) { @@ -355,7 +398,7 @@ if (!categories_tabbed_pane_->visible()) { // Repopulate |categories_tabbed_pane_| child views, which were removed // when they were added to |search_results_container_|. - InitCategoriesTabbedPane(); + InitCategoriesTabbedPane(kAllCategories); // Select the category that was active before entering search mode. categories_tabbed_pane_->SelectTabAt(active_tab_index_); }
diff --git a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.h b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.h index 2fea913..dfc37b7 100644 --- a/ash/components/shortcut_viewer/views/keyboard_shortcut_view.h +++ b/ash/components/shortcut_viewer/views/keyboard_shortcut_view.h
@@ -10,6 +10,7 @@ #include <vector> #include "base/macros.h" +#include "base/optional.h" #include "base/timer/timer.h" #include "ui/chromeos/search_box/search_box_view_delegate.h" #include "ui/views/widget/widget_delegate.h" @@ -48,6 +49,7 @@ bool AcceleratorPressed(const ui::Accelerator& accelerator) override; void Layout() override; gfx::Size CalculatePreferredSize() const override; + void OnPaint(gfx::Canvas* canvas) override; // search_box::SearchBoxViewDelegate: void QueryChanged(search_box::SearchBoxViewBase* sender) override; @@ -63,7 +65,10 @@ // Initialize |categories_tabbed_pane_| with category tabs and containers of // |shortcut_views_|, called on construction and when exiting search mode. - void InitCategoriesTabbedPane(); + // If |initial_category| has value, we will initialize the specified category, + // otherwise all the categories will be intialized. + void InitCategoriesTabbedPane( + base::Optional<ShortcutCategory> initial_category); // Update views' layout based on search box status. void UpdateViewsLayout(bool is_search_box_active); @@ -114,6 +119,15 @@ // Debounce for search queries. base::OneShotTimer debounce_timer_; + // Ture if need to initialize all the categories. + // False if only initialize the first category. + bool needs_init_all_categories_ = false; + // Indicates if recieved the first OnPaint event. Used to schedule + // initialization of background panes in the following frame. + bool did_first_paint_ = false; + + base::WeakPtrFactory<KeyboardShortcutView> weak_factory_; + DISALLOW_COPY_AND_ASSIGN(KeyboardShortcutView); };
diff --git a/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc b/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc index 2d96308..1ee42d9 100644 --- a/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc +++ b/ash/components/shortcut_viewer/views/keyboard_shortcut_view_unittest.cc
@@ -145,6 +145,11 @@ views::Widget* widget = KeyboardShortcutView::Toggle(base::TimeTicks()); for (const auto& item_view : GetShortcutViews()) { + // We only initialize the first visible category and other non-visible panes + // are deferred initialized. + if (item_view->category() != ShortcutCategory::kPopular) + continue; + DCHECK(item_view->child_count() == 2); // The top lines in both |description_label_view_| and
diff --git a/ash/shelf/shelf_layout_manager.cc b/ash/shelf/shelf_layout_manager.cc index fe61c8c..beff84d 100644 --- a/ash/shelf/shelf_layout_manager.cc +++ b/ash/shelf/shelf_layout_manager.cc
@@ -23,10 +23,10 @@ #include "ash/shelf/shelf_layout_manager_observer.h" #include "ash/shelf/shelf_widget.h" #include "ash/shell.h" -#include "ash/shell_port.h" #include "ash/sidebar/sidebar.h" #include "ash/system/status_area_widget.h" #include "ash/wm/fullscreen_window_finder.h" +#include "ash/wm/lock_state_controller.h" #include "ash/wm/mru_window_tracker.h" #include "ash/wm/overview/window_selector_controller.h" #include "ash/wm/screen_pinning_controller.h" @@ -169,7 +169,7 @@ DCHECK(shelf_widget_); DCHECK(shelf_); Shell::Get()->AddShellObserver(this); - ShellPort::Get()->AddLockStateObserver(this); + Shell::Get()->lock_state_controller()->AddObserver(this); Shell::Get()->activation_client()->AddObserver(this); state_.session_state = Shell::Get()->session_controller()->GetSessionState(); keyboard::KeyboardController::Get()->AddObserver(this); @@ -183,7 +183,7 @@ observer.WillDeleteShelfLayoutManager(); keyboard::KeyboardController::Get()->RemoveObserver(this); Shell::Get()->RemoveShellObserver(this); - ShellPort::Get()->RemoveLockStateObserver(this); + Shell::Get()->lock_state_controller()->RemoveObserver(this); } void ShelfLayoutManager::PrepareForShutdown() {
diff --git a/ash/shelf/shelf_locking_manager.cc b/ash/shelf/shelf_locking_manager.cc index c7742e8..d6e26fdd 100644 --- a/ash/shelf/shelf_locking_manager.cc +++ b/ash/shelf/shelf_locking_manager.cc
@@ -7,7 +7,7 @@ #include "ash/session/session_controller.h" #include "ash/shelf/shelf.h" #include "ash/shell.h" -#include "ash/shell_port.h" +#include "ash/wm/lock_state_controller.h" namespace ash { @@ -16,7 +16,7 @@ stored_alignment_(SHELF_ALIGNMENT_BOTTOM_LOCKED), scoped_session_observer_(this) { DCHECK(shelf_); - ShellPort::Get()->AddLockStateObserver(this); + Shell::Get()->lock_state_controller()->AddObserver(this); SessionController* controller = Shell::Get()->session_controller(); session_locked_ = controller->GetSessionState() != session_manager::SessionState::ACTIVE; @@ -24,7 +24,9 @@ } ShelfLockingManager::~ShelfLockingManager() { - ShellPort::Get()->RemoveLockStateObserver(this); + // |this| is destroyed after LockStateController for the primary display. + if (Shell::Get()->lock_state_controller()) + Shell::Get()->lock_state_controller()->RemoveObserver(this); } void ShelfLockingManager::OnLockStateChanged(bool locked) {
diff --git a/ash/shell_port.cc b/ash/shell_port.cc index afd022f..d9d3b9f 100644 --- a/ash/shell_port.cc +++ b/ash/shell_port.cc
@@ -47,19 +47,6 @@ source_type); } -void ShellPort::OnLockStateEvent(LockStateObserver::EventType event) { - for (auto& observer : lock_state_observers_) - observer.OnLockStateEvent(event); -} - -void ShellPort::AddLockStateObserver(LockStateObserver* observer) { - lock_state_observers_.AddObserver(observer); -} - -void ShellPort::RemoveLockStateObserver(LockStateObserver* observer) { - lock_state_observers_.RemoveObserver(observer); -} - ShellPort::ShellPort() { DCHECK(!instance_); instance_ = this;
diff --git a/ash/shell_port.h b/ash/shell_port.h index e014c663..2e39de5 100644 --- a/ash/shell_port.h +++ b/ash/shell_port.h
@@ -11,8 +11,6 @@ #include <vector> #include "ash/ash_export.h" -#include "ash/wm/lock_state_observer.h" -#include "base/observer_list.h" #include "services/viz/public/interfaces/compositing/video_detector_observer.mojom.h" #include "ui/aura/client/window_types.h" #include "ui/base/ui_base_types.h" @@ -104,11 +102,6 @@ views::PointerWatcherEventTypes events) = 0; virtual void RemovePointerWatcher(views::PointerWatcher* watcher) = 0; - // TODO: Move these back to LockStateController when that has been moved. - void OnLockStateEvent(LockStateObserver::EventType event); - void AddLockStateObserver(LockStateObserver* observer); - void RemoveLockStateObserver(LockStateObserver* observer); - // True if any touch points are down. virtual bool IsTouchDown() = 0; @@ -153,8 +146,6 @@ friend class Shell; static ShellPort* instance_; - - base::ObserverList<LockStateObserver> lock_state_observers_; }; } // namespace ash
diff --git a/ash/strings/ash_strings_am.xtb b/ash/strings/ash_strings_am.xtb index 22f850fb..a6ddd2bd 100644 --- a/ash/strings/ash_strings_am.xtb +++ b/ash/strings/ash_strings_am.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">ባለብዙ በመለያ-መግቢያ</translation> <translation id="8000066093800657092">ምንም አውታረ መረብ የለም</translation> <translation id="8029241286966751120">የሙሉ ማያ ገጽ ማጉያ ነቅቷል። እንዲጠፋ አድርጎ እንደገና ለመቀያየር Ctrl+ፍለጋ+M ይጫኑ።</translation> +<translation id="8030169304546394654">አልተያያዘም</translation> <translation id="8054466585765276473">የባትሪ ጊዜን በማስላት ላይ።</translation> <translation id="8061464966246066292">ከፍተኛ ንፅፅር</translation> <translation id="8098591350844501178">ማያ ገጹን ወደ <ph name="RECEIVER_NAME" /> Cast ማድረግ አስቁም</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">ሌላ ተጠቃሚ በመለያ አስገባ...</translation> <translation id="9201131092683066720">ባትሪው <ph name="PERCENTAGE" />% ሙሉ ነው።</translation> <translation id="9210037371811586452">ከተዋሃደ የዴስክቶፕ ሁነታ በመውጣት ላይ</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">ልጣፍ ያዘጋጁ</translation> <translation id="923686485342484400">ዘግተው ለመውጣት Ctrl Shift Qን ሁለቴ ይጫኑ።</translation> <translation id="945522503751344254">ግብረ መልስ ላክ</translation>
diff --git a/ash/strings/ash_strings_ar.xtb b/ash/strings/ash_strings_ar.xtb index 2db82f19..f091c31f9 100644 --- a/ash/strings/ash_strings_ar.xtb +++ b/ash/strings/ash_strings_ar.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">نسخ إلى <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">إلغاء القفل باستخدام بصمة الإصبع</translation> <translation id="1919743966458266018">لقد تغيّر اختصار فتح إدارة المهام. يُرجى استخدام <ph name="NEW_SHORTCUT" /> بدلاً من <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">سيتم محو جلستك عند تسجيل الخروج. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">النقرات التلقائية</translation> <translation id="1928739107511554905">للحصول على التحديث، استخدم الشاشة التي تعمل باللمس لإعادة تشغيل جهاز Chromebook، مع توصيل لوحة المفاتيح المرفقة.</translation> <translation id="1942830294380034169">زر تجاوز السعة</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">تم تغيير اختصار تشغيل وضع التباين العالي. يُرجى استخدام <ph name="NEW_SHORTCUT" /> بدلاً من <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">قوية</translation> <translation id="4918086044614829423">قبول</translation> +<translation id="4924411785043111640">إعادة التشغيل وإعادة الضبط</translation> <translation id="4961318399572185831">إرسال الشاشة</translation> +<translation id="5069971504769299223">قد يتمكَّن مدير الجهاز من مراقبة نشاطك.</translation> <translation id="5136175204352732067">تم توصيل لوحة مفاتيح مختلفة</translation> <translation id="5168181903108465623">أجهزة البث متاحة</translation> <translation id="5207949376430453814">تمييز علامة إقحام النص</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">تمت إضافة كل المستخدمين المتوفرين لهذه الجلسة.</translation> <translation id="5457599981699367932">تصفَّح كزائر</translation> <translation id="54609108002486618">تتم إدارته</translation> +<translation id="5496819745535887422">يعمل المشرف على إغلاق جهازك. وسيتم حذف جميع البيانات عند إعادة تشغيل الجهاز.</translation> <translation id="553675580533261935">جارٍ الخروج من الجلسة</translation> <translation id="5537725057119320332">إرسال</translation> <translation id="5548285847212963613">يمكن أن تساعد الإضافة " <ph name="EXTENSION_NAME" /> "على الاتصال بهذه الشبكة.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">Search+Shift+K</translation> <translation id="6650933572246256093">يريد جهاز بلوتوث "<ph name="DEVICE_NAME" />" الحصول على إذن للإقران. يُرجى إدخال مفتاح المرور هذا في هذا الجهاز: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">كلمة المرور</translation> +<translation id="6687966522050791666">اختيار اللغة والإدخال</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">تحتاج لوحة المفاتيح القابلة للفصل إلى تحديث مهم</translation> <translation id="6700713906295497288">زر قائمة أداة تحرير أسلوب الإدخال (IME)</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">الدخول المتعدد</translation> <translation id="8000066093800657092">لا شبكة</translation> <translation id="8029241286966751120">تم تفعيل المكبّر بوضع ملء الشاشة. يمكنك إيقافه بالضغط على Ctrl+Search+M مرة أخرى.</translation> +<translation id="8030169304546394654">غير متصل</translation> <translation id="8054466585765276473">يجري حساب وقت البطارية.</translation> <translation id="8061464966246066292">تباين عالٍ</translation> <translation id="8098591350844501178">إيقاف إرسال الشاشة إلى <ph name="RECEIVER_NAME" /></translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">التشغيل السريع</translation> <translation id="8995603266996330174">مدار بواسطة <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">هناك تحديث جديد لتطبيق Adobe Flash Player</translation> +<translation id="9056839673611986238">سيتم إغلاق الجهاز.</translation> <translation id="9074739597929991885">بلوتوث</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">الميكروفون قيد الاستخدام</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">تسجيل دخول مستخدم آخر...</translation> <translation id="9201131092683066720">اكتمل شحن <ph name="PERCENTAGE" />% من البطارية.</translation> <translation id="9210037371811586452">جارٍ الخروج من وضع سطح المكتب الموحد</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">تعيين خلفية</translation> <translation id="923686485342484400">للخروج اضغط على Ctrl Shift Q مرتين.</translation> <translation id="945522503751344254">إرسال تعليقات</translation>
diff --git a/ash/strings/ash_strings_bg.xtb b/ash/strings/ash_strings_bg.xtb index 7e0c7bb..ea355f3 100644 --- a/ash/strings/ash_strings_bg.xtb +++ b/ash/strings/ash_strings_bg.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Централизиран вход</translation> <translation id="8000066093800657092">Няма мрежа</translation> <translation id="8029241286966751120">Лупата за увеличаване на целия екран е активирана. За да я изключите, натиснете отново Ctrl + клавиш „Търсене“ + M.</translation> +<translation id="8030169304546394654">Няма връзка</translation> <translation id="8054466585765276473">Издръжливостта на батерията се изчислява.</translation> <translation id="8061464966246066292">Висок контраст</translation> <translation id="8098591350844501178">Спиране на предаването на екрана към „<ph name="RECEIVER_NAME" />“</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Влизане в профила на друг потребител...</translation> <translation id="9201131092683066720">Батерията е <ph name="PERCENTAGE" />% пълна.</translation> <translation id="9210037371811586452">Излиза се от режима на обединен работен плот</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Задаване на тапета</translation> <translation id="923686485342484400">Натиснете два пъти „Control+Shift+Q“ за изход.</translation> <translation id="945522503751344254">Изпращане на отзиви</translation>
diff --git a/ash/strings/ash_strings_bn.xtb b/ash/strings/ash_strings_bn.xtb index 223f6db2..7ea06fd 100644 --- a/ash/strings/ash_strings_bn.xtb +++ b/ash/strings/ash_strings_bn.xtb
@@ -358,6 +358,7 @@ <translation id="7994370417837006925">একাধিক সাইন-ইন</translation> <translation id="8000066093800657092">কোনও নেটওয়ার্ক নেই</translation> <translation id="8029241286966751120">ফুল-স্ক্রিন ম্যাগনিফায়ার চালু আছে। আবার Ctrl+Search+M প্রেস করে সেটিকে বন্ধ করুন।</translation> +<translation id="8030169304546394654">সংযোগ বিচ্ছিন্ন</translation> <translation id="8054466585765276473">ব্যাটারি সময় গণনা করা হচ্ছে।</translation> <translation id="8061464966246066292">উচ্চ বৈসাদৃশ্য</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> এ স্ক্রিন কাস্ট করা বন্ধ করুন</translation> @@ -419,7 +420,6 @@ <translation id="9194617393863864469">অন্য ব্যবহারকারীকে প্রবেশ করান...</translation> <translation id="9201131092683066720">ব্যাটারি <ph name="PERCENTAGE" />% পূর্ণ৷</translation> <translation id="9210037371811586452">সমন্বিত ডেস্কটপ মোড থেকে প্রস্থান করছে</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">ওয়ালপেপার সেট করুন</translation> <translation id="923686485342484400">প্রস্থান করার জন্য দুবার Control Shift Q টিপুন৷</translation> <translation id="945522503751344254">মতামত জানান</translation>
diff --git a/ash/strings/ash_strings_ca.xtb b/ash/strings/ash_strings_ca.xtb index e652765..bea3795 100644 --- a/ash/strings/ash_strings_ca.xtb +++ b/ash/strings/ash_strings_ca.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Inici de sessió múltiple</translation> <translation id="8000066093800657092">No hi ha cap xarxa</translation> <translation id="8029241286966751120">La lupa de pantalla completa està activada. Torna a prémer Ctrl+Cerca+M per desactivar-la.</translation> +<translation id="8030169304546394654">Desconnectat</translation> <translation id="8054466585765276473">S'està calculant el temps de la bateria.</translation> <translation id="8061464966246066292">Contrast alt</translation> <translation id="8098591350844501178">Deixa d'emetre la pantalla a <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Inicia la sessió amb un altre usuari...</translation> <translation id="9201131092683066720">La bateria està carregada fins al <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">S'està sortint del mode d'escriptori unificat</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Estableix fons de pantalla</translation> <translation id="923686485342484400">Premeu Control+Maj+Q dues vegades per tancar la sessió.</translation> <translation id="945522503751344254">Envia suggeriments</translation>
diff --git a/ash/strings/ash_strings_cs.xtb b/ash/strings/ash_strings_cs.xtb index 37de566..4688c57 100644 --- a/ash/strings/ash_strings_cs.xtb +++ b/ash/strings/ash_strings_cs.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Zrcadlení na displej <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Odemknutí otiskem prstu</translation> <translation id="1919743966458266018">Zkratka k otevření správce úloh se změnila. Namísto zkratky <ph name="OLD_SHORTCUT" /> používejte zkratku <ph name="NEW_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Když se odhlásíte, vaše relace se vymaže. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatická kliknutí</translation> <translation id="1928739107511554905">K získání aktualizace Chromebook pomocí dotykové obrazovky restartujte s připojenou klávesnicí.</translation> <translation id="1942830294380034169">Tlačítko přetečení</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Zkratka k přepínání režimu vysokého kontrastu se změnila. Namísto zkratky <ph name="OLD_SHORTCUT" /> používejte zkratku <ph name="NEW_SHORTCUT" />.</translation> <translation id="4917385247580444890">Silný</translation> <translation id="4918086044614829423">Přijmout</translation> +<translation id="4924411785043111640">Restartovat a resetovat</translation> <translation id="4961318399572185831">Odesílání obrazovky</translation> +<translation id="5069971504769299223">Správce zařízení může mít možnost sledovat vaši aktivitu.</translation> <translation id="5136175204352732067">Je připojena jiná klávesnice</translation> <translation id="5168181903108465623">Dostupná zařízení Cast</translation> <translation id="5207949376430453814">Zvýraznit textový kurzor</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Do této relace již byli přidáni všichni dostupní uživatelé.</translation> <translation id="5457599981699367932">Použít jako host</translation> <translation id="54609108002486618">Spravovaný</translation> +<translation id="5496819745535887422">Administrátor ve vašem zařízení obnovuje předchozí verzi systému. Po restartu zařízení budou vymazána všechna data.</translation> <translation id="553675580533261935">Ukončení relace</translation> <translation id="5537725057119320332">Odeslat</translation> <translation id="5548285847212963613">S připojení k této síti může pomoci rozšíření <ph name="EXTENSION_NAME" />.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Vyhledávací tlačítko + Shift + K</translation> <translation id="6650933572246256093">Zařízení Bluetooth „<ph name="DEVICE_NAME" />“ žádá o povolení ke spárování. V zařízení prosím zadejte následující přístupový klíč: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Heslo</translation> +<translation id="6687966522050791666">Vybrat jazyk a zadávání</translation> <translation id="6691659475504239918">Hledat+Shift+H</translation> <translation id="6696025732084565524">Odpojitelná klávesnice vyžaduje kritickou aktualizaci</translation> <translation id="6700713906295497288">Tlačítko nabídky IME</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Vícenásobné přihlášení</translation> <translation id="8000066093800657092">Žádná síť</translation> <translation id="8029241286966751120">Je zapnutá lupa celé obrazovky. Vypnete ji opětovným stisknutím kombinace kláves Ctrl+Hledat+M.</translation> +<translation id="8030169304546394654">Odpojeno</translation> <translation id="8054466585765276473">Výpočet doby výdrže baterie.</translation> <translation id="8061464966246066292">Vysoký kontrast</translation> <translation id="8098591350844501178">Ukončit odesílání obrazovky do přijímače <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Rychlé spuštění</translation> <translation id="8995603266996330174">Správce: <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Je k dispozici aktualizace přehrávače Adobe Flash Player</translation> +<translation id="9056839673611986238">V zařízení bude obnovena předchozí verze systému</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofon je používán.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Přihlásit dalšího uživatele...</translation> <translation id="9201131092683066720">Baterie je nabita na <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Ukončování režimu jednotné plochy</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Nastavit tapetu</translation> <translation id="923686485342484400">Odhlásíte se dvojitým stisknutím kombinace kláves Control Shift Q.</translation> <translation id="945522503751344254">Odeslat zpětnou vazbu</translation>
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb index d82608b..7d4145d 100644 --- a/ash/strings/ash_strings_da.xtb +++ b/ash/strings/ash_strings_da.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Spejler mod <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Lås op med fingeraftryk</translation> <translation id="1919743966458266018">Genvejen til at åbne Jobliste er ændret. Brug <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Din session ryddes, når du logger ud. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatiske klik</translation> <translation id="1928739107511554905">Brug touchskærmen til at genstarte din Chromebook med det tilsluttede tastatur for at hente opdateringen.</translation> <translation id="1942830294380034169">Knappen Overflow</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Genvejen til at aktivere eller deaktivere tilstanden Høj kontrast er ændret. Brug <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Stærk</translation> <translation id="4918086044614829423">Accepter</translation> +<translation id="4924411785043111640">Genstart og nulstil</translation> <translation id="4961318399572185831">Cast skærm</translation> +<translation id="5069971504769299223">Enhedsadministratoren kan muligvis overvåge din aktivitet.</translation> <translation id="5136175204352732067">Du har tilsluttet et andet tastatur</translation> <translation id="5168181903108465623">Tilgængelige Cast-enheder</translation> <translation id="5207949376430453814">Fremhæv tekstmarkør</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Alle tilgængelige brugere er allerede blevet føjet til denne session.</translation> <translation id="5457599981699367932">Anvend som gæst</translation> <translation id="54609108002486618">Administreret</translation> +<translation id="5496819745535887422">Din administrator gendanner en tidligere version på din enhed. Alle data slettes, når enheden genstartes.</translation> <translation id="553675580533261935">Afslutter session</translation> <translation id="5537725057119320332">Cast</translation> <translation id="5548285847212963613">Udvidelsen "<ph name="EXTENSION_NAME" />" kan hjælpe med at oprette forbindelse til dette netværk.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">Søgetast+Shift+K</translation> <translation id="6650933572246256093">Bluetooth-enheden "<ph name="DEVICE_NAME" />" vil gerne have parringstilladelse. Angiv din adgangsnøgle på enheden: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Adgangskode</translation> +<translation id="6687966522050791666">Vælg sprog og indtastning</translation> <translation id="6691659475504239918">Søg+Shift+H</translation> <translation id="6696025732084565524">Dit aftagelige tastatur kræver en vigtig opdatering</translation> <translation id="6700713906295497288">IME-menuknap</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">Samlet login fra flere konti</translation> <translation id="8000066093800657092">Intet netværk</translation> <translation id="8029241286966751120">Forstørrelse af fuld skærm er aktiveret. Tryk på Ctrl+Søg+M igen for at deaktivere tilstanden.</translation> +<translation id="8030169304546394654">Afbrudt</translation> <translation id="8054466585765276473">Beregner batteritid.</translation> <translation id="8061464966246066292">Høj kontrast</translation> <translation id="8098591350844501178">Stop cast skærmen til <ph name="RECEIVER_NAME" /></translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">Hurtig start</translation> <translation id="8995603266996330174">Administreres af <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Der er en tilgængelig Adobe Flash Player-opdatering</translation> +<translation id="9056839673611986238">En tidligere version gendannes på enheden</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofonen er i brug.</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">Log ind med en anden bruger...</translation> <translation id="9201131092683066720">Batteriet er <ph name="PERCENTAGE" /> % opladet.</translation> <translation id="9210037371811586452">Lukker tilstanden Kombineret skrivebord</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Vælg baggrund</translation> <translation id="923686485342484400">Tryk på Control+Shift+Q to gange for at logge ud.</translation> <translation id="945522503751344254">Send feedback</translation>
diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb index 0405a86..d1ec2b4 100644 --- a/ash/strings/ash_strings_de.xtb +++ b/ash/strings/ash_strings_de.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Wird auf <ph name="DISPLAY_NAME" /> gespiegelt...</translation> <translation id="1885785240814121742">Mit Fingerabdruck entsperren</translation> <translation id="1919743966458266018">Die Tastenkombination zum Öffnen des Task-Managers hat sich geändert. Bitte drücken Sie <ph name="NEW_SHORTCUT" /> statt <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Wenn Sie sich abmelden, wird Ihre Sitzung gelöscht. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatische Klicks</translation> <translation id="1928739107511554905">Sie können das Update vornehmen, indem Sie den Touchscreen verwenden, um das Chromebook mit angeschlossener Tastatur neu zu starten.</translation> <translation id="1942830294380034169">Überlaufschaltfläche</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Die Tastenkombination zum Deaktivieren des Modus mit hohem Kontrast hat sich geändert. Bitte drücken Sie <ph name="NEW_SHORTCUT" /> statt <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Stark</translation> <translation id="4918086044614829423">Annehmen</translation> +<translation id="4924411785043111640">Neu starten und zurücksetzen</translation> <translation id="4961318399572185831">Bildschirmübertragung</translation> +<translation id="5069971504769299223">Der Geräteadministrator kann Ihre Aktivitäten möglicherweise überwachen.</translation> <translation id="5136175204352732067">Andere Tastatur angeschlossen</translation> <translation id="5168181903108465623">Übertragungsgeräte verfügbar</translation> <translation id="5207949376430453814">Textcursor hervorheben</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Alle verfügbaren Nutzer wurden bereits zur Sitzung hinzugefügt.</translation> <translation id="5457599981699367932">Als Gast nutzen</translation> <translation id="54609108002486618">Verwaltet</translation> +<translation id="5496819745535887422">Ihr Administrator setzt das Gerät zurück. Beim Neustart des Geräts werden alle Daten gelöscht.</translation> <translation id="553675580533261935">Sitzung wird beendet</translation> <translation id="5537725057119320332">Übertragen</translation> <translation id="5548285847212963613">Die Erweiterung "<ph name="EXTENSION_NAME" />" kann die Verbindung mit diesem Netzwerk unterstützen.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Suchtaste + Umschalttaste + K</translation> <translation id="6650933572246256093">Das Bluetooth-Gerät "<ph name="DEVICE_NAME" />" bittet um Erlaubnis für Kopplung. Geben Sie auf dem Gerät folgenden Zugangscode ein: <ph name="PASSKEY" />.</translation> <translation id="6657585470893396449">Passwort</translation> +<translation id="6687966522050791666">Sprache und Eingabe wählen</translation> <translation id="6691659475504239918">Suche + Umschalttaste + H</translation> <translation id="6696025732084565524">Wichtiges Update für Ihre abnehmbare Tastatur</translation> <translation id="6700713906295497288">IME-Menüschaltfläche</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Mehrfachanmeldung</translation> <translation id="8000066093800657092">Nicht verbunden</translation> <translation id="8029241286966751120">Vollbildlupe aktiviert. Drücken Sie Strg + Suchtaste + M, um sie zu deaktivieren.</translation> +<translation id="8030169304546394654">Verbindung getrennt</translation> <translation id="8054466585765276473">Akku-Laufzeit wird berechnet.</translation> <translation id="8061464966246066292">Hoher Kontrast</translation> <translation id="8098591350844501178">Streamen von Bildschirm an <ph name="RECEIVER_NAME" /> beenden</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Schnellstart</translation> <translation id="8995603266996330174">Verwaltet von <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Update für den Adobe Flash Player verfügbar</translation> +<translation id="9056839673611986238">Das Gerät wird zurückgesetzt</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">WLAN: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofon wird verwendet.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Anderen Nutzer anmelden...</translation> <translation id="9201131092683066720">Akku ist zu <ph name="PERCENTAGE" /> % geladen.</translation> <translation id="9210037371811586452">Unified Desktop-Modus wird beendet</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Hintergrund festlegen</translation> <translation id="923686485342484400">Drücken Sie zum Abmelden zweimal Steuerung - Umschalttaste - Q.</translation> <translation id="945522503751344254">Feedback geben</translation>
diff --git a/ash/strings/ash_strings_el.xtb b/ash/strings/ash_strings_el.xtb index 74ed7f4..566d2b2 100644 --- a/ash/strings/ash_strings_el.xtb +++ b/ash/strings/ash_strings_el.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Σύνδεση σε πολλούς λογαριασμούς</translation> <translation id="8000066093800657092">Κανένα δίκτυο</translation> <translation id="8029241286966751120">Ο Μεγεθυντικός φακός πλήρους οθόνης ενεργοποιήθηκε. Πατήστε Ctrl+Αναζήτηση+M ξανά για να τον απενεργοποιήσετε.</translation> +<translation id="8030169304546394654">Σε αποσύνδεση</translation> <translation id="8054466585765276473">Υπολογισμός χρόνου μπαταρίας που απομένει.</translation> <translation id="8061464966246066292">Υψηλή αντίθεση</translation> <translation id="8098591350844501178">Διακοπή μετάδοσης οθόνης σε <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Σύνδεση με άλλον χρήστη...</translation> <translation id="9201131092683066720">Η μπαταρία είναι πλήρης <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Έξοδος από λειτουργία ενοποιημένης επιφάνειας εργασίας</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Ορισμός ταπετσαρίας</translation> <translation id="923686485342484400">Πατήστε Ctrl + Shift + Q δύο φορές για να αποσυνδεθείτε.</translation> <translation id="945522503751344254">Αποστολή σχολίων</translation>
diff --git a/ash/strings/ash_strings_en-GB.xtb b/ash/strings/ash_strings_en-GB.xtb index 908a871..63583fb 100644 --- a/ash/strings/ash_strings_en-GB.xtb +++ b/ash/strings/ash_strings_en-GB.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Multiple sign-in</translation> <translation id="8000066093800657092">No network</translation> <translation id="8029241286966751120">Full-screen Magnifier enabled. Press Ctrl+Search+M again to toggle it off.</translation> +<translation id="8030169304546394654">Disconnected</translation> <translation id="8054466585765276473">Calculating battery time.</translation> <translation id="8061464966246066292">High contrast</translation> <translation id="8098591350844501178">Stop casting screen to <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Sign in another user...</translation> <translation id="9201131092683066720">Battery is <ph name="PERCENTAGE" />% full.</translation> <translation id="9210037371811586452">Exiting unified desktop mode</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Set wallpaper</translation> <translation id="923686485342484400">Press Control Shift Q twice to sign out.</translation> <translation id="945522503751344254">Send feedback</translation>
diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb index 527d159..7db6992 100644 --- a/ash/strings/ash_strings_es-419.xtb +++ b/ash/strings/ash_strings_es-419.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Acceso múltiple</translation> <translation id="8000066093800657092">Sin red</translation> <translation id="8029241286966751120">Se habilitó la lupa de pantalla completa. Presiona Ctrl+Buscar+M de nuevo para desactivarla.</translation> +<translation id="8030169304546394654">Desconectado</translation> <translation id="8054466585765276473">Calculando duración de la batería...</translation> <translation id="8061464966246066292">Contraste alto</translation> <translation id="8098591350844501178">Detener la transmisión de la pantalla a <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Acceder con otro usuario…</translation> <translation id="9201131092683066720">La batería tiene un <ph name="PERCENTAGE" /> % de carga.</translation> <translation id="9210037371811586452">Saliendo del modo de escritorio unificado</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Establecer fondo de pantalla</translation> <translation id="923686485342484400">Presiona Control Mayús Q dos veces para salir.</translation> <translation id="945522503751344254">Enviar comentarios</translation>
diff --git a/ash/strings/ash_strings_es.xtb b/ash/strings/ash_strings_es.xtb index 0bfeef0..fbc6e91c 100644 --- a/ash/strings/ash_strings_es.xtb +++ b/ash/strings/ash_strings_es.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Inicio de sesión múltiple</translation> <translation id="8000066093800657092">Ninguna red</translation> <translation id="8029241286966751120">Se ha habilitado la lupa de pantalla completa. Pulsa Ctrl + tecla de búsqueda + M de nuevo para desactivarla.</translation> +<translation id="8030169304546394654">Desconectado</translation> <translation id="8054466585765276473">Calculando duración de la batería...</translation> <translation id="8061464966246066292">Contraste alto</translation> <translation id="8098591350844501178">Dejar de enviar la pantalla a <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Iniciar sesión de otro usuario...</translation> <translation id="9201131092683066720">La batería está al <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Saliendo del modo de escritorio unificado</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Establecer fondo de pantalla</translation> <translation id="923686485342484400">Pulsa Control Mayús Q dos veces para cerrar sesión.</translation> <translation id="945522503751344254">Enviar comentarios</translation>
diff --git a/ash/strings/ash_strings_et.xtb b/ash/strings/ash_strings_et.xtb index 0221f300..edd77bb 100644 --- a/ash/strings/ash_strings_et.xtb +++ b/ash/strings/ash_strings_et.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Mitmele kontole sisselogimine</translation> <translation id="8000066093800657092">Võrku pole</translation> <translation id="8029241286966751120">Täisekraani luup on lubatud. Vajutage selle väljalülitamiseks klahvikombinatsiooni Ctrl + otsinguklahv + M.</translation> +<translation id="8030169304546394654">Ühendus katkestatud</translation> <translation id="8054466585765276473">Aku tööaja arvutamine.</translation> <translation id="8061464966246066292">Kõrge kontrast</translation> <translation id="8098591350844501178">Peata ekraani ülekandmine vastuvõtjasse <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Logi sisse teine kasutaja ...</translation> <translation id="9201131092683066720">Aku on <ph name="PERCENTAGE" />% täis.</translation> <translation id="9210037371811586452">Ühendatud töölaua režiimist väljumine</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Taustapildi määramine</translation> <translation id="923686485342484400">Väljalogimiseks vajutage kaks korda klahvikombinatsiooni Ctrl + tõstuklahv + Q.</translation> <translation id="945522503751344254">Saada tagasisidet</translation>
diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb index 26b01983..d85eb1c9 100644 --- a/ash/strings/ash_strings_fa.xtb +++ b/ash/strings/ash_strings_fa.xtb
@@ -358,6 +358,7 @@ <translation id="7994370417837006925">ورود چندگانه به سیستم</translation> <translation id="8000066093800657092">بدون شبکه</translation> <translation id="8029241286966751120">«ذرهبین تمامصفحه» فعال شد. برای خاموش کردن آن، Ctrl+Search+M را دوباره فشار دهید.</translation> +<translation id="8030169304546394654">اتصال قطع شد</translation> <translation id="8054466585765276473">درحال محاسبه زمان شارژ باتری.</translation> <translation id="8061464966246066292">کنتراست بالا</translation> <translation id="8098591350844501178">توقف ارسال محتوای صفحه به <ph name="RECEIVER_NAME" /></translation> @@ -419,7 +420,6 @@ <translation id="9194617393863864469">ورود به سیستم حسابی دیگر...</translation> <translation id="9201131092683066720">باتری <ph name="PERCENTAGE" /> درصد پر است.</translation> <translation id="9210037371811586452">خروج از حالت میزکار یکپارچه</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">تنظیم کاغذدیواری</translation> <translation id="923686485342484400">برای خروج از سیستم Control Shift Q را دو بار فشار دهید.</translation> <translation id="945522503751344254">ارسال بازخورد</translation>
diff --git a/ash/strings/ash_strings_fi.xtb b/ash/strings/ash_strings_fi.xtb index 122abc2b..f76d68e 100644 --- a/ash/strings/ash_strings_fi.xtb +++ b/ash/strings/ash_strings_fi.xtb
@@ -365,6 +365,7 @@ <translation id="7994370417837006925">Kirjautuminen useaan tiliin</translation> <translation id="8000066093800657092">Ei verkkoa</translation> <translation id="8029241286966751120">Koko näytön suurennus on käytössä. Poista se käytöstä painamalla uudelleen Ctrl + haku + M.</translation> +<translation id="8030169304546394654">Yhteys katkaistu</translation> <translation id="8054466585765276473">Lasketaan akun kesto.</translation> <translation id="8061464966246066292">Suuri kontrasti</translation> <translation id="8098591350844501178">Lopeta suoratoisto: <ph name="RECEIVER_NAME" /></translation> @@ -427,7 +428,6 @@ <translation id="9194617393863864469">Kirjaa sisään toinen käyttäjä…</translation> <translation id="9201131092683066720">Akussa on virtaa <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Poistutaan yhtenäisen työpöydän tilasta</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Aseta taustakuva</translation> <translation id="923686485342484400">Kirjaudu ulos painamalla Control Shift Q kahdesti.</translation> <translation id="945522503751344254">Lähetä palautetta</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb index 9ec152b..377eb82 100644 --- a/ash/strings/ash_strings_fil.xtb +++ b/ash/strings/ash_strings_fil.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Nagmi-mirror sa <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">I-unlock gamit ang fingerprint</translation> <translation id="1919743966458266018">Napalitan na ang shortcut para sa pagbubukas sa task manager. Mangyaring gamitin ang <ph name="NEW_SHORTCUT" /> sa halip na gamitin ang <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Iki-clear ang iyong session kapag nag-sign out ka. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Mga awtomatikong pag-click</translation> <translation id="1928739107511554905">Para makuha ang update, gamitin ang touchscreen para i-restart ang iyong Chromebook nang nakakabit ang keyboard.</translation> <translation id="1942830294380034169">Button na overflow</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Nagbago ang shortcut upang i-toggle ang High Contrast Mode. Pakigamit ang <ph name="NEW_SHORTCUT" /> sa halip na <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Malakas</translation> <translation id="4918086044614829423">Tanggapin</translation> +<translation id="4924411785043111640">I-restart at i-reset</translation> <translation id="4961318399572185831">I-cast ang screen</translation> +<translation id="5069971504769299223">Maaaring masubaybayan ng manager ng device ang iyong aktibidad.</translation> <translation id="5136175204352732067">Ibang keyboard ang nakakonekta</translation> <translation id="5168181903108465623">I-cast ang mga available na device</translation> <translation id="5207949376430453814">I-highlight ang text caret</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Naidagdag na ang lahat ng available na user sa session na ito.</translation> <translation id="5457599981699367932">Mag-browse bilang Bisita</translation> <translation id="54609108002486618">Pinamamahalaan</translation> +<translation id="5496819745535887422">Niro-roll back ng iyong administrator ang device mo. Made-delete ang lahat ng data kapag nag-restart ang device.</translation> <translation id="553675580533261935">Lumalabas sa session</translation> <translation id="5537725057119320332">I-cast</translation> <translation id="5548285847212963613">Maaaring makatulong na makakonekta sa network na ito ang extension na "<ph name="EXTENSION_NAME" />."</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Maghanap+Shift+K</translation> <translation id="6650933572246256093">Gusto ng bluetooth device na "<ph name="DEVICE_NAME" />" ng pahintulot na magpares. Pakilagay ang passkey na ito sa device na iyon: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Password</translation> +<translation id="6687966522050791666">Pumili ng wika at input</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Nangangailangan ng mahalagang update ang iyong naaalis na keyboard</translation> <translation id="6700713906295497288">Button ng menu ng IME</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Multiple na pag-sign in</translation> <translation id="8000066093800657092">Walang network</translation> <translation id="8029241286966751120">Na-enable ang Fullscreen Magnifier. Pinduting muli ang Ctrl+Search+M para i-off ito.</translation> +<translation id="8030169304546394654">Naalis sa pagkakakonekta</translation> <translation id="8054466585765276473">Kinakalkula ang oras ng baterya.</translation> <translation id="8061464966246066292">Mataas na contrast</translation> <translation id="8098591350844501178">Ihinto ang pag-cast ng screen sa <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Mabilisang paglunsad</translation> <translation id="8995603266996330174">Pinamamahalaan ni <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Available ang update sa Adobe Flash Player</translation> +<translation id="9056839673611986238">Iro-roll back ang device</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Ginagamit ang mikropono.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Mag-sign in ng isa pang user...</translation> <translation id="9201131092683066720">Ang baterya ay <ph name="PERCENTAGE" />% na puno.</translation> <translation id="9210037371811586452">Lumalabas sa unified desktop mode</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Magtakda ng wallpaper</translation> <translation id="923686485342484400">Pindutin ang Control Shift Q nang dalawang beses upang mag-sign out.</translation> <translation id="945522503751344254">Magpadala ng feedback...</translation>
diff --git a/ash/strings/ash_strings_fr.xtb b/ash/strings/ash_strings_fr.xtb index 02e38473..74d75791 100644 --- a/ash/strings/ash_strings_fr.xtb +++ b/ash/strings/ash_strings_fr.xtb
@@ -358,6 +358,7 @@ <translation id="7994370417837006925">Connexion multicompte</translation> <translation id="8000066093800657092">Aucun réseau détecté</translation> <translation id="8029241286966751120">Le mode Loupe plein écran est activé. Appuyez de nouveau sur Ctrl+Recherche+M pour le désactiver.</translation> +<translation id="8030169304546394654">Déconnecté</translation> <translation id="8054466585765276473">Calcul de l'autonomie de la batterie en cours…</translation> <translation id="8061464966246066292">Contraste élevé</translation> <translation id="8098591350844501178">Arrêter de diffuser l'écran sur "<ph name="RECEIVER_NAME" />"</translation> @@ -419,7 +420,6 @@ <translation id="9194617393863864469">Se connecter avec un autre compte utilisateur…</translation> <translation id="9201131092683066720">La batterie est chargée à <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Sortie du mode Bureau unifié</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Définir le fond d'écran</translation> <translation id="923686485342484400">Appuyez deux fois sur Contrôle + Maj + Q pour vous déconnecter.</translation> <translation id="945522503751344254">Envoyer le commentaire</translation>
diff --git a/ash/strings/ash_strings_gu.xtb b/ash/strings/ash_strings_gu.xtb index efd3f483..0f431fc 100644 --- a/ash/strings/ash_strings_gu.xtb +++ b/ash/strings/ash_strings_gu.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> પર પ્રતિબિંબિત થઈ રહ્યું છે</translation> <translation id="1885785240814121742">ફિંગરપ્રિન્ટથી અનલૉક કરો</translation> <translation id="1919743966458266018">Tasks સંચાલક ખોલવાનો શોર્ટકટ બદલાયો છે. કૃપા કરીને <ph name="NEW_SHORTCUT" /> ની બદલે <ph name="OLD_SHORTCUT" /> નો ઉપયોગ કરો.</translation> +<translation id="1923508880661655826">જ્યારે તમે સાઇન આઉટ કરશો, ત્યારે તમારું સત્ર સાફ કરવામાં આવશે. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">આપમેળે ક્લિક્સ</translation> <translation id="1928739107511554905">અપડેટ મેળવવા માટે, તમારી Chromebookને જોડાયેલ કીબોર્ડ સાથે ફરીથી શરૂ કરવા માટે ટચસ્કીનનો ઉપયોગ કરો.</translation> <translation id="1942830294380034169">ઓવરફ્લો બટન</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">હાઇ કોન્ટ્રાસ્ટ મોડને ટૉગલ કરવાનો શૉર્ટકટ બદલાઇ ગયો છો. <ph name="OLD_SHORTCUT" />ને બદલે કૃપા કરીને <ph name="NEW_SHORTCUT" />નો ઉપયોગ કરો.</translation> <translation id="4917385247580444890">સશક્ત</translation> <translation id="4918086044614829423">સ્વીકારો</translation> +<translation id="4924411785043111640">ફરી શરૂ કરો અને રીસેટ કરો</translation> <translation id="4961318399572185831">સ્ક્રીનને કાસ્ટ કરો</translation> +<translation id="5069971504769299223">ઉપકરણ મેનેજર તમારી પ્રવૃત્તિનું નિયમન કરી શકે છે.</translation> <translation id="5136175204352732067">અલગ કીબોર્ડ કનેક્ટ કર્યું</translation> <translation id="5168181903108465623">Cast ઉપકરણો ઉપલબ્ધ</translation> <translation id="5207949376430453814">ટેક્સ્ટ કૅરેટને હાઇલાઇટ કરો</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">બધા ઉપલબ્ધ વપરાશકર્તાઓ પહેલેથી જ આ સત્ર પર ઉમેરવામાં આવ્યા છે.</translation> <translation id="5457599981699367932">અતિથિ તરીકે બ્રાઉઝ કરો</translation> <translation id="54609108002486618">મેનેજ કરેલું</translation> +<translation id="5496819745535887422">તમારા વ્યવસ્થાપક તમારા ઉપકરણને રોલ બૅક કરી રહ્યા છે. ઉપકરણ ફરી શરૂ કરવામાં આવશે, ત્યારે બધો ડેટા ડિલીટ થઈ જશે.</translation> <translation id="553675580533261935">સત્રથી બહાર નીકળી રહ્યાં છે</translation> <translation id="5537725057119320332">કાસ્ટ કરો</translation> <translation id="5548285847212963613">વિસ્તાર "<ph name="EXTENSION_NAME" />" આ નેટવર્ક સાથે કનેક્ટ કરવામાં મદદ કરી શકે છે.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">શોધ+Shift+K</translation> <translation id="6650933572246256093">Bluetooth ઉપકરણ "<ph name="DEVICE_NAME" />" ને જોડી બનાવવા માટે પરવાનગી જોઈએ છે. કૃપા કરીને તે ઉપકરણ પર આ પાસકીને દાખલ કરો: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">પાસવર્ડ</translation> +<translation id="6687966522050791666">ભાષા અને ઇનપુટ પસંદ કરો</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">અલગ પાડી શકાય તેવા તમારા કીબોર્ડ માટે મહત્ત્વપૂર્ણ અપડેટ જરૂરી છે</translation> <translation id="6700713906295497288">IME મેનૂ બટન</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">બહુવિધ સાઇન-ઇન</translation> <translation id="8000066093800657092">નેટવર્ક નથી</translation> <translation id="8029241286966751120">પૂર્ણસ્ક્રીન મૅગ્નિફાયર ચાલુ કર્યું. ટૉગલ બંધ કરવા માટે ફરીથી Ctrl+Search+M દબાવો.</translation> +<translation id="8030169304546394654">ડિસ્કનેક્ટેડ</translation> <translation id="8054466585765276473">બેટરી સમયની ગણના કરે છે.</translation> <translation id="8061464966246066292">ઉચ્ચ કોન્ટ્રાસ્ટ</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> પર સ્ક્રીન કાસ્ટ કરવાનું રોકો</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">ઝડપી લૉન્ચ</translation> <translation id="8995603266996330174"><ph name="DOMAIN" /> દ્વારા સંચાલિત</translation> <translation id="9029474291399787231">Adobe Flash Player અપડેટ ઉપલબ્ધ છે</translation> +<translation id="9056839673611986238">ઉપકરણ રોલ બૅક કરવામાં આવશે</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">માઇકોફોન ઉપયોગમાં છે.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">અન્ય વપરાશકર્તા સાઇન ઇન કરો...</translation> <translation id="9201131092683066720">બેટરી <ph name="PERCENTAGE" /> % પૂર્ણ છે.</translation> <translation id="9210037371811586452">એકીકૃત ડેસ્કટૉપ મોડથી બહાર નીકળે છે</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">વૉલપેપર સેટ કરો</translation> <translation id="923686485342484400">સાઇન આઉટ કરવા માટે બે વાર Control Shift Q દબાવો.</translation> <translation id="945522503751344254">પ્રતિસાદ મોકલો</translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb index 9577b9a..935a9a8 100644 --- a/ash/strings/ash_strings_hi.xtb +++ b/ash/strings/ash_strings_hi.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> पर मिरर कर रहा है</translation> <translation id="1885785240814121742">फ़िंगरप्रिंट से अनलॉक करें</translation> <translation id="1919743966458266018">काम के प्रबंधक को खोलने का शॉर्टकट बदल गया है. कृपया <ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation> +<translation id="1923508880661655826">जब आप साइन आउट करेंगे तो आपका सत्र हटा दिया जाएगा. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">स्वत: क्लिक</translation> <translation id="1928739107511554905">अपडेट पाने के लिए, अटैच किए गए कीबोर्ड से अपने Chromebook को रीस्टार्ट करने के लिए टचस्क्रीन का इस्तेमाल करें.</translation> <translation id="1942830294380034169">ओवरफ़्लो बटन</translation> @@ -207,7 +208,9 @@ <translation id="4905614135390995787">उच्च कंट्रास्ट मोड को टॉगल करने का शॉर्टकट बदल गया है. कृपया<ph name="OLD_SHORTCUT" /> के बजाय <ph name="NEW_SHORTCUT" /> का उपयोग करें.</translation> <translation id="4917385247580444890">सशक्त</translation> <translation id="4918086044614829423">स्वीकार करें</translation> +<translation id="4924411785043111640">रीस्टार्ट करें और रीसेट करें</translation> <translation id="4961318399572185831">स्क्रीन कास्ट करें</translation> +<translation id="5069971504769299223">डिवाइस का एडमिन आपकी गतिविधि मॉनीटर कर सकता है.</translation> <translation id="5136175204352732067">अलग कीबोर्ड कनेक्ट किया गया</translation> <translation id="5168181903108465623">कास्ट डिवाइस उपलब्ध हैं</translation> <translation id="5207949376430453814">लेख कैरेट हाइलाइट करें</translation> @@ -221,6 +224,7 @@ <translation id="544691375626129091">सभी उपलब्ध उपयोगकर्ता पहले से इस सत्र में जोड़ दिए गए हैं.</translation> <translation id="5457599981699367932">अतिथि के रूप में ब्राउज़ करें</translation> <translation id="54609108002486618">प्रबंधित</translation> +<translation id="5496819745535887422">आपका एडमिन आपके डिवाइस को बहाल कर रहा है. डिवाइस रीस्टार्ट होने पर उसका सारा डेटा मिटा दिया जाएगा.</translation> <translation id="553675580533261935">सत्र से बाहर निकलें</translation> <translation id="5537725057119320332">कास्ट करें</translation> <translation id="5548285847212963613">"<ph name="EXTENSION_NAME" />" एक्सटेंशन इस नेटवर्क से कनेक्ट करने में सहायता कर सकता है.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">Search+Shift+K</translation> <translation id="6650933572246256093">ब्लूटूथ डिवाइस "<ph name="DEVICE_NAME" />" युग्मित करने की अनुमति चाहता है. कृपया डिवाइस पर यह पासकुंजी डालें: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">पासवर्ड</translation> +<translation id="6687966522050791666">भाषा और इनपुट चुनें</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">आपके अलग किए जाने लायक कीबोर्ड में एक महत्वपूर्ण अपडेट ज़रूरी है</translation> <translation id="6700713906295497288">IME मेनू बटन</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">एकाधिक प्रवेश</translation> <translation id="8000066093800657092">नेटवर्क नहीं है</translation> <translation id="8029241286966751120">फ़ुलस्क्रीन पर सामग्री को बड़ा दिखाने की सुविधा चालू है. उसे बंद पर टॉगल करने के लिए Ctrl+Search+M फिर से दबाएं.</translation> +<translation id="8030169304546394654">डिसकनेक्ट किया गया</translation> <translation id="8054466585765276473">बैटरी समय की गणना की जा रही है.</translation> <translation id="8061464966246066292">उच्च स्क्रीन की रोशनी</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> को स्क्रीन कास्ट करना बंद करें</translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">झटपट लॉन्च</translation> <translation id="8995603266996330174"><ph name="DOMAIN" /> द्वारा प्रबंधित</translation> <translation id="9029474291399787231">Adobe Flash Player का अपडेट मौजूद है</translation> +<translation id="9056839673611986238">डिवाइस बहाल कर दिया जाएगा</translation> <translation id="9074739597929991885">ब्लूटूथ</translation> <translation id="9079731690316798640">वाई-फ़ाई: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">माइक्रोफ़ोन का उपयोग हो रहा है.</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">किसी अन्य उपयोगकर्ता में रूप में साइन इन करें...</translation> <translation id="9201131092683066720">बैटरी <ph name="PERCENTAGE" />% भरी हुई है.</translation> <translation id="9210037371811586452">संयुक्त डेस्कटॉप मोड से बाहर निकाला जा रहा है</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">वॉलपेपर सेट करें</translation> <translation id="923686485342484400">साइन आउट करने के लिए दो बार Control Shift Q दबाएं.</translation> <translation id="945522503751344254">सुझाव भेजें</translation>
diff --git a/ash/strings/ash_strings_hr.xtb b/ash/strings/ash_strings_hr.xtb index 3b89b29..aec9fbf 100644 --- a/ash/strings/ash_strings_hr.xtb +++ b/ash/strings/ash_strings_hr.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Zrcaljenje na zaslon <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Otključavanje otiskom prsta</translation> <translation id="1919743966458266018">Promijenio se prečac za otvaranje upravitelja zadataka. Upotrijebite <ph name="NEW_SHORTCUT" /> umjesto <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Vaša će se sesija izbrisati kada se odjavite. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatski klikovi</translation> <translation id="1928739107511554905">Da biste preuzeli ažuriranje, ponovo pokrenite Chromebook pomoću dodirnog zaslona dok je tipkovnica priključena.</translation> <translation id="1942830294380034169">Gumb dodatnog izbornika</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Promijenio se prečac za uključivanje i isključivanje načina visokog kontrasta. Upotrebljavajte <ph name="NEW_SHORTCUT" /> umjesto <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Jak</translation> <translation id="4918086044614829423">Prihvati</translation> +<translation id="4924411785043111640">Ponovo pokreni i vrati na prethodno</translation> <translation id="4961318399572185831">Emitiranje zaslona</translation> +<translation id="5069971504769299223">Upravitelj uređaja možda će moći nadzirati vašu aktivnost.</translation> <translation id="5136175204352732067">Povezana je neka druga tipkovnica</translation> <translation id="5168181903108465623">Dostupni su uređaji za emitiranje</translation> <translation id="5207949376430453814">Istakni znak za umetanje teksta</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Svi dostupni korisnici već su dodani ovoj sesiji.</translation> <translation id="5457599981699367932">Pregledavaj kao gost</translation> <translation id="54609108002486618">Upravljani</translation> +<translation id="5496819745535887422">Vaš administrator vraća uređaj na prethodnu verziju sustava. Svi će se podaci izbrisati kada se uređaj ponovo pokrene.</translation> <translation id="553675580533261935">Napuštanje sesije</translation> <translation id="5537725057119320332">Emitiraj</translation> <translation id="5548285847212963613">Proširenje "<ph name="EXTENSION_NAME" />" može pomoći pri povezivanju s tom mrežom.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Pretraži + Shift + K</translation> <translation id="6650933572246256093">Bluetooth uređaj "<ph name="DEVICE_NAME" />" traži dopuštenje za uparivanje. Unesite ovaj pristupni ključ na tom uređaju: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Zaporka</translation> +<translation id="6687966522050791666">Odaberite jezik i unos</translation> <translation id="6691659475504239918">Search + Shift + H</translation> <translation id="6696025732084565524">Potrebno je preuzeti važno ažuriranje za vašu odvojivu tipkovnicu</translation> <translation id="6700713906295497288">Gumb izbornika IME-a</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Višestruka prijava</translation> <translation id="8000066093800657092">Nema mreže</translation> <translation id="8029241286966751120">Omogućeno je povećalo za cijeli zaslon. Ponovo pritisnite Ctrl + Search + M da biste ga isključili.</translation> +<translation id="8030169304546394654">Prekinuta veza</translation> <translation id="8054466585765276473">Izračun vremena baterije.</translation> <translation id="8061464966246066292">Visoki kontrast</translation> <translation id="8098591350844501178">Zaustavi emitiranje zaslona na prijamniku <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Brzo pokretanje</translation> <translation id="8995603266996330174">Upravlja <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Dostupno je ažuriranje za Adobe Flash Player</translation> +<translation id="9056839673611986238">Uređaj će se vratiti na prethodnu verziju sustava</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Upotrebljava se mikrofon.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Prijavljivanje drugog korisnika...</translation> <translation id="9201131092683066720">Baterija je <ph name="PERCENTAGE" />% puna.</translation> <translation id="9210037371811586452">Izlaz iz načina jedinstvene radne površine</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Postavi pozadinu</translation> <translation id="923686485342484400">Pritisnite Ctrl, Shift i Q dvaput da biste se odjavili.</translation> <translation id="945522503751344254">Slanje povratnih informacija</translation>
diff --git a/ash/strings/ash_strings_hu.xtb b/ash/strings/ash_strings_hu.xtb index fd33bbe..d4cf19792 100644 --- a/ash/strings/ash_strings_hu.xtb +++ b/ash/strings/ash_strings_hu.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Többfiókos bejelentkezés</translation> <translation id="8000066093800657092">Nincs hálózat</translation> <translation id="8029241286966751120">Teljes képernyős nagyító bekapcsolva. A kikapcsoláshoz nyomja le ismét a Ctrl+Keresés+M billentyűparancsot.</translation> +<translation id="8030169304546394654">Nincs kapcsolat</translation> <translation id="8054466585765276473">Akkumulátor-időtartam kiszámítása.</translation> <translation id="8061464966246066292">Kontrasztos megjelenítés</translation> <translation id="8098591350844501178">A képernyő „<ph name="RECEIVER_NAME" />” eszközre történő átküldésének leállítása</translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Bejelentkezés másik felhasználóként…</translation> <translation id="9201131092683066720">Az akkumulátor töltöttsége: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Kilépés az Egységes asztali módból</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Háttérkép beállítása</translation> <translation id="923686485342484400">Nyomja meg a Ctrl Shift Q billentyűkombinációt kétszer a kijelentkezéshez.</translation> <translation id="945522503751344254">Visszajelzés küldése</translation>
diff --git a/ash/strings/ash_strings_id.xtb b/ash/strings/ash_strings_id.xtb index 13e8dfb..18d8fe5 100644 --- a/ash/strings/ash_strings_id.xtb +++ b/ash/strings/ash_strings_id.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Fitur masuk banyak akun</translation> <translation id="8000066093800657092">Tidak ada jaringan</translation> <translation id="8029241286966751120">Kaca Pembesar Layar Penuh diaktifkan. Tekan Ctrl+Search+M lagi untuk menonaktifkannya.</translation> +<translation id="8030169304546394654">Diputuskan</translation> <translation id="8054466585765276473">Menghitung masa pakai baterai.</translation> <translation id="8061464966246066292">Kontras tinggi</translation> <translation id="8098591350844501178">Hentikan casting layar ke <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Masukkan pengguna lain...</translation> <translation id="9201131092683066720">Baterai terisi <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Keluar dari mode desktop terpadu</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Setel wallpaper</translation> <translation id="923686485342484400">Tekan Control Shift Q dua kali untuk keluar.</translation> <translation id="945522503751344254">Kirim masukan</translation>
diff --git a/ash/strings/ash_strings_it.xtb b/ash/strings/ash_strings_it.xtb index ac8fa35..d570ff06 100644 --- a/ash/strings/ash_strings_it.xtb +++ b/ash/strings/ash_strings_it.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Accesso simultaneo</translation> <translation id="8000066093800657092">Nessuna rete</translation> <translation id="8029241286966751120">Lente d'ingrandimento a schermo intero attivata. Premi di nuovo CTRL + tasto per la ricerca + M per disattivarla.</translation> +<translation id="8030169304546394654">Disconnessa</translation> <translation id="8054466585765276473">Calcolo della durata della batteria.</translation> <translation id="8061464966246066292">Contrasto elevato</translation> <translation id="8098591350844501178">Interrompi la trasmissione dello schermo su <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Accedi con un altro account utente...</translation> <translation id="9201131092683066720">Percentuale di caricamento della batteria: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Uscita dalla modalità Desktop unificato</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Imposta sfondo</translation> <translation id="923686485342484400">Premi due volte Control Maiusc Q per uscire.</translation> <translation id="945522503751344254">Invia feedback</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb index fe07df9c..467d78ee0 100644 --- a/ash/strings/ash_strings_iw.xtb +++ b/ash/strings/ash_strings_iw.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">משקף אל <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">ביטול נעילה עם טביעת אצבע</translation> <translation id="1919743966458266018">מקש הקיצור לפתיחת מנהל המשימות השתנה. השתמש ב-<ph name="NEW_SHORTCUT" /> במקום ב-<ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">הפעילות שלך תימחק אחרי היציאה. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">לחיצות אוטומטיות</translation> <translation id="1928739107511554905">כדי להתקין את העדכון, יש להשתמש במסך המגע ולהפעיל מחדש את ה-Chromebook כשהמקלדת מחוברת.</translation> <translation id="1942830294380034169">לחצן גלישה</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">מקש הקיצור להפעלה או כיבוי של מצב ניגודיות גבוהה השתנה. השתמש ב-<ph name="NEW_SHORTCUT" /> במקום ב-<ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">חזק</translation> <translation id="4918086044614829423">אשר</translation> +<translation id="4924411785043111640">הפעלה מחדש ואתחול</translation> <translation id="4961318399572185831">העברת מסך</translation> +<translation id="5069971504769299223">מנהל המכשיר עשוי לעקוב אחרי הפעילות שלך.</translation> <translation id="5136175204352732067">חוברה מקלדת אחרת</translation> <translation id="5168181903108465623">מכשירי העברה זמינים</translation> <translation id="5207949376430453814">הדגשה של סמן הטקסט</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">כל המשתמשים הזמינים כבר נוספו לפעילות זו באתר.</translation> <translation id="5457599981699367932">גלוש כאורח</translation> <translation id="54609108002486618">מנוהל</translation> +<translation id="5496819745535887422">מנהל המערכת מחזיר את המכשיר למצב קודם. כל הנתונים יימחקו אחרי שהמכשיר יופעל מחדש.</translation> <translation id="553675580533261935">יציאה מההפעלה</translation> <translation id="5537725057119320332">העבר</translation> <translation id="5548285847212963613">התוסף "<ph name="EXTENSION_NAME" />" יכול לעזור בהתחברות אל הרשת הזו.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">חיפוש+Shift+K</translation> <translation id="6650933572246256093">מכשיר ה-Bluetooth "<ph name="DEVICE_NAME" />" מבקש הרשאה לביצוע התאמה. הזן את מפתח הסיסמה הבא במכשיר הזה: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">סיסמה</translation> +<translation id="6687966522050791666">בחירת שפה וקלט</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">המקלדת הניתנת לניתוק זקוקה לעדכון קריטי</translation> <translation id="6700713906295497288">לחצן תפריט IME</translation> @@ -359,6 +364,7 @@ <translation id="7994370417837006925">כניסה עם מספר חשבונות</translation> <translation id="8000066093800657092">אין רשת</translation> <translation id="8029241286966751120">הזכוכית המגדלת במסך מלא הופעלה. כדי לכבות אותה יש להקיש שוב על Ctrl+Search+M.</translation> +<translation id="8030169304546394654">מנותק</translation> <translation id="8054466585765276473">מחשב זמן סוללה</translation> <translation id="8061464966246066292">ניגודיות גבוהה</translation> <translation id="8098591350844501178">הפסק להעביר את המסך אל <ph name="RECEIVER_NAME" /></translation> @@ -374,7 +380,7 @@ <translation id="8351131234907093545">יצירת הערה</translation> <translation id="8392451568018454956">תפריט אפשרויות עבור <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8406981827175133772">זכוכית מגדלת במסך מלא</translation> -<translation id="8427213022735114808">הכתבה שולחת הקלטה של הקול שלך אל Google כדי לאפשר הקלדה קולית בכל תיבת טקסט.</translation> +<translation id="8427213022735114808">הכתבה שולחת הקלטה של הקול שלך אל Google כדי לאפשר הקלדה קולית בתיבת טקסט כלשהי.</translation> <translation id="8428213095426709021">הגדרות</translation> <translation id="8431190899827883166">הצגת הקשות</translation> <translation id="8433186206711564395">הגדרות רשת</translation> @@ -408,6 +414,7 @@ <translation id="8984179138335769204">פתיחה מהירה</translation> <translation id="8995603266996330174">מנוהל על ידי <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">יש עדכון בשביל Adobe Flash Player</translation> +<translation id="9056839673611986238">המכשיר יוחזר למצב קודם</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">המיקרופון נמצא בשימוש.</translation> @@ -422,7 +429,6 @@ <translation id="9194617393863864469">הוסף משתמש אחר...</translation> <translation id="9201131092683066720">הסוללה טעונה ברמה של <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">יציאה ממצב Unified Desktop</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">הגדר טפט</translation> <translation id="923686485342484400">הקש פעמיים על Control Shift Q כדי לצאת.</translation> <translation id="945522503751344254"> שליחת משוב</translation>
diff --git a/ash/strings/ash_strings_ja.xtb b/ash/strings/ash_strings_ja.xtb index 16051a2..384f3a4 100644 --- a/ash/strings/ash_strings_ja.xtb +++ b/ash/strings/ash_strings_ja.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">マルチ ログイン</translation> <translation id="8000066093800657092">ネットワーク接続なし</translation> <translation id="8029241286966751120">拡大鏡(全画面)がオンになっています。オフにするには Ctrl+検索+M キーをもう一度押します。</translation> +<translation id="8030169304546394654">切断済み</translation> <translation id="8054466585765276473">バッテリーの残り時間を計算しています。</translation> <translation id="8061464966246066292">ハイコントラスト</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> への画面のキャストを停止する</translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">別のユーザーとしてログイン...</translation> <translation id="9201131092683066720">バッテリー残量: <ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">デスクトップ統合モードの終了中</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">壁紙を設定</translation> <translation id="923686485342484400">ログアウトするには、Ctrl Shift Q を 2 回押します。</translation> <translation id="945522503751344254">フィードバックを送信</translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb index de12f69..791df87 100644 --- a/ash/strings/ash_strings_kn.xtb +++ b/ash/strings/ash_strings_kn.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> ಗೆ ಪ್ರತಿಬಿಂಬಿಸುತ್ತಿದೆ</translation> <translation id="1885785240814121742">ಫಿಂಗರ್ಪ್ರಿಂಟ್ ಮೂಲಕ ಅನ್ಲಾಕ್ ಮಾಡಿ</translation> <translation id="1919743966458266018">ಕಾರ್ಯ ನಿರ್ವಾಹಕರನ್ನು ತೆರೆಯಲು ಶಾರ್ಟ್ಕಟ್ ಬದಲಾಗಿದೆ. ದಯವಿಟ್ಟು <ph name="OLD_SHORTCUT" /> ಬದಲಿಗೆ <ph name="NEW_SHORTCUT" /> ಬಳಸಿ.</translation> +<translation id="1923508880661655826">ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡುವಾಗ ನಿಮ್ಮ ಸೆಶನ್ ಅನ್ನು ತೆರವುಗೊಳಿಸಲಾಗುತ್ತದೆ. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">ಸ್ವಯಂಚಾಲಿತ ಕ್ಲಿಕ್ಗಳು</translation> <translation id="1928739107511554905">ಅಪ್ಡೇಟ್ ಅನ್ನು ಪಡೆಯಲು, ಕೀಬೋರ್ಡ್ ಲಗತ್ತಿನೊಂದಿಗೆ ನಿಮ್ಮ Chromebook ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಟಚ್ಸ್ಕ್ರೀನ್ ಅನ್ನು ಬಳಸಿ.</translation> <translation id="1942830294380034169">ಓವರ್ಫ್ಲೋ ಬಟನ್</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">ಹೆಚ್ಚು ಕಾಂಟ್ರಾಸ್ಟ್ ಮೋಡ್ ಅನ್ನು ಟಾಗಲ್ ಮಾಡಲು ಶಾರ್ಟ್ಕಟ್ ಬದಲಾಗಿದೆ. <ph name="OLD_SHORTCUT" /> ಬದಲಿಗೆ <ph name="NEW_SHORTCUT" /> ಅನ್ನು ಬಳಸಿ.</translation> <translation id="4917385247580444890">ಪ್ರಬಲ</translation> <translation id="4918086044614829423">ಸಮ್ಮತಿಸು</translation> +<translation id="4924411785043111640">ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಮರುಹೊಂದಿಸಿ</translation> <translation id="4961318399572185831">ಪರದೆಯನ್ನು ಬಿತ್ತರಿಸಿ</translation> +<translation id="5069971504769299223">ಸಾಧನ ನಿರ್ವಾಹಕಕ್ಕೆ ನಿಮ್ಮ ಚಟುವಟಿಕೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು ಸಾಧ್ಯವಾಗಬಹುದು.</translation> <translation id="5136175204352732067">ವಿವಿಧ ಕೀಬೋರ್ಡ್ ಸಂಪರ್ಕಗೊಂಡಿದೆ</translation> <translation id="5168181903108465623">ಬಿತ್ತರಿಸುವಿಕೆಯ ಸಾಧನಗಳು ಲಭ್ಯವಿದೆ</translation> <translation id="5207949376430453814">ಪಠ್ಯದಲ್ಲಿ ಕೆರೆಟ್ ಅನ್ನು ಎದ್ದುಗಾಣಿಸಿ</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">ಈ ಸೆಷನ್ಗೆ ಎಲ್ಲಾ ಲಭ್ಯವಿರುವ ಬಳಕೆದಾರರನ್ನು ಈಗಾಗಲೇ ಸೇರಿಸಲಾಗಿದೆ.</translation> <translation id="5457599981699367932">ಅತಿಥಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡಿ</translation> <translation id="54609108002486618">ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> +<translation id="5496819745535887422">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮುಂಚಿನ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗಿಸುತ್ತಿದ್ದಾರೆ. ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿದಾಗ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="553675580533261935">ಸೆಷನ್ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="5537725057119320332">ಪಾತ್ರವರ್ಗ</translation> <translation id="5548285847212963613">ಈ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಲು "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯು ಸಹಾಯ ಮಾಡಬಹುದು.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">ಹುಡುಕಾಟ+Shift+K</translation> <translation id="6650933572246256093">ಬ್ಲೂಟೂತ್ ಸಾಧನವು "<ph name="DEVICE_NAME" />" ಜೋಡಣೆಗಾಗಿ ಅನುಮತಿಯನ್ನು ಬಯಸುತ್ತದೆ. ಆ ಸಾಧನದಲ್ಲಿ ಈ ಪಾಸ್ಕೀಲಿಯನ್ನು ನಮೂದಿಸಿ: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">ಪಾಸ್ವರ್ಡ್</translation> +<translation id="6687966522050791666">ಭಾಷೆ ಮತ್ತು ಇನ್ಪುಟ್ ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="6691659475504239918">ಹುಡುಕಾಟ+Shift+H</translation> <translation id="6696025732084565524">ನಿಮ್ಮ ಪ್ರತ್ಯೇಕಿಸಬಹುದಾದ ಕೀಬೋರ್ಡ್ಗೆ ವಿಷಮಸ್ಥಿತಿ ಅಪ್ಡೇಟ್ನ ಅಗತ್ಯವಿದೆ</translation> <translation id="6700713906295497288">IME ಮೆನು ಬಟನ್</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">ಬಹು ಸೈನ್-ಇನ್</translation> <translation id="8000066093800657092">ನೆಟ್ವರ್ಕ್ ಇಲ್ಲ</translation> <translation id="8029241286966751120">ಫುಲ್ಸ್ಕ್ರೀನ್ ವರ್ಧಕವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ. ಅದನ್ನು ಟಾಗಲ್ ಆಫ್ ಮಾಡಲು Ctrl+Search+M ಅನ್ನು ಒತ್ತಿರಿ.</translation> +<translation id="8030169304546394654">ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="8054466585765276473">ಬ್ಯಾಟರಿ ಸಮಯವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲಾಗುತ್ತಿದೆ.</translation> <translation id="8061464966246066292">ಉನ್ನತ ಕಾಂಟ್ರಾಸ್ಟ್</translation> <translation id="8098591350844501178">ಪರದೆಯನ್ನು <ph name="RECEIVER_NAME" /> ಗೆ ಬಿತ್ತರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">ಶೀಘ್ರ ಬಿಡುಗಡೆ</translation> <translation id="8995603266996330174"><ph name="DOMAIN" /> ನಿಂದ ನಿರ್ವಹಿಸಲಾಗಿದೆ</translation> <translation id="9029474291399787231">Adobe Flash Player ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ</translation> +<translation id="9056839673611986238">ಸಾಧನವನ್ನು ಮುಂಚಿನ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ</translation> <translation id="9074739597929991885">ಬ್ಲೂಟೂತ್</translation> <translation id="9079731690316798640">ವೈ-ಫೈ: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">ಮೈಕ್ರೊಫೋನ್ ಬಳಕೆಯಲ್ಲಿದೆ.</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">ಮತ್ತೊಂದು ಬಳಕೆದಾರರಾಗಿ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation> <translation id="9201131092683066720">ಬ್ಯಾಟರಿ <ph name="PERCENTAGE" />% ಪೂರ್ಣವಾಗಿದೆ.</translation> <translation id="9210037371811586452">ಏಕೀಕೃತ ಡೆಸ್ಕ್ಟಾಪ್ ಮೋಡ್ನಿಂದ ನಿರ್ಗಮಿಸಲಾಗುತ್ತಿದೆ</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">ವಾಲ್ಪೇಪರ್ ಹೊಂದಿಸಿ</translation> <translation id="923686485342484400">ಸೈನ್ ಔಟ್ ಮಾಡಲು Control Shift Q ಅನ್ನು ಎರಡುಬಾರಿ ಒತ್ತಿರಿ.</translation> <translation id="945522503751344254">ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಕಳುಹಿಸಿ</translation>
diff --git a/ash/strings/ash_strings_ko.xtb b/ash/strings/ash_strings_ko.xtb index 4494e24b..5ddd3c9 100644 --- a/ash/strings/ash_strings_ko.xtb +++ b/ash/strings/ash_strings_ko.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">멀티 로그인</translation> <translation id="8000066093800657092">네트워크 없음</translation> <translation id="8029241286966751120">전체화면 돋보기가 사용 설정되었습니다. 사용 중지하려면 다시 Ctrl+Search+M을 누르세요.</translation> +<translation id="8030169304546394654">연결 끊김</translation> <translation id="8054466585765276473">배터리 시간 계산 중</translation> <translation id="8061464966246066292">고대비</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" />에 화면 전송 중지</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">다른 사용자로 로그인...</translation> <translation id="9201131092683066720">배터리가 <ph name="PERCENTAGE" />% 남았습니다.</translation> <translation id="9210037371811586452">통합 바탕화면 모드 종료 중</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">배경화면 설정</translation> <translation id="923686485342484400">로그아웃하려면 Ctrl+Shift+Q를 두 번 누릅니다.</translation> <translation id="945522503751344254">의견 보내기</translation>
diff --git a/ash/strings/ash_strings_lt.xtb b/ash/strings/ash_strings_lt.xtb index 3f3b0cb4..4e73211 100644 --- a/ash/strings/ash_strings_lt.xtb +++ b/ash/strings/ash_strings_lt.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Dubliuojama <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Atrakinimas kontroliniu kodu</translation> <translation id="1919743966458266018">Pakeistas užduočių tvarkytuvės atidarymo spartusis klavišas. Naudokite <ph name="NEW_SHORTCUT" /> vietoje <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Sesijos duomenys bus išvalyti, kai atsijungsite. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatiniai paspaudimai</translation> <translation id="1928739107511554905">Kad gautumėte naujinį, naudodami jutiklinį ekraną iš naujo paleiskite „Chromebook“ su prijungta klaviatūra.</translation> <translation id="1942830294380034169">Perpildymo mygtukas</translation> @@ -207,7 +208,9 @@ <translation id="4905614135390995787">Spartusis klavišas, kurį naudojant perjungiamas didelio kontrasto režimas, pakeistas. Naudokite <ph name="NEW_SHORTCUT" /> vietoj <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Stiprus</translation> <translation id="4918086044614829423">Priimti</translation> +<translation id="4924411785043111640">Paleisti ir nustatyti iš naujo</translation> <translation id="4961318399572185831">Perduoti ekraną</translation> +<translation id="5069971504769299223">Įrenginio valdytojas gali stebėti jūsų veiklą.</translation> <translation id="5136175204352732067">Prijungta kita klaviatūra</translation> <translation id="5168181903108465623">Pasiekiami perdavimo įrenginiai</translation> <translation id="5207949376430453814">Paryškinti teksto žymeklį</translation> @@ -221,6 +224,7 @@ <translation id="544691375626129091">Prie šio seanso jau pridėti visi galimi naudotojai.</translation> <translation id="5457599981699367932">Naršyti kaip svečiui</translation> <translation id="54609108002486618">Valdoma</translation> +<translation id="5496819745535887422">Administratorius atkuria įrenginį. Visi duomenys bus ištrinti, kai įrenginys bus paleistas iš naujo.</translation> <translation id="553675580533261935">Išeinama iš sesijos</translation> <translation id="5537725057119320332">Perduoti</translation> <translation id="5548285847212963613">Galite prisijungti prie šio tinklo naudodami plėtinį „<ph name="EXTENSION_NAME" />“.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">Paieškos klavišas + „Shift“ + K</translation> <translation id="6650933572246256093">„Bluetooth“ įrenginys „<ph name="DEVICE_NAME" />“ prašo leidimo susieti. Šiame įrenginyje įveskite šį slaptąjį raktą: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Slaptažodis</translation> +<translation id="6687966522050791666">Pasirinkite kalbą ir įvestį</translation> <translation id="6691659475504239918">Paieškos klavišas + „Shift“ + H</translation> <translation id="6696025732084565524">Atjungiamai klaviatūrai reikia pritaikyti kritinį naujinį</translation> <translation id="6700713906295497288">IME meniu mygtukas</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">Kelios paskyros</translation> <translation id="8000066093800657092">Tinklo nėra</translation> <translation id="8029241286966751120">Didelio kontrasto režimas įgalintas. Dar kartą paspauskite „Ctrl“ + paieškos klavišą + M, kad išjungtumėte režimą.</translation> +<translation id="8030169304546394654">Atjungta</translation> <translation id="8054466585765276473">Apskaičiuojamas laikas, likęs iki akumuliatoriaus išsikrovimo.</translation> <translation id="8061464966246066292">Didelis kontrastas</translation> <translation id="8098591350844501178">Sustabdyti ekrano perdavimą į: <ph name="RECEIVER_NAME" /></translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">Greitasis paleidimas</translation> <translation id="8995603266996330174">Valdoma „<ph name="DOMAIN" />“</translation> <translation id="9029474291399787231">Pasiekiamas „Adobe Flash Player“ naujinys</translation> +<translation id="9056839673611986238">Įrenginys bus atkurtas</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">„Wi-Fi“: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofonas naudojamas.</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">Prisijungti kaip kitas naudotojas...</translation> <translation id="9201131092683066720">Likusi akumuliatoriaus įkrova: <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Išjungiamas sujungiamojo darbalaukio režimas</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Nustatyti ekrano foną</translation> <translation id="923686485342484400">Jei norite atsijungti, du kartus paspauskite „Control“ + „Shift“ + Q.</translation> <translation id="945522503751344254">Siųsti atsiliepimą</translation>
diff --git a/ash/strings/ash_strings_lv.xtb b/ash/strings/ash_strings_lv.xtb index 384f324..fab9c0a 100644 --- a/ash/strings/ash_strings_lv.xtb +++ b/ash/strings/ash_strings_lv.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Spoguļo šeit: <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Atbloķēšana ar pirksta nospiedumu</translation> <translation id="1919743966458266018">Tika mainīti īsinājumtaustiņi, ar kuriem var atvērt uzdevumu pārvaldnieku. Lūdzu, turpmāk izmantojiet <ph name="NEW_SHORTCUT" />, nevis <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Pēc izrakstīšanās jūsu sesija tiks notīrīta. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automātiskie klikšķi</translation> <translation id="1928739107511554905">Lai iegūtu atjauninājumu, izmantojiet skārienekrānu, lai ar pievienoto tastatūru restartētu Chromebook datoru.</translation> <translation id="1942830294380034169">Pārpildes poga</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Īsinājumtaustiņi, ar kuriem pārslēgt augsta kontrasta režīmu, ir mainījušies. Lūdzu, izmantojiet <ph name="NEW_SHORTCUT" />, nevis <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Spēcīgs</translation> <translation id="4918086044614829423">Pieņemt</translation> +<translation id="4924411785043111640">Restartēt un atiestatīt</translation> <translation id="4961318399572185831">Ekrāna apraide</translation> +<translation id="5069971504769299223">Jūsu darbības var uzraudzīt ierīces pārvaldnieks.</translation> <translation id="5136175204352732067">Ir pievienota cita tastatūra</translation> <translation id="5168181903108465623">Pieejamas apraides ierīces</translation> <translation id="5207949376430453814">Izcelt teksta ievietošanas punktu</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Visi pieejamie lietotāji jau ir pievienoti šai sesijai.</translation> <translation id="5457599981699367932">Pārlūkot kā viesim</translation> <translation id="54609108002486618">Pārvaldītais</translation> +<translation id="5496819745535887422">Administrators jūsu ierīcē veic atriti. Kad ierīce tiks restartēta, visi dati tiks dzēsti.</translation> <translation id="553675580533261935">Iziešana no sesijas</translation> <translation id="5537725057119320332">Apraidīt</translation> <translation id="5548285847212963613">Paplašinājums “<ph name="EXTENSION_NAME" />” var palīdzēt pievienoties šim tīklam.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Meklēšana+Shift+K</translation> <translation id="6650933572246256093">Bluetooth ierīce “<ph name="DEVICE_NAME" />” vēlas saņemt atļauju, lai izveidotu savienojumu pārī. Lūdzu, ievadiet ierīcē šo ieejas atslēgu: <ph name="PASSKEY" />.</translation> <translation id="6657585470893396449">Parole</translation> +<translation id="6687966522050791666">Izvēlēties valodu un ievadi</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Noņemamajai tastatūrai nepieciešams svarīgs atjauninājums</translation> <translation id="6700713906295497288">IME izvēlnes poga</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Vairākkārtēja pierakstīšanās</translation> <translation id="8000066093800657092">Nav tīkla</translation> <translation id="8029241286966751120">Pilnekrāna lupa ir iespējota. Lai to izslēgtu, vēlreiz nospiediet taustiņu kombināciju Ctrl+Search+H.</translation> +<translation id="8030169304546394654">atvienots</translation> <translation id="8054466585765276473">Notiek akumulatora darbības ilguma aprēķināšana.</translation> <translation id="8061464966246066292">Augsts kontrasts</translation> <translation id="8098591350844501178">Apturēt ekrāna apraidi uztvērējā “<ph name="RECEIVER_NAME" />”</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Ātrā palaišana</translation> <translation id="8995603266996330174">Pārvalda domēnu <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Ir pieejams Adobe Flash Player atjauninājums</translation> +<translation id="9056839673611986238">Ierīcē tiks veikta atrite</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi adrese: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Tiek izmantots mikrofons.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Pierakstīties kā citam lietotājam...</translation> <translation id="9201131092683066720">Akumulatora uzlādes līmenis: <ph name="PERCENTAGE" />%</translation> <translation id="9210037371811586452">Notiek iziešana no vienotās darbvirsmas režīma</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Iestatīt fona tapeti</translation> <translation id="923686485342484400">Lai izrakstītos, divas reizes nospiediet taustiņu kombināciju Ctrl+Shift+Q.</translation> <translation id="945522503751344254">Sūtīt atsauksmes</translation>
diff --git a/ash/strings/ash_strings_ml.xtb b/ash/strings/ash_strings_ml.xtb index 4552e4d3..25fa1b6d 100644 --- a/ash/strings/ash_strings_ml.xtb +++ b/ash/strings/ash_strings_ml.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> എന്നതിലേക്ക് മിറർചെയ്യുന്നു</translation> <translation id="1885785240814121742">ഫിംഗർപ്രിന്റ് ഉപയോഗിച്ച് അൺലോക്ക് ചെയ്യുക</translation> <translation id="1919743966458266018">ടാസ്ക് മാനേജർ തുറക്കാനുള്ള കുറുക്കുവഴി മാറ്റി. <ph name="OLD_SHORTCUT" /> എന്നതിന് പകരം <ph name="NEW_SHORTCUT" /> ഉപയോഗിക്കുക.</translation> +<translation id="1923508880661655826">നിങ്ങൾ സൈൻ ഔട്ട് ചെയ്യുമ്പോൾ നിങ്ങളുടെ സെഷൻ മായ്ക്കപ്പെടും.<ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">യാന്ത്രിക ക്ലിക്കുകൾ</translation> <translation id="1928739107511554905">അപ്ഡേറ്റ് നേടാൻ, അറ്റാച്ച് ചെയ്ത കീബോഡിനൊപ്പം Chromebook റീസ്റ്റാർട്ട് ചെയ്യാൻ ടച്ച്സ്ക്രീൻ ഉപയോഗിക്കുക.</translation> <translation id="1942830294380034169">ഓവർഫ്ലോ ബട്ടൺ</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">ഉയർന്ന ദൃശ്യതീവ്രത മോഡ് ടോഗിൾ ചെയ്യാനുള്ള കുറുക്കുവഴി മാറ്റി. <ph name="OLD_SHORTCUT" /> എന്നതിനുപകരം <ph name="NEW_SHORTCUT" /> ഉപയോഗിക്കുക.</translation> <translation id="4917385247580444890">ശക്തം</translation> <translation id="4918086044614829423">സ്വീകരിക്കുക</translation> +<translation id="4924411785043111640">പുനഃരാരംഭിച്ച് പുനഃസജ്ജീകരിക്കുക</translation> <translation id="4961318399572185831">സ്ക്രീൻ കാസ്റ്റുചെയ്യുക</translation> +<translation id="5069971504769299223">നിങ്ങളുടെ ആക്റ്റിവിറ്റി, ഉപകരണ മാനേജർക്ക് നിരീക്ഷിക്കാനായേക്കും.</translation> <translation id="5136175204352732067">വ്യത്യസ്ത കീബോർഡ് കണക്റ്റ് ചെയ്തു</translation> <translation id="5168181903108465623">Cast ഉപകരണങ്ങൾ ലഭ്യമാണ്.</translation> <translation id="5207949376430453814">ടെക്സ്റ്റ് കാരറ്റ് ഹൈലൈറ്റുചെയ്യുക</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">ലഭ്യമായ എല്ലാ ഉപയോക്താക്കളേയും ഈ സെഷനിൽ ഇതിനകം ചേർത്തു.</translation> <translation id="5457599981699367932">അതിഥിയായി ബ്രൌസുചെയ്യുക</translation> <translation id="54609108002486618">നിയന്ത്രിതം</translation> +<translation id="5496819745535887422">നിങ്ങളുടെ അഡ്മിൻ ഉപകരണം മുമ്പത്തെ അവസ്ഥയിലേക്ക് പുനഃസ്ഥാപിക്കുകയാണ്. ഉപകരണം പുനഃരാരംഭിക്കുമ്പോൾ എല്ലാ ഡാറ്റയും ഇല്ലാതാക്കപ്പെടും.</translation> <translation id="553675580533261935">സെഷനിൽ നിന്ന് പുറത്തുകടക്കുന്നു</translation> <translation id="5537725057119320332">കാസ്റ്റുചെയ്യുക</translation> <translation id="5548285847212963613">ഈ നെറ്റ്വർക്കിലേക്ക് കണക്റ്റുചെയ്യാൻ "<ph name="EXTENSION_NAME" />" വിപുലീകരണത്തിന് സഹായിക്കാനാകും.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">തിരയല്+Shift+K</translation> <translation id="6650933572246256093">"<ph name="DEVICE_NAME" />" എന്ന Bluetooth ഉപകരണം ജോടിയാക്കുന്നതിനുള്ള അനുമതി ആവശ്യപ്പെടുന്നു. ആ ഉപകരണത്തിൽ ഈ പാസ്കീ നൽകുക: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">പാസ്വേഡ്</translation> +<translation id="6687966522050791666">ഭാഷയും ഇൻപുട്ടും തിരഞ്ഞെടുക്കുക</translation> <translation id="6691659475504239918">തിരയൽ+Shift+H</translation> <translation id="6696025732084565524">നിങ്ങളുടെ വേർപെടുത്താനാകുന്ന കീബോഡിന് നിർണ്ണായക അപ്ഡേറ്റ് ആവശ്യമാണ്</translation> <translation id="6700713906295497288">IME മെനു ബട്ടൺ</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">ഒന്നിലധികം സൈൻ ഇൻ</translation> <translation id="8000066093800657092">നെറ്റ്വര്ക്ക് ഇല്ല</translation> <translation id="8029241286966751120">പൂർണ്ണസ്ക്രീൻ മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കി. ഇത് മാറ്റാൻ, കൺട്രോൾ+തിരയൽ+M വീണ്ടും അമർത്തുക.</translation> +<translation id="8030169304546394654">വിച്ഛേദിച്ചു</translation> <translation id="8054466585765276473">ബാറ്ററി സമയം കണക്കാക്കുന്നു.</translation> <translation id="8061464966246066292">ഉയർന്ന ദൃശ്യ തീവ്രത</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> എന്നതിലേക്ക് സ്ക്രീൻ കാസ്റ്റുചെയ്യുന്നത് നിർത്തുക</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">ക്വിക്ക് ലോഞ്ച്</translation> <translation id="8995603266996330174"><ph name="DOMAIN" /> എന്നത് കൈകാര്യം ചെയ്യുന്നു</translation> <translation id="9029474291399787231">Adobe Flash Player അപ്ഡേറ്റ് ലഭ്യമാണ്</translation> +<translation id="9056839673611986238">ഉപകരണം പഴയ അവസ്ഥയിലേക്ക് പുനഃസ്ഥാപിക്കും</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">മൈക്രോഫോൺ ഉപയോഗത്തിലാണ്.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">മറ്റൊരു ഉപയോക്താവായി സൈൻ ഇൻ ചെയ്യുക...</translation> <translation id="9201131092683066720">ബാറ്ററി <ph name="PERCENTAGE" />% നിറഞ്ഞു.</translation> <translation id="9210037371811586452">ഏകീകൃത ഡെസ്ക്ടോപ്പ് മോഡിൽ നിന്ന് പുറത്തുകടക്കുന്നു</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">വാൾപേപ്പർ സജ്ജമാക്കുക</translation> <translation id="923686485342484400">സൈൻ ഔട്ട് ചെയ്യുന്നതിന് രണ്ടുതവണ Control Shift Q അമർത്തുക.</translation> <translation id="945522503751344254">ഫീഡ്ബാക്ക് അയയ്ക്കുക</translation>
diff --git a/ash/strings/ash_strings_mr.xtb b/ash/strings/ash_strings_mr.xtb index 54c94b62..4e3f456 100644 --- a/ash/strings/ash_strings_mr.xtb +++ b/ash/strings/ash_strings_mr.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046"><ph name="DISPLAY_NAME" /> वर मिरर करत आहे</translation> <translation id="1885785240814121742">फिंगरप्रिंटने अनलॉक करा</translation> <translation id="1919743966458266018">कार्य व्यवस्थापक उघडण्याचा शॉर्टकट बदलला आहे. कृपया <ph name="OLD_SHORTCUT" /> ऐवजी <ph name="NEW_SHORTCUT" /> वापरा.</translation> +<translation id="1923508880661655826">तुम्ही साइन आउट केल्यावर तुमचे सेशन साफ केले जाईल. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">स्वयंचलित क्लिक</translation> <translation id="1928739107511554905">अपडेट करण्यासाठी, संलग्न केलेल्या कीबोर्डसह तुमचे Chromebook रीस्टार्ट करण्यासाठी टचस्क्रीन वापरा.</translation> <translation id="1942830294380034169">ओव्हरफ्लो बटण</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">उच्च तीव्रता मोड टॉगल करण्यासाठी शॉर्टकट बदलला आहे. कृपया <ph name="OLD_SHORTCUT" /> ऐवजी <ph name="NEW_SHORTCUT" /> वापरा.</translation> <translation id="4917385247580444890">मजबूत</translation> <translation id="4918086044614829423">स्वीकारा</translation> +<translation id="4924411785043111640">रीस्टार्ट करा आणि रीसेट करा</translation> <translation id="4961318399572185831">स्क्रीन कास्ट करा</translation> +<translation id="5069971504769299223">डिव्हाइस व्यवस्थापक कदाचित तुमच्या अॅक्टिव्हिटीचे परीक्षण करू शकेल.</translation> <translation id="5136175204352732067">वेगळा कीबोर्ड कनेक्ट केला आहे</translation> <translation id="5168181903108465623">कास्ट डिव्हाइसेस उपलब्ध</translation> <translation id="5207949376430453814">मजकूर कॅरेट हायलाइट करा</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">सर्व उपलब्ध वापरकर्ते आधीपासून या सत्रावर जोडले गेले आहेत.</translation> <translation id="5457599981699367932">अतिथी म्हणून ब्राउझ करा</translation> <translation id="54609108002486618">व्यवस्थापित</translation> +<translation id="5496819745535887422">तुमचा व्यवस्थापक तुमचे डिव्हाइस रोल बॅक करत आहे. सर्व डेटा हटवला जाईल आणि डिव्हाइस रीस्टार्ट केले जाईल.</translation> <translation id="553675580533261935">सत्रातून निर्गमन करत आहे</translation> <translation id="5537725057119320332">कास्ट करा</translation> <translation id="5548285847212963613">या नेटवर्कवर कनेक्ट करण्यात "<ph name="EXTENSION_NAME" />" विस्तार मदत करू शकतो.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Search+Shift+K</translation> <translation id="6650933572246256093">"<ph name="DEVICE_NAME" />" Bluetooth डिव्हाइस जोडण्यासाठी परवानगी घेऊ इच्छिते. कृपया त्या डिव्हाइसवर ही पासकी एंटर करा: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">पासवर्ड</translation> +<translation id="6687966522050791666">भाषा आणि इनपुट निवडा</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">तुमच्या वेगळ्या करण्यायोग्य कीबोर्डला गंभीर अपडेटची आवश्यकता आहे</translation> <translation id="6700713906295497288">IME मेनू बटण</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">एकाधिक साइन-इन</translation> <translation id="8000066093800657092">कोणतेही नेटवर्क नाही</translation> <translation id="8029241286966751120">फुलस्क्रीन मॅग्निफायर सुरू केले आहे. ते टॉगल करून बंद करण्यासाठी पुन्हा Ctrl+Search+M दाबा.</translation> +<translation id="8030169304546394654">डिस्कनेक्ट केलेले</translation> <translation id="8054466585765276473">बॅटरी वेळ गणना करत आहे.</translation> <translation id="8061464966246066292">उच्च रंगभेद</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" /> वर स्क्रीन कास्ट करणे थांबवा</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">त्वरित लाँच</translation> <translation id="8995603266996330174"><ph name="DOMAIN" /> द्वारे व्यवस्थापित</translation> <translation id="9029474291399787231">Adobe Flash Player अपडेट उपलब्ध आहे</translation> +<translation id="9056839673611986238">डिव्हाइस रोल बॅक केले जाईल</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">वाय-फाय: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">मायक्रोफोन वापरात आहे.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">दुसरा वापरकर्ता साइन इन करा...</translation> <translation id="9201131092683066720">बॅटरी <ph name="PERCENTAGE" />% भरली आहे.</translation> <translation id="9210037371811586452">एकीकृत डेस्कटॉप मोड मधून बाहेर पडत आहे</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">वॉलपेपर सेट करा</translation> <translation id="923686485342484400">दोनदा साइन आउट करण्यासाठी Control Shift Q दोनदा दाबा.</translation> <translation id="945522503751344254">अभिप्राय पाठवा</translation>
diff --git a/ash/strings/ash_strings_ms.xtb b/ash/strings/ash_strings_ms.xtb index c25f4730..b740d34b 100644 --- a/ash/strings/ash_strings_ms.xtb +++ b/ash/strings/ash_strings_ms.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Log masuk berbilang</translation> <translation id="8000066093800657092">Tiada rangkaian</translation> <translation id="8029241286966751120">Penggadang Skrin Penuh didayakan. Tekan Ctrl+Cari+M semula untuk mematikannya.</translation> +<translation id="8030169304546394654">Diputuskan sambungan</translation> <translation id="8054466585765276473">Mengira tempoh bateri.</translation> <translation id="8061464966246066292">Kontras tinggi</translation> <translation id="8098591350844501178">Berhenti menghantar skrin ke <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Log masuk pengguna lain...</translation> <translation id="9201131092683066720">Bateri <ph name="PERCENTAGE" />% penuh.</translation> <translation id="9210037371811586452">Keluar daripada mod desktop bersatu</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Tetapkan kertas dinding</translation> <translation id="923686485342484400">Tekan Tekan Shift Q dua kali untuk keluar.</translation> <translation id="945522503751344254">Hantar maklum balas</translation>
diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb index ec493b4..a60c253 100644 --- a/ash/strings/ash_strings_nl.xtb +++ b/ash/strings/ash_strings_nl.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Toegang tot meerdere accounts</translation> <translation id="8000066093800657092">Geen netwerk</translation> <translation id="8029241286966751120">'Volledig scherm vergroten' is ingeschakeld. Druk nogmaals op Ctrl+Zoeken+M om dit uit te schakelen.</translation> +<translation id="8030169304546394654">Verbinding verbroken</translation> <translation id="8054466585765276473">Accuduur berekenen.</translation> <translation id="8061464966246066292">Hoog contrast</translation> <translation id="8098591350844501178">Schermcast naar <ph name="RECEIVER_NAME" /> stopzetten</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Een andere gebruiker inloggen...</translation> <translation id="9201131092683066720">De batterij is <ph name="PERCENTAGE" />% vol.</translation> <translation id="9210037371811586452">Samengestelde desktopmodus wordt gesloten</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Achtergrond instellen</translation> <translation id="923686485342484400">Druk twee keer op Control+Shift+Q om uit te loggen.</translation> <translation id="945522503751344254">Feedback verzenden</translation>
diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb index 5b6cbbc9..5fcb722 100644 --- a/ash/strings/ash_strings_no.xtb +++ b/ash/strings/ash_strings_no.xtb
@@ -191,6 +191,7 @@ <translation id="4544944664594876241">Snarveien for å låse skjermen er endret. Bruk <ph name="NEW_SHORTCUT" /> i stedet for <ph name="OLD_SHORTCUT" />.</translation> <translation id="4564869809620998694">Skrifttypetjeneste</translation> <translation id="4570957409596482333">Tekstopplesingsknapp</translation> +<translation id="4585337515783392668">Slutt å caste på en ukjent mottaker</translation> <translation id="4628757576491864469">Enheter</translation> <translation id="4659419629803378708">ChromeVox er slått på</translation> <translation id="4734965478015604180">Horisontal</translation> @@ -237,6 +238,7 @@ <translation id="5805697420284793859">Window Manager</translation> <translation id="5820394555380036790">Chromium OS</translation> <translation id="5832805196449965646">Legg til person</translation> +<translation id="5837036133683224804">Stopp <ph name="ROUTE_TITLE" /> på <ph name="RECEIVER_NAME" /></translation> <translation id="5860033963881614850">Av</translation> <translation id="5895138241574237353">Start på nytt</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -273,6 +275,7 @@ <translation id="639644700271529076">CAPS LOCK er av</translation> <translation id="6406704438230478924">alt gr</translation> <translation id="643147933154517414">Ingen varsler</translation> +<translation id="6445835306623867477"><ph name="ROUTE_TITLE" /> på <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">Avslå</translation> <translation id="6453179446719226835">Språket er endret</translation> <translation id="6459472438155181876">Utvider skjermen til <ph name="DISPLAY_NAME" /></translation> @@ -354,6 +357,7 @@ <translation id="7994370417837006925">Multipålogging</translation> <translation id="8000066093800657092">Ingen nettverk</translation> <translation id="8029241286966751120">Lupe for hele skjermen er slått på. Trykk på Ctrl + Søk + M igjen for å slå det av.</translation> +<translation id="8030169304546394654">Frakoblet</translation> <translation id="8054466585765276473">Beregner batteritid.</translation> <translation id="8061464966246066292">Høy kontrast</translation> <translation id="8098591350844501178">Slutt å caste skjermen til <ph name="RECEIVER_NAME" /></translation> @@ -369,6 +373,7 @@ <translation id="8351131234907093545">Opprett et notat</translation> <translation id="8392451568018454956">Alternativmenyen for <ph name="USER_EMAIL_ADDRESS" /></translation> <translation id="8406981827175133772">Lupe for hele skjermen</translation> +<translation id="8427213022735114808">Diktat sender stemmen din til Google for å tillate stemmestyrt skriving i hvilket som helst tekstfelt.</translation> <translation id="8428213095426709021">Innstillinger</translation> <translation id="8431190899827883166">Vis trykk</translation> <translation id="8433186206711564395">Nettverksinnstillinger</translation> @@ -410,10 +415,10 @@ <translation id="9111102763498581341">Lås opp</translation> <translation id="9151726767154816831">Start på nytt, og kjør Powerwash for å oppdatere</translation> <translation id="9179259655489829027">Med denne funksjonen får du rask tilgang til påloggede brukere uten å måtte skrive inn passord. Du bør bare bruke denne funksjonen med kontoer du stoler på.</translation> +<translation id="9193626018745640770">Caster på en ukjent mottaker</translation> <translation id="9194617393863864469">Logg på en annen bruker</translation> <translation id="9201131092683066720">Batteriet er <ph name="PERCENTAGE" /> % fullt</translation> <translation id="9210037371811586452">Avslutter enhetlig skrivebordsmodus</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Velg bakgrunn</translation> <translation id="923686485342484400">Trykk på Control+Shift+Q to ganger for å logge av.</translation> <translation id="945522503751344254">Gi tilbakemelding</translation>
diff --git a/ash/strings/ash_strings_pl.xtb b/ash/strings/ash_strings_pl.xtb index 70b236b..2e1c297 100644 --- a/ash/strings/ash_strings_pl.xtb +++ b/ash/strings/ash_strings_pl.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Kopia na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Odblokuj odciskiem palca</translation> <translation id="1919743966458266018">Zmieniliśmy skrót, który otwiera menedżera zadań. Zamiast <ph name="OLD_SHORTCUT" /> używaj teraz <ph name="NEW_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Twoja sesja zostanie wyczyszczona, gdy się wylogujesz. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatyczne kliknięcia</translation> <translation id="1928739107511554905">Aby pobrać aktualizację, użyj ekranu dotykowego, by uruchomić Chromebooka ponownie z podłączoną klawiaturą.</translation> <translation id="1942830294380034169">Przycisk akcji</translation> @@ -207,7 +208,9 @@ <translation id="4905614135390995787">Zmieniliśmy skrót, który włącza i wyłącza tryb wysokiego kontrastu. Użyj <ph name="NEW_SHORTCUT" /> zamiast <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Silny</translation> <translation id="4918086044614829423">Akceptuj</translation> +<translation id="4924411785043111640">Uruchom ponownie i zresetuj</translation> <translation id="4961318399572185831">Przesyłanie ekranu</translation> +<translation id="5069971504769299223">Zarządzający urządzeniem może monitorować Twoją aktywność.</translation> <translation id="5136175204352732067">Podłączono inną klawiaturę</translation> <translation id="5168181903108465623">Dostępne są urządzenia przesyłające</translation> <translation id="5207949376430453814">Podświetlaj kursor tekstu</translation> @@ -221,6 +224,7 @@ <translation id="544691375626129091">Wszyscy dostępni użytkownicy zostali już dodani do tej sesji.</translation> <translation id="5457599981699367932">Przeglądaj jako gość</translation> <translation id="54609108002486618">Zarządzany</translation> +<translation id="5496819745535887422">Administrator przywraca wcześniejszą wersję oprogramowania na urządzeniu. Po ponownym uruchomieniu urządzenia wszystkie dane zostaną usunięte.</translation> <translation id="553675580533261935">Zamykanie sesji</translation> <translation id="5537725057119320332">Przesyłaj</translation> <translation id="5548285847212963613">Rozszerzenie „<ph name="EXTENSION_NAME" />” może ułatwić połączenie z tą siecią.</translation> @@ -291,6 +295,7 @@ <translation id="6627638273713273709">Szukaj + Shift + K</translation> <translation id="6650933572246256093">Urządzenie Bluetooth „<ph name="DEVICE_NAME" />” chce się sparować. Wpisz na nim ten klucz: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Hasło</translation> +<translation id="6687966522050791666">Wybierz język i klawiaturę</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Odłączana klawiatura wymaga krytycznej aktualizacji</translation> <translation id="6700713906295497288">Przycisk menu IME</translation> @@ -358,6 +363,7 @@ <translation id="7994370417837006925">Wielokrotne logowanie</translation> <translation id="8000066093800657092">Brak sieci</translation> <translation id="8029241286966751120">Lupa pełnego ekranu została włączona. Aby ją wyłączyć, naciśnij ponownie Ctrl+Search+M.</translation> +<translation id="8030169304546394654">Rozłączone</translation> <translation id="8054466585765276473">Obliczanie czasu pracy na baterii.</translation> <translation id="8061464966246066292">Wysoki kontrast</translation> <translation id="8098591350844501178">Zakończ przesyłanie ekranu do: <ph name="RECEIVER_NAME" /></translation> @@ -407,6 +413,7 @@ <translation id="8984179138335769204">Szybkie uruchamianie</translation> <translation id="8995603266996330174">Zarządzane przez <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Dostępna jest aktualizacja Adobe Flash Playera</translation> +<translation id="9056839673611986238">Na urządzeniu zostanie przywrócona wcześniejsza wersja oprogramowania</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofon jest używany.</translation> @@ -419,7 +426,6 @@ <translation id="9194617393863864469">Zaloguj innego użytkownika...</translation> <translation id="9201131092683066720">Naładowanie baterii: <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Wyłączam tryb ujednoliconego pulpitu</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Ustaw tapetę</translation> <translation id="923686485342484400">Naciśnij dwukrotnie Control Shift Q, by się wylogować.</translation> <translation id="945522503751344254">Wyślij zgłoszenie</translation>
diff --git a/ash/strings/ash_strings_pt-BR.xtb b/ash/strings/ash_strings_pt-BR.xtb index 9d23e49..f47c5a6a 100644 --- a/ash/strings/ash_strings_pt-BR.xtb +++ b/ash/strings/ash_strings_pt-BR.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Espelhamento de <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Desbloqueio com impressão digital</translation> <translation id="1919743966458266018">O atalho para abrir o gerenciador de tarefas foi alterado. Use <ph name="NEW_SHORTCUT" /> em vez de <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Sua sessão será limpa quando você sair. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Cliques automáticos</translation> <translation id="1928739107511554905">Para receber a atualização, use a touchscreen para reiniciar o Chromebook com o teclado conectado.</translation> <translation id="1942830294380034169">Botão de estouro</translation> @@ -207,7 +208,9 @@ <translation id="4905614135390995787">O atalho para alternar o modo de alto contraste foi alterado. Use <ph name="NEW_SHORTCUT" /> em vez de <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Forte</translation> <translation id="4918086044614829423">Aceitar</translation> +<translation id="4924411785043111640">Reiniciar e redefinir</translation> <translation id="4961318399572185831">Transmitir tela</translation> +<translation id="5069971504769299223">O administrador do dispositivo pode conseguir monitorar sua atividade.</translation> <translation id="5136175204352732067">Teclado diferente conectado</translation> <translation id="5168181903108465623">Dispositivos de transmissão disponíveis</translation> <translation id="5207949376430453814">Destacar cursor de texto</translation> @@ -221,6 +224,7 @@ <translation id="544691375626129091">Todos os usuários disponíveis já foram adicionados a esta sessão.</translation> <translation id="5457599981699367932">Navegar como visitante</translation> <translation id="54609108002486618">Gerenciado</translation> +<translation id="5496819745535887422">O administrador está revertendo seu dispositivo. Todos os dados serão excluídos quando o dispositivo for reiniciado.</translation> <translation id="553675580533261935">Saindo da sessão</translation> <translation id="5537725057119320332">Transmitir</translation> <translation id="5548285847212963613">A extensão "<ph name="EXTENSION_NAME" />" pode ajudar na conexão com esta rede.</translation> @@ -292,6 +296,7 @@ <translation id="6627638273713273709">Pesquisar+Shift+K</translation> <translation id="6650933572246256093">O dispositivo Bluetooth "<ph name="DEVICE_NAME" />" deseja permissão para realizar o pareamento. Digite esta senha no dispositivo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Senha</translation> +<translation id="6687966522050791666">Escolher o idioma e a entrada</translation> <translation id="6691659475504239918">Pesquisa+Shift+H</translation> <translation id="6696025732084565524">Seu teclado removível precisa de uma atualização crítica</translation> <translation id="6700713906295497288">Botão do menu do IME</translation> @@ -359,6 +364,7 @@ <translation id="7994370417837006925">Login múltiplo</translation> <translation id="8000066093800657092">Sem rede</translation> <translation id="8029241286966751120">Lupa de tela cheia ativada. Pressione Ctrl+Pesquisa+M novamente para desativá-la.</translation> +<translation id="8030169304546394654">Desconectado</translation> <translation id="8054466585765276473">Calculando duração da bateria.</translation> <translation id="8061464966246066292">Alto contraste</translation> <translation id="8098591350844501178">Parar de transmitir tela para <ph name="RECEIVER_NAME" /></translation> @@ -408,6 +414,7 @@ <translation id="8984179138335769204">Início rápido</translation> <translation id="8995603266996330174">Gerenciado por <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Atualização do Adobe Flash Player disponível</translation> +<translation id="9056839673611986238">O dispositivo será revertido</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">O microfone está sendo usado.</translation> @@ -420,7 +427,6 @@ <translation id="9194617393863864469">Fazer login com outro usuário...</translation> <translation id="9201131092683066720">A bateria está <ph name="PERCENTAGE" />% carregada.</translation> <translation id="9210037371811586452">Saindo do modo de área de trabalho unificada</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Definir plano de fundo</translation> <translation id="923686485342484400">Pressione Control+Shift+Q duas vezes para sair.</translation> <translation id="945522503751344254">Enviar comentários</translation>
diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb index 834854b..7975e4f0 100644 --- a/ash/strings/ash_strings_pt-PT.xtb +++ b/ash/strings/ash_strings_pt-PT.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Início de sessão integrado</translation> <translation id="8000066093800657092">Sem rede</translation> <translation id="8029241286966751120">Lupa de ecrã inteiro ativada. Prima Ctrl + Pesquisa + M novamente para a desativar.</translation> +<translation id="8030169304546394654">Desligado</translation> <translation id="8054466585765276473">A calcular tempo da bateria.</translation> <translation id="8061464966246066292">Alto contraste</translation> <translation id="8098591350844501178">Parar a transmissão do ecrã para <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Iniciar sessão com outro utilizador...</translation> <translation id="9201131092683066720">A bateria está <ph name="PERCENTAGE" />% cheia.</translation> <translation id="9210037371811586452">A sair do Modo de ambiente de trabalho unificado</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Definir imagem de fundo</translation> <translation id="923686485342484400">Prima Control Shift Q duas vezes para terminar sessão.</translation> <translation id="945522503751344254">Enviar comentários</translation>
diff --git a/ash/strings/ash_strings_ro.xtb b/ash/strings/ash_strings_ro.xtb index 0b0de5d0..64eb6bf 100644 --- a/ash/strings/ash_strings_ro.xtb +++ b/ash/strings/ash_strings_ro.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Se oglindește pe <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Deblochează cu amprenta</translation> <translation id="1919743966458266018">Comanda rapidă pentru a deschide managerul de activități a fost modificată. Folosește <ph name="NEW_SHORTCUT" /> în loc de <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Sesiunea va fi anulată după ce te deconectezi. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Clicuri automate</translation> <translation id="1928739107511554905">Pentru a obține actualizarea, folosește ecranul tactil ca să repornești Chromebookul cu tastatura atașată.</translation> <translation id="1942830294380034169">Buton pentru meniul suplimentar</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Comanda rapidă pentru comutarea modului Contrast ridicat s-a modificat. Folosește <ph name="NEW_SHORTCUT" /> în loc de <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Puternic</translation> <translation id="4918086044614829423">Accept</translation> +<translation id="4924411785043111640">Repornește și resetează</translation> <translation id="4961318399572185831">Proiectează ecranul</translation> +<translation id="5069971504769299223">Managerul de dispozitive poate să îți monitorizeze activitatea.</translation> <translation id="5136175204352732067">Altă tastatură conectată</translation> <translation id="5168181903108465623">Dispozitive de proiecție disponibile</translation> <translation id="5207949376430453814">Evidențiază cursorul pentru text</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Toți utilizatorii disponibili au fost deja adăugați la această sesiune.</translation> <translation id="5457599981699367932">Navighează ca invitat</translation> <translation id="54609108002486618">Gestionat</translation> +<translation id="5496819745535887422">Administratorul îți resetează dispozitivul. Toate datele vor fi șterse după repornirea dispozitivului.</translation> <translation id="553675580533261935">Se iese din sesiune</translation> <translation id="5537725057119320332">Proiectează</translation> <translation id="5548285847212963613">Extensia „<ph name="EXTENSION_NAME" />” te poate ajuta să te conectezi la această rețea.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Tasta de căutare + Shift + K</translation> <translation id="6650933572246256093">Dispozitivul Bluetooth „<ph name="DEVICE_NAME" />” solicită permisiunea de a se conecta. Introduceți această parolă pe dispozitivul respectiv: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Parolă</translation> +<translation id="6687966522050791666">Alege limba și modul de introducere</translation> <translation id="6691659475504239918">Tasta de căutare + Shift + H</translation> <translation id="6696025732084565524">Tastatura detașabilă necesită o actualizare esențială</translation> <translation id="6700713906295497288">Butonul de meniu IME</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Conectare multiplă</translation> <translation id="8000066093800657092">Nicio rețea</translation> <translation id="8029241286966751120">Lupa de ecran complet este activată. Apasă din nou pe Ctrl + tasta de căutare + M pentru a o dezactiva.</translation> +<translation id="8030169304546394654">Deconectat</translation> <translation id="8054466585765276473">Se calculează durata bateriei.</translation> <translation id="8061464966246066292">Contrast ridicat</translation> <translation id="8098591350844501178">Nu mai proiecta ecranul pe dispozitivul <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Lansare rapidă</translation> <translation id="8995603266996330174">Gestionat de <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Este disponibilă o actualizare Adobe Flash Player</translation> +<translation id="9056839673611986238">Dispozitivul va fi resetat</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Microfonul este în uz.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Conectează-te cu alt nume de utilizator...</translation> <translation id="9201131092683066720">Nivelul bateriei este de <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Se iese din modul desktop unificat</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Setează o imagine de fundal</translation> <translation id="923686485342484400">Apăsați de două ori Control Shift Q pentru a vă deconecta.</translation> <translation id="945522503751344254">Trimite feedback</translation>
diff --git a/ash/strings/ash_strings_ru.xtb b/ash/strings/ash_strings_ru.xtb index 1e3a8d5..b322584 100644 --- a/ash/strings/ash_strings_ru.xtb +++ b/ash/strings/ash_strings_ru.xtb
@@ -357,6 +357,7 @@ <translation id="7994370417837006925">Множественный вход</translation> <translation id="8000066093800657092">Нет сети</translation> <translation id="8029241286966751120">Полноэкранная лупа включена. Чтобы отключить ее, нажмите Ctrl + Поиск + M.</translation> +<translation id="8030169304546394654">Отключено</translation> <translation id="8054466585765276473">Подсчет оставшегося времени работы от батареи…</translation> <translation id="8061464966246066292">Высокая контрастность</translation> <translation id="8098591350844501178">Остановить трансляцию содержимого экрана на устройство "<ph name="RECEIVER_NAME" />"</translation> @@ -418,7 +419,6 @@ <translation id="9194617393863864469">Войти в другой аккаунт...</translation> <translation id="9201131092683066720">Батарея заряжена на <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Выход из режима единого рабочего стола…</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Выбрать обои</translation> <translation id="923686485342484400">Чтобы выйти, дважды нажмите Control+Shift+Q.</translation> <translation id="945522503751344254">Отправить отзыв</translation>
diff --git a/ash/strings/ash_strings_sk.xtb b/ash/strings/ash_strings_sk.xtb index 2effca7..ef6275c 100644 --- a/ash/strings/ash_strings_sk.xtb +++ b/ash/strings/ash_strings_sk.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Zrkadlenie na displej <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Odomykajte odtlačkom prsta</translation> <translation id="1919743966458266018">Skratka otvorenia správcu úloh bola zmenená. Namiesto skratky <ph name="OLD_SHORTCUT" /> používajte kombináciu klávesov <ph name="NEW_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Vaša relácia sa vymaže, keď sa odhlásite. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Automatické kliknutia</translation> <translation id="1928739107511554905">Ak chcete získať aktualizáciu, reštartuje Chromebook s pripojenou klávesnicou pomocou dotykovej obrazovky.</translation> <translation id="1942830294380034169">Tlačidlo Viac</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Skratka na prepnutie režimu vysokého kontrastu sa zmenila. Namiesto skratky <ph name="OLD_SHORTCUT" /> používajte kombináciu klávesov <ph name="NEW_SHORTCUT" />.</translation> <translation id="4917385247580444890">Silné</translation> <translation id="4918086044614829423">Prijať</translation> +<translation id="4924411785043111640">Reštartovať a resetovať</translation> <translation id="4961318399572185831">Prenášanie obrazovky</translation> +<translation id="5069971504769299223">Správca zariadenia môže sledovať vašu aktivitu.</translation> <translation id="5136175204352732067">Bola pripojená iná klávesnica</translation> <translation id="5168181903108465623">Dostupné zariadenia na prenos</translation> <translation id="5207949376430453814">Zvýrazniť textový kurzor</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Do tejto relácie už boli pridaní všetci dostupní používatelia</translation> <translation id="5457599981699367932">Prehliadať ako hosť</translation> <translation id="54609108002486618">Spravovaný</translation> +<translation id="5496819745535887422">Správca obnovuje vaše zariadenie. Pri reštartovaní zariadenia sa odstránia všetky dáta.</translation> <translation id="553675580533261935">Ukončuje sa relácia</translation> <translation id="5537725057119320332">Prenášať</translation> <translation id="5548285847212963613">Rozšírenie <ph name="EXTENSION_NAME" /> vám môže pomôcť pripojiť sa k tejto sieti.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Hľadať+Shift+K</translation> <translation id="6650933572246256093">Zariadenie Bluetooth s názvom <ph name="DEVICE_NAME" /> žiada o povolenie párovania. Zadajte na danom zariadení tento prístupový kľúč: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Heslo</translation> +<translation id="6687966522050791666">Vybrať jazyk a vstup</translation> <translation id="6691659475504239918">Hľadať+Shift+H</translation> <translation id="6696025732084565524">Odoberateľná klávesnica potrebuje kritickú aktualizáciu</translation> <translation id="6700713906295497288">Tlačidlo ponuky IME</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Viacnásobné prihlásenie</translation> <translation id="8000066093800657092">Žiadna sieť</translation> <translation id="8029241286966751120">Bola zapnutá lupa na celú obrazovku. Vypnete ju opätovným stlačením kombinácie klávesov Ctrl+Hľadať+M.</translation> +<translation id="8030169304546394654">Odpojené</translation> <translation id="8054466585765276473">Výpočet času výdrže batérie.</translation> <translation id="8061464966246066292">Vysoký kontrast</translation> <translation id="8098591350844501178">Zastaviť prenos obrazovky do zariadenia <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Rýchle spustenie</translation> <translation id="8995603266996330174">Spravované doménou <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">K dispozícii je aktualizácia prehrávača Adobe Flash Player</translation> +<translation id="9056839673611986238">Zariadenie sa obnoví</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi‑Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofón sa používa.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Prihlásiť ďalšieho používateľa...</translation> <translation id="9201131092683066720">Batéria je nabitá na <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Ukončuje sa režim jednotnej pracovnej plochy</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Nastaviť tapetu</translation> <translation id="923686485342484400">Ak sa chcete odhlásiť, stlačte dvakrát kombináciu klávesov Ctrl, Shift a Q.</translation> <translation id="945522503751344254">Poslať spätnú väzbu</translation>
diff --git a/ash/strings/ash_strings_sl.xtb b/ash/strings/ash_strings_sl.xtb index 1945052..8244d50 100644 --- a/ash/strings/ash_strings_sl.xtb +++ b/ash/strings/ash_strings_sl.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Zrcaljenje na <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Odklepanje s prstnim odtisom</translation> <translation id="1919743966458266018">Bližnjica za odpiranje upravitelja opravil je spremenjena. Uporabite <ph name="NEW_SHORTCUT" /> namesto <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Seja bo počiščena, ko se odjavite. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Samodejni kliki</translation> <translation id="1928739107511554905">Če želite prejeti posodobitev, uporabite zaslon na dotik, da znova zaženete Chromebook s priklopljeno tipkovnico.</translation> <translation id="1942830294380034169">Gumb za meni z dodatnimi elementi</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Bližnjica za preklop na visokokontrastni način se je spremenila. Uporabite <ph name="NEW_SHORTCUT" /> namesto <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Močan</translation> <translation id="4918086044614829423">Sprejmi</translation> +<translation id="4924411785043111640">Znova zaženi in ponastavi</translation> <translation id="4961318399572185831">Predvajanje zaslona</translation> +<translation id="5069971504769299223">Upravitelj naprave lahko morda nadzira vašo dejavnost.</translation> <translation id="5136175204352732067">Priklopljena je druga tipkovnica</translation> <translation id="5168181903108465623">Naprave za predvajanje so na voljo</translation> <translation id="5207949376430453814">Označitev kazalke v besedilu</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Vsi razpoložljivi uporabniki so že bili dodani tej seji.</translation> <translation id="5457599981699367932">Brskajte kot gost</translation> <translation id="54609108002486618">Upravljan</translation> +<translation id="5496819745535887422">Skrbnik vrača napravo na prejšnjo različico. Ko bo naprava znova zagnana, bodo vsi podatki izbrisani.</translation> <translation id="553675580533261935">Odjava iz seje</translation> <translation id="5537725057119320332">Predvajanje</translation> <translation id="5548285847212963613">Razširitev »<ph name="EXTENSION_NAME" />« lahko pomaga vzpostavi povezavo s tem omrežjem.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Tipka za iskanje + Shift + K</translation> <translation id="6650933572246256093">Naprava Bluetooth »<ph name="DEVICE_NAME" />« želi vaše dovoljenje za seznanjanje. V napravi vnesite to geslo: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Geslo</translation> +<translation id="6687966522050791666">Izberite jezik in vnos</translation> <translation id="6691659475504239918">Tipka za iskanje + Shift + H</translation> <translation id="6696025732084565524">Snemljiva tipkovnica potrebuje nujno posodobitev</translation> <translation id="6700713906295497288">Menijski gumb UNV-ja</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Prijava z več računi</translation> <translation id="8000066093800657092">Ni omrežja</translation> <translation id="8029241286966751120">Celozaslonska lupa je omogočena. Če jo želite izklopiti, znova pritisnite Ctrl + tipko za iskanje + M.</translation> +<translation id="8030169304546394654">Ni povezave</translation> <translation id="8054466585765276473">Izračunavanje časa trajanja akumulatorja.</translation> <translation id="8061464966246066292">Visok kontrast</translation> <translation id="8098591350844501178">Ustavi predvajanje zaslona v napravi <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Hitri zagon</translation> <translation id="8995603266996330174">Upravljavec: <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Na voljo je posodobitev za Adobe Flash Player</translation> +<translation id="9056839673611986238">Naprava bo povrnjena na prejšnjo različico</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Mikrofon je v uporabi.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Prijava drugega uporabnika ...</translation> <translation id="9201131092683066720">Napolnjenost akumulatorja: <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Izhod iz načina enotnega namizja</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Nastavi sliko za ozadje</translation> <translation id="923686485342484400">Dvakrat pritisnite Control Shift Q, če se želite odjaviti.</translation> <translation id="945522503751344254">Pošlji povratne informacije</translation>
diff --git a/ash/strings/ash_strings_sr.xtb b/ash/strings/ash_strings_sr.xtb index 06e3a72..80943b42 100644 --- a/ash/strings/ash_strings_sr.xtb +++ b/ash/strings/ash_strings_sr.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Пресликавање у <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Откључајте отиском прста</translation> <translation id="1919743966458266018">Пречица за отварање менаџера задатака је промењена. Користите <ph name="NEW_SHORTCUT" /> уместо <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Сесија ће бити обрисана када се одјавите. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Аутоматски кликови</translation> <translation id="1928739107511554905">Да бисте преузели ажурирање, рестартујте Chromebook са прикљученом тастатуром на додирном екрану.</translation> <translation id="1942830294380034169">Дугме за додатне опције</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Пречица за укључивање и искључивање режима високог контраста је промењена. Користите <ph name="NEW_SHORTCUT" /> уместо <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Јак</translation> <translation id="4918086044614829423">Прихвати</translation> +<translation id="4924411785043111640">Рестартуј и ресетуј</translation> <translation id="4961318399572185831">Пребацивање екрана</translation> +<translation id="5069971504769299223">Менаџер уређаја може да надгледа ваше активности.</translation> <translation id="5136175204352732067">Нека друга тастатура је повезана</translation> <translation id="5168181903108465623">Доступни су уређаји за пребацивање</translation> <translation id="5207949376430453814">Истакни курсор за текст</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Сви доступни корисници су већ додати у ову сесију.</translation> <translation id="5457599981699367932">Прегледајте као гост</translation> <translation id="54609108002486618">Управљани</translation> +<translation id="5496819745535887422">Администратор враћа уређај на ранију верзију. Сви подаци ће бити избрисани када се уређај рестартује.</translation> <translation id="553675580533261935">Напуштање сесије</translation> <translation id="5537725057119320332">Пребацуј</translation> <translation id="5548285847212963613">Додатак „<ph name="EXTENSION_NAME" />“ може да помогне у повезивању са овом мрежом.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Тастер за претрагу+Shift+K</translation> <translation id="6650933572246256093">Bluetooth уређај „<ph name="DEVICE_NAME" />“ жели дозволу за упаривање. Унесите ову шифру на том уређају: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Лозинка</translation> +<translation id="6687966522050791666">Одаберите језик и унос</translation> <translation id="6691659475504239918">Тастер за претрагу + Shift + H</translation> <translation id="6696025732084565524">Треба да инсталирате важно ажурирање за одвојиву тастатуру</translation> <translation id="6700713906295497288">Дугме IME менија</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Вишеструко пријављивање</translation> <translation id="8000066093800657092">Нема мреже</translation> <translation id="8029241286966751120">Лупа за цео екран је омогућена. Притисните Ctrl + тастер за претрагу + M поново да бисте је искључили.</translation> +<translation id="8030169304546394654">Веза је прекинута</translation> <translation id="8054466585765276473">Израчунавање времена трајања батерије.</translation> <translation id="8061464966246066292">Високи контраст</translation> <translation id="8098591350844501178">Заустави пребацивање екрана на <ph name="RECEIVER_NAME" /></translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Брзо покретање</translation> <translation id="8995603266996330174">Управља <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Доступно је ажурирање за Adobe Flash Player</translation> +<translation id="9056839673611986238">Уређај ће бити враћен на ранију верзију</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Микрофон се користи.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Пријавите још једног корисника...</translation> <translation id="9201131092683066720">Батерија је <ph name="PERCENTAGE" />% пуна.</translation> <translation id="9210037371811586452">Излазак из режима спојених радних површина</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Подеси позадину</translation> <translation id="923686485342484400">Двапут притисните Control Shift Q да бисте се одјавили.</translation> <translation id="945522503751344254">Пошаљи повратне информације</translation>
diff --git a/ash/strings/ash_strings_sv.xtb b/ash/strings/ash_strings_sv.xtb index c114eb2..1fafcc2b 100644 --- a/ash/strings/ash_strings_sv.xtb +++ b/ash/strings/ash_strings_sv.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">Multiinloggning</translation> <translation id="8000066093800657092">Inget nätverk</translation> <translation id="8029241286966751120">Helskärmsförstoring har aktiverats. Tryck på Ctrl + Sök + M igen om du vill inaktivera funktionen.</translation> +<translation id="8030169304546394654">Frånkopplad</translation> <translation id="8054466585765276473">Batteritiden beräknas.</translation> <translation id="8061464966246066292">Hög kontrast</translation> <translation id="8098591350844501178">Sluta casta skärmen till <ph name="RECEIVER_NAME" /></translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">Logga in med en annan användare ...</translation> <translation id="9201131092683066720">Batteriet är fullt till <ph name="PERCENTAGE" /> %.</translation> <translation id="9210037371811586452">Enhetligt skrivbordsläge avslutas</translation> -<translation id="921331154633982721"><ph name="LABEL" /> – <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Ange bakgrund</translation> <translation id="923686485342484400">Tryck på Control + skift + Q två gånger om du vill logga ut.</translation> <translation id="945522503751344254">Skicka synpunkter</translation>
diff --git a/ash/strings/ash_strings_sw.xtb b/ash/strings/ash_strings_sw.xtb index 707c131..0cc866e 100644 --- a/ash/strings/ash_strings_sw.xtb +++ b/ash/strings/ash_strings_sw.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Uwezo wa kuingia katika akaunti nyingi kwa wakati mmoja</translation> <translation id="8000066093800657092">Hakuna mtandao</translation> <translation id="8029241286966751120">Umewashwa Kikuzaji cha Skrini nzima . Bonyeza Ctrl+Search+M tena ili ukizime.</translation> +<translation id="8030169304546394654">Hujaunganishwa</translation> <translation id="8054466585765276473">Inakokotoa muda wa betri.</translation> <translation id="8061464966246066292">Kilinganushi kikubwa</translation> <translation id="8098591350844501178">Acha kutuma skrini kwenye <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Ongeza akaunti nyingine...</translation> <translation id="9201131092683066720">Betri imejaa <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Mfumo unaondoka kwenye hali ya eneo-kazi lililounganishwa</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Weka mandhari</translation> <translation id="923686485342484400">Bonyeza Control Shift Q mara mbili ili kuondoka katika akaunti.</translation> <translation id="945522503751344254">Tuma maoni</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb index a16adea5..18d7ce7 100644 --- a/ash/strings/ash_strings_ta.xtb +++ b/ash/strings/ash_strings_ta.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">பல உள்நுழைவு</translation> <translation id="8000066093800657092">நெட்வொர்க் இல்லை</translation> <translation id="8029241286966751120">முழுத்திரைப் பெரிதாக்கி இயக்கப்பட்டுள்ளது. அதை முடக்க, Ctrl+Search+Mமை மீண்டும் அழுத்தவும்.</translation> +<translation id="8030169304546394654">துண்டிக்கப்பட்டது</translation> <translation id="8054466585765276473">பேட்டரி நேரத்தைக் கணக்கிடுகிறது.</translation> <translation id="8061464966246066292">உயர் மாறுபாடு</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" />க்குத் திரையை அனுப்புவதை நிறுத்து</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">வேறொருவராக உள்நுழை...</translation> <translation id="9201131092683066720">பேட்டரி <ph name="PERCENTAGE" />% நிரம்பியது.</translation> <translation id="9210037371811586452">ஒன்றிணைந்த டெஸ்க்டாப் பயன்முறையிலிருந்து வெளியேறுகிறது</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">வால்பேப்பரை அமை</translation> <translation id="923686485342484400">வெளியேற Control Shift Q ஐ இருமுறை அழுத்தவும்.</translation> <translation id="945522503751344254">பின்னூட்டம் அனுப்புக</translation>
diff --git a/ash/strings/ash_strings_te.xtb b/ash/strings/ash_strings_te.xtb index 13018ea..beb5ac16 100644 --- a/ash/strings/ash_strings_te.xtb +++ b/ash/strings/ash_strings_te.xtb
@@ -192,6 +192,7 @@ <translation id="4544944664594876241">స్క్రీన్ని లాక్ చేసే సత్వరమార్గం మార్చబడింది. దయచేసి <ph name="OLD_SHORTCUT" />కి బదులుగా <ph name="NEW_SHORTCUT" />ని ఉపయోగించండి.</translation> <translation id="4564869809620998694">ఫాంట్ సేవ</translation> <translation id="4570957409596482333">వినడానికి ఎంచుకోండి బటన్</translation> +<translation id="4585337515783392668">తెలియని రిసీవర్లో ప్రసారం చేయడాన్ని ఆపివేయి</translation> <translation id="4628757576491864469">పరికరాలు</translation> <translation id="4659419629803378708">ChromeVox ప్రారంభించబడింది</translation> <translation id="4734965478015604180">అడ్డంగా ఉంది</translation> @@ -238,6 +239,7 @@ <translation id="5805697420284793859">విండో మేనేజర్</translation> <translation id="5820394555380036790">Chromium OS</translation> <translation id="5832805196449965646">వ్యక్తిని జోడించు</translation> +<translation id="5837036133683224804"><ph name="RECEIVER_NAME" />లో <ph name="ROUTE_TITLE" /> ఆపివేయి</translation> <translation id="5860033963881614850">ఆఫ్ అయ్యింది</translation> <translation id="5895138241574237353">మళ్ళీ ప్రారంభించు</translation> <translation id="5901316534475909376">Shift+Esc</translation> @@ -274,6 +276,7 @@ <translation id="639644700271529076">CAPS LOCK ఆపివేయబడింది</translation> <translation id="6406704438230478924">altgr</translation> <translation id="643147933154517414">పూర్తయింది</translation> +<translation id="6445835306623867477"><ph name="ROUTE_TITLE" />లో <ph name="RECEIVER_NAME" /></translation> <translation id="6452181791372256707">తిరస్కరించు</translation> <translation id="6453179446719226835">భాష మార్చబడింది</translation> <translation id="6459472438155181876"><ph name="DISPLAY_NAME" />కు స్క్రీన్ను విస్తరిస్తోంది</translation> @@ -355,6 +358,7 @@ <translation id="7994370417837006925">బహుళ సైన్-ఇన్</translation> <translation id="8000066093800657092">ఏ నెట్వర్క్ లేదు</translation> <translation id="8029241286966751120">పూర్తి స్క్రీన్ మాగ్నిఫైయర్ ప్రారంభించబడింది. దాన్ని టోగుల్ ఆఫ్ చేయడానికి మళ్లీ Ctrl+Search+Mని నొక్కండి.</translation> +<translation id="8030169304546394654">డిస్కనెక్ట్ చెయ్యబడింది</translation> <translation id="8054466585765276473">బ్యాటరీ సమయాన్ని లెక్కిస్తోంది.</translation> <translation id="8061464966246066292">అధిక కాంట్రాస్ట్</translation> <translation id="8098591350844501178"><ph name="RECEIVER_NAME" />కి స్క్రీన్ను ప్రసారం చేయడాన్ని ఆపివేయి</translation> @@ -370,6 +374,7 @@ <translation id="8351131234907093545">గమనికను సృష్టించండి</translation> <translation id="8392451568018454956"><ph name="USER_EMAIL_ADDRESS" /> కోసం ఎంపికల మెను</translation> <translation id="8406981827175133772">పూర్తి స్క్రీన్ మాగ్నిఫైయర్</translation> +<translation id="8427213022735114808">మీరు రాయాలనుకునేది Googleకి చెబితే చాలు వెంటనే వచన రూపంలోకి మారుస్తుంది.</translation> <translation id="8428213095426709021">సెట్టింగ్లు</translation> <translation id="8431190899827883166">నొక్కినవి చూపు</translation> <translation id="8433186206711564395">నెట్వర్క్ సెట్టింగ్లు</translation> @@ -411,10 +416,10 @@ <translation id="9111102763498581341">అన్లాక్ చెయ్యి</translation> <translation id="9151726767154816831">నవీకరించడానికి పునఃప్రారంభించి, పవర్వాష్ చేయండి</translation> <translation id="9179259655489829027">ఈ ఫీచర్ ద్వారా పాస్వర్డ్ అవసరం లేకుండానే మీరు సైన్ ఇన్ చేసిన ఏ వినియోగదారునైనా త్వరగా యాక్సెస్ చేయగలుగుతారు. ఈ ఫీచర్ను మీరు విశ్వసించే ఖాతాలతో మాత్రమే ఉపయోగించండి.</translation> +<translation id="9193626018745640770">తెలియని రిసీవర్లో ప్రసారం చేస్తోంది</translation> <translation id="9194617393863864469">మరొక వినియోగదారుగా సైన్ ఇన్ చేయండి...</translation> <translation id="9201131092683066720">బ్యాటరీ <ph name="PERCENTAGE" />% నిండింది.</translation> <translation id="9210037371811586452">ఏకీకృత డెస్క్టాప్ మోడ్ నుండి నిష్క్రమిస్తోంది</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">వాల్పేపర్ను సెట్ చేయండి</translation> <translation id="923686485342484400">సైన్ అవుట్ చేయడానికి Control Shift Qను రెండుసార్లు నొక్కండి.</translation> <translation id="945522503751344254">అభిప్రాయాన్ని పంపండి</translation>
diff --git a/ash/strings/ash_strings_th.xtb b/ash/strings/ash_strings_th.xtb index 286b82fd..17c346d 100644 --- a/ash/strings/ash_strings_th.xtb +++ b/ash/strings/ash_strings_th.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">การลงชื่อเข้าสู่ระบบพร้อมกันหลายบัญชี</translation> <translation id="8000066093800657092">ไม่มีเครือข่าย</translation> <translation id="8029241286966751120">เปิดใช้แว่นขยายทั้งหน้าจอแล้ว กด Ctrl+Search+M อีกครั้งเพื่อสลับเป็นปิด</translation> +<translation id="8030169304546394654">ยกเลิกการเชื่อมต่อแล้ว</translation> <translation id="8054466585765276473">กำลังคำนวณเวลาใช้งานแบตเตอรี่</translation> <translation id="8061464966246066292">ความคมชัดสูง</translation> <translation id="8098591350844501178">หยุดแคสต์หน้าจอไปยัง <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">ลงชื่อเข้าใช้ด้วยชื่อผู้ใช้อื่น...</translation> <translation id="9201131092683066720">มีแบตเตอรี่ <ph name="PERCENTAGE" />%</translation> <translation id="9210037371811586452">กำลังออกจากโหมดเดสก์ท็อปแบบรวมหลายหน้าจอ</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">ตั้งค่าวอลเปเปอร์</translation> <translation id="923686485342484400">กด Control Shift Q 2 ครั้งเพื่อออกจากระบบ</translation> <translation id="945522503751344254">ส่งความคิดเห็น</translation>
diff --git a/ash/strings/ash_strings_tr.xtb b/ash/strings/ash_strings_tr.xtb index 909f791c..de3541e 100644 --- a/ash/strings/ash_strings_tr.xtb +++ b/ash/strings/ash_strings_tr.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Çoklu oturum açma</translation> <translation id="8000066093800657092">Ağ yok</translation> <translation id="8029241286966751120">Tam Ekran Büyüteci etkinleştirildi. Kapatmak için tekrar Ctrl+Arama+H tuşlarına basın.</translation> +<translation id="8030169304546394654">Bağlı değil</translation> <translation id="8054466585765276473">Pilin süresi hesaplanıyor.</translation> <translation id="8061464966246066292">Yüksek kontrast</translation> <translation id="8098591350844501178">Ekranın <ph name="RECEIVER_NAME" /> cihazına yayınını durdur</translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Başka bir kullanıcı olarak oturum aç...</translation> <translation id="9201131092683066720">Pil %<ph name="PERCENTAGE" /> dolu.</translation> <translation id="9210037371811586452">Birleşik masaüstü modundan çıkılıyor</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Duvar kağıdını ayarla</translation> <translation id="923686485342484400">Oturumu kapatmak için Control ÜstKrktr Q tuşlarına iki defa basın.</translation> <translation id="945522503751344254">Geri bildirim gönder</translation>
diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb index f5c4187..2d50fb9 100644 --- a/ash/strings/ash_strings_uk.xtb +++ b/ash/strings/ash_strings_uk.xtb
@@ -46,6 +46,7 @@ <translation id="1882897271359938046">Дзеркалювання на <ph name="DISPLAY_NAME" /></translation> <translation id="1885785240814121742">Розблоковуйте відбитком пальця</translation> <translation id="1919743966458266018">Комбінація клавіш для запуску Диспетчера завдань змінилася. Тепер це <ph name="NEW_SHORTCUT" />, а не <ph name="OLD_SHORTCUT" />.</translation> +<translation id="1923508880661655826">Коли ви вийдете з облікового запису, дані сеансу буде очищено. <ph name="LEARN_MORE" /></translation> <translation id="1923539912171292317">Автоматичні кліки</translation> <translation id="1928739107511554905">Щоб завантажити оновлення, перезапустіть Chromebook із під’єднаною клавіатурою, використовуючи сенсорний екран.</translation> <translation id="1942830294380034169">Кнопка додаткового меню</translation> @@ -206,7 +207,9 @@ <translation id="4905614135390995787">Комбінація клавіш для керування режимом високого контрасту змінилася. Тепер це <ph name="NEW_SHORTCUT" />, а не <ph name="OLD_SHORTCUT" />.</translation> <translation id="4917385247580444890">Потужний</translation> <translation id="4918086044614829423">Прийняти</translation> +<translation id="4924411785043111640">Перезапустити й скинути</translation> <translation id="4961318399572185831">Трансляція екрана</translation> +<translation id="5069971504769299223">Адміністратор пристрою може відстежувати вашу активність.</translation> <translation id="5136175204352732067">Під’єднано іншу клавіатуру</translation> <translation id="5168181903108465623">Доступні пристрої для трансляції</translation> <translation id="5207949376430453814">Підсвічувати місце введення тексту</translation> @@ -220,6 +223,7 @@ <translation id="544691375626129091">Усіх доступних користувачів уже додано до цього сеансу.</translation> <translation id="5457599981699367932">Переглядати в режимі гостя</translation> <translation id="54609108002486618">Керований</translation> +<translation id="5496819745535887422">Адміністратор відновлює пристрій до попереднього стану. Після перезапуску всі дані буде видалено.</translation> <translation id="553675580533261935">Завершення сеансу</translation> <translation id="5537725057119320332">Акторський склад</translation> <translation id="5548285847212963613">За допомогою розширення <ph name="EXTENSION_NAME" /> можна під’єднуватися до цієї мережі.</translation> @@ -290,6 +294,7 @@ <translation id="6627638273713273709">Search+Shift+K</translation> <translation id="6650933572246256093">Пристрою Bluetooth "<ph name="DEVICE_NAME" />" потрібен дозвіл на підключення. Введіть на пристрої цей ключ доступу: <ph name="PASSKEY" /></translation> <translation id="6657585470893396449">Пароль</translation> +<translation id="6687966522050791666">Вибрати мову й спосіб введення</translation> <translation id="6691659475504239918">Search+Shift+H</translation> <translation id="6696025732084565524">Змінну клавіатуру потрібно оновити</translation> <translation id="6700713906295497288">Кнопка меню IME</translation> @@ -357,6 +362,7 @@ <translation id="7994370417837006925">Паралельний вхід</translation> <translation id="8000066093800657092">Немає мережі</translation> <translation id="8029241286966751120">Увімкнено лупу для всього екрана. Щоб вимкнути її, знову натисніть комбінацію Ctrl + клавіша пошуку + M.</translation> +<translation id="8030169304546394654">Роз'єднано</translation> <translation id="8054466585765276473">Обчислення часу роботи акумулятора.</translation> <translation id="8061464966246066292">Високий контраст</translation> <translation id="8098591350844501178">Зупинити трансляцію екрана на пристрій "<ph name="RECEIVER_NAME" />"</translation> @@ -406,6 +412,7 @@ <translation id="8984179138335769204">Швидкий запуск</translation> <translation id="8995603266996330174">Керується доменом <ph name="DOMAIN" /></translation> <translation id="9029474291399787231">Доступне оновлення Adobe Flash Player</translation> +<translation id="9056839673611986238">Пристрій буде відновлено до попереднього стану</translation> <translation id="9074739597929991885">Bluetooth</translation> <translation id="9079731690316798640">Wi-Fi: <ph name="ADDRESS" /></translation> <translation id="9080206825613744995">Мікрофон використовується.</translation> @@ -418,7 +425,6 @@ <translation id="9194617393863864469">Увійти як інший користувач…</translation> <translation id="9201131092683066720">Акумулятор заряджений на <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Вихід з уніфікованого режиму робочого стола</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Вибрати фоновий малюнок</translation> <translation id="923686485342484400">Щоб вийти, двічі натисніть Control Shift Q.</translation> <translation id="945522503751344254">Надіслати відгук</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb index b9119a4..9c9dcb7 100644 --- a/ash/strings/ash_strings_vi.xtb +++ b/ash/strings/ash_strings_vi.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">Đăng nhập nhiều tài khoản</translation> <translation id="8000066093800657092">Không có mạng nào</translation> <translation id="8029241286966751120">Đã bật tính năng Phóng to toàn bộ màn hình. Hãy nhấn lại tổ hợp phím Ctrl+Search+M để tắt tính năng này.</translation> +<translation id="8030169304546394654">Đã ngắt kết nối</translation> <translation id="8054466585765276473">Đang tính toán thời lượng pin.</translation> <translation id="8061464966246066292">Độ tương phản cao</translation> <translation id="8098591350844501178">Dừng truyền màn hình tới <ph name="RECEIVER_NAME" /></translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">Đăng nhập người dùng khác...</translation> <translation id="9201131092683066720">Pin đầy <ph name="PERCENTAGE" />%.</translation> <translation id="9210037371811586452">Đang thoát chế độ màn hình hợp nhất</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">Đặt hình nền</translation> <translation id="923686485342484400">Nhấn Control Shift Q hai lần để đăng xuất.</translation> <translation id="945522503751344254">Gửi phản hồi</translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb index 11be4c8..24eeec9 100644 --- a/ash/strings/ash_strings_zh-CN.xtb +++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -363,6 +363,7 @@ <translation id="7994370417837006925">多帐号登录</translation> <translation id="8000066093800657092">未连接任何网络</translation> <translation id="8029241286966751120">已启用全屏放大镜。再按一次 Ctrl+搜索键+M 组合键即可将其停用。</translation> +<translation id="8030169304546394654">连接已断开</translation> <translation id="8054466585765276473">正在计算续航时间。</translation> <translation id="8061464966246066292">高对比度</translation> <translation id="8098591350844501178">停止将屏幕投射到“<ph name="RECEIVER_NAME" />”</translation> @@ -425,7 +426,6 @@ <translation id="9194617393863864469">登录其他用户帐号…</translation> <translation id="9201131092683066720">电池电量为<ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">正在退出统一桌面模式</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">设置壁纸</translation> <translation id="923686485342484400">连按两次Ctrl+Shift+Q即可退出。</translation> <translation id="945522503751344254">发送反馈</translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb index 226154a0..82e4dc8 100644 --- a/ash/strings/ash_strings_zh-TW.xtb +++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -362,6 +362,7 @@ <translation id="7994370417837006925">多帳戶登入</translation> <translation id="8000066093800657092">沒有網路</translation> <translation id="8029241286966751120">全螢幕放大鏡已啟用。再次按下 Ctrl 鍵 + 搜尋鍵 + M 鍵即可停用。</translation> +<translation id="8030169304546394654">已中斷連線</translation> <translation id="8054466585765276473">正在計算電池使用時間。</translation> <translation id="8061464966246066292">高對比模式</translation> <translation id="8098591350844501178">停止將畫面投放到「<ph name="RECEIVER_NAME" />」</translation> @@ -424,7 +425,6 @@ <translation id="9194617393863864469">登入其他使用者帳戶...</translation> <translation id="9201131092683066720">電池電量為 <ph name="PERCENTAGE" />%。</translation> <translation id="9210037371811586452">退出整合桌面模式</translation> -<translation id="921331154633982721"><ph name="LABEL" /> <ph name="SUBLABEL" /></translation> <translation id="9215934040295798075">設定桌布</translation> <translation id="923686485342484400">按兩下 Ctrl+Shift+Q 鍵即可登出。</translation> <translation id="945522503751344254">提供意見</translation>
diff --git a/ash/system/power/power_button_controller.cc b/ash/system/power/power_button_controller.cc index 3af241c..5521f5da 100644 --- a/ash/system/power/power_button_controller.cc +++ b/ash/system/power/power_button_controller.cc
@@ -14,7 +14,6 @@ #include "ash/public/cpp/shell_window_ids.h" #include "ash/session/session_controller.h" #include "ash/shell.h" -#include "ash/shell_port.h" #include "ash/shutdown_reason.h" #include "ash/system/power/power_button_display_controller.h" #include "ash/system/power/power_button_menu_item_view.h" @@ -164,11 +163,11 @@ Shell::Get()->display_configurator()->AddObserver(this); backlights_forced_off_observer_.Add(backlights_forced_off_setter); Shell::Get()->tablet_mode_controller()->AddObserver(this); - ShellPort::Get()->AddLockStateObserver(this); + Shell::Get()->lock_state_controller()->AddObserver(this); } PowerButtonController::~PowerButtonController() { - ShellPort::Get()->RemoveLockStateObserver(this); + Shell::Get()->lock_state_controller()->RemoveObserver(this); if (Shell::Get()->tablet_mode_controller()) Shell::Get()->tablet_mode_controller()->RemoveObserver(this); Shell::Get()->display_configurator()->RemoveObserver(this);
diff --git a/ash/wm/lock_state_controller.cc b/ash/wm/lock_state_controller.cc index 3ba5c95..d15b12b9e 100644 --- a/ash/wm/lock_state_controller.cc +++ b/ash/wm/lock_state_controller.cc
@@ -97,6 +97,14 @@ Shell::GetPrimaryRootWindow()->GetHost()->RemoveObserver(this); } +void LockStateController::AddObserver(LockStateObserver* observer) { + observers_.AddObserver(observer); +} + +void LockStateController::RemoveObserver(LockStateObserver* observer) { + observers_.RemoveObserver(observer); +} + void LockStateController::StartLockAnimation() { if (animating_lock_) return; @@ -131,8 +139,7 @@ animator_->StartAnimation(kPreLockContainersMask, SessionStateAnimator::ANIMATION_HIDE_IMMEDIATELY, SessionStateAnimator::ANIMATION_SPEED_IMMEDIATE); - ShellPort::Get()->OnLockStateEvent( - LockStateObserver::EVENT_LOCK_ANIMATION_STARTED); + OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED); Shell::Get()->session_controller()->LockScreen(); } @@ -357,8 +364,7 @@ PreLockAnimation(SessionStateAnimator::ANIMATION_SPEED_MOVE_WINDOWS, request_lock_on_completion); DispatchCancelMode(); - ShellPort::Get()->OnLockStateEvent( - LockStateObserver::EVENT_LOCK_ANIMATION_STARTED); + OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_STARTED); } void LockStateController::StartCancellablePreLockAnimation() { @@ -367,8 +373,7 @@ VLOG(1) << "StartCancellablePreLockAnimation"; PreLockAnimation(SessionStateAnimator::ANIMATION_SPEED_UNDOABLE, true); DispatchCancelMode(); - ShellPort::Get()->OnLockStateEvent( - LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED); + OnLockStateEvent(LockStateObserver::EVENT_PRELOCK_ANIMATION_STARTED); } void LockStateController::PreLockAnimation( @@ -519,8 +524,7 @@ animating_lock_ = false; post_lock_immediate_animation_ = false; VLOG(1) << "PostLockAnimationFinished"; - ShellPort::Get()->OnLockStateEvent( - LockStateObserver::EVENT_LOCK_ANIMATION_FINISHED); + OnLockStateEvent(LockStateObserver::EVENT_LOCK_ANIMATION_FINISHED); if (!lock_screen_displayed_callback_.is_null()) std::move(lock_screen_displayed_callback_).Run(); @@ -584,4 +588,9 @@ } } +void LockStateController::OnLockStateEvent(LockStateObserver::EventType event) { + for (auto& observer : observers_) + observer.OnLockStateEvent(event); +} + } // namespace ash
diff --git a/ash/wm/lock_state_controller.h b/ash/wm/lock_state_controller.h index 5e57e139..c7c883a 100644 --- a/ash/wm/lock_state_controller.h +++ b/ash/wm/lock_state_controller.h
@@ -10,9 +10,11 @@ #include "ash/ash_export.h" #include "ash/session/session_observer.h" #include "ash/shutdown_reason.h" +#include "ash/wm/lock_state_observer.h" #include "ash/wm/session_state_animator.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "base/observer_list.h" #include "base/optional.h" #include "base/time/time.h" #include "base/timer/elapsed_timer.h" @@ -57,6 +59,9 @@ explicit LockStateController(ShutdownController* shutdown_controller); ~LockStateController() override; + void AddObserver(LockStateObserver* observer); + void RemoveObserver(LockStateObserver* observer); + // Starts locking (with slow animation) that can be cancelled. void StartLockAnimation(); @@ -189,6 +194,9 @@ ash::SessionStateAnimator::AnimationSpeed speed, SessionStateAnimator::AnimationSequence* animation_sequence); + // Notifies observers. + void OnLockStateEvent(LockStateObserver::EventType event); + std::unique_ptr<SessionStateAnimator> animator_; // Current lock status. @@ -243,6 +251,8 @@ ScopedSessionObserver scoped_session_observer_; + base::ObserverList<LockStateObserver> observers_; + base::WeakPtrFactory<LockStateController> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(LockStateController);
diff --git a/base/BUILD.gn b/base/BUILD.gn index f1919cd63..ee31993 100644 --- a/base/BUILD.gn +++ b/base/BUILD.gn
@@ -550,8 +550,6 @@ "memory/weak_ptr.h", "memory/writable_shared_memory_region.cc", "memory/writable_shared_memory_region.h", - "message_loop/incoming_task_queue.cc", - "message_loop/incoming_task_queue.h", "message_loop/message_loop.cc", "message_loop/message_loop.h", "message_loop/message_loop_current.cc", @@ -574,6 +572,8 @@ "message_loop/message_pump_mac.mm", "message_loop/message_pump_win.cc", "message_loop/message_pump_win.h", + "message_loop/pending_task_queue.cc", + "message_loop/pending_task_queue.h", "message_loop/sequenced_task_source.h", "message_loop/timer_slack.h", "metrics/bucket_ranges.cc",
diff --git a/base/bind_internal.h b/base/bind_internal.h index 23c4463..0a90c7db 100644 --- a/base/bind_internal.h +++ b/base/bind_internal.h
@@ -736,9 +736,9 @@ // Used by ApplyCancellationTraits below. template <typename Functor, typename BoundArgsTuple, size_t... indices> -bool ApplyCancellationTraitsImpl(const Functor& functor, - const BoundArgsTuple& bound_args, - std::index_sequence<indices...>) { +bool ApplyCancellationTraitsIsCancelledImpl(const Functor& functor, + const BoundArgsTuple& bound_args, + std::index_sequence<indices...>) { return CallbackCancellationTraits<Functor, BoundArgsTuple>::IsCancelled( functor, std::get<indices>(bound_args)...); } @@ -746,11 +746,32 @@ // Relays |base| to corresponding CallbackCancellationTraits<>::Run(). Returns // true if the callback |base| represents is canceled. template <typename BindStateType> -bool ApplyCancellationTraits(const BindStateBase* base) { +bool ApplyCancellationTraitsIsCancelled(const BindStateBase* base) { const BindStateType* storage = static_cast<const BindStateType*>(base); static constexpr size_t num_bound_args = std::tuple_size<decltype(storage->bound_args_)>::value; - return ApplyCancellationTraitsImpl( + return ApplyCancellationTraitsIsCancelledImpl( + storage->functor_, storage->bound_args_, + std::make_index_sequence<num_bound_args>()); +}; + +// Used by ApplyCancellationTraits below. +template <typename Functor, typename BoundArgsTuple, size_t... indices> +bool ApplyCancellationTraitsMaybeValidImpl(const Functor& functor, + const BoundArgsTuple& bound_args, + std::index_sequence<indices...>) { + return CallbackCancellationTraits<Functor, BoundArgsTuple>::MaybeValid( + functor, std::get<indices>(bound_args)...); +} + +// Relays |base| to corresponding CallbackCancellationTraits<>::Run(). Returns +// false if the callback |base| represents is guaranteed to be cancelled. +template <typename BindStateType> +bool ApplyCancellationTraitsMaybeValid(const BindStateBase* base) { + const BindStateType* storage = static_cast<const BindStateType*>(base); + static constexpr size_t num_bound_args = + std::tuple_size<decltype(storage->bound_args_)>::value; + return ApplyCancellationTraitsMaybeValidImpl( storage->functor_, storage->bound_args_, std::make_index_sequence<num_bound_args>()); }; @@ -788,7 +809,8 @@ ForwardBoundArgs&&... bound_args) : BindStateBase(invoke_func, &Destroy, - &ApplyCancellationTraits<BindState>), + &ApplyCancellationTraitsIsCancelled<BindState>, + &ApplyCancellationTraitsMaybeValid<BindState>), functor_(std::forward<ForwardFunctor>(functor)), bound_args_(std::forward<ForwardBoundArgs>(bound_args)...) { DCHECK(!IsNull(functor_)); @@ -951,6 +973,13 @@ const Args&...) { return !receiver; } + + template <typename Receiver, typename... Args> + static bool MaybeValid(const Functor&, + const Receiver& receiver, + const Args&...) { + return receiver.MaybeValid(); + } }; // Specialization for a nested bind. @@ -963,6 +992,11 @@ static bool IsCancelled(const Functor& functor, const BoundArgs&...) { return functor.IsCancelled(); } + + template <typename Functor> + static bool MaybeValid(const Functor& functor, const BoundArgs&...) { + return functor.MaybeValid(); + } }; template <typename Signature, typename... BoundArgs> @@ -974,6 +1008,11 @@ static bool IsCancelled(const Functor& functor, const BoundArgs&...) { return functor.IsCancelled(); } + + template <typename Functor> + static bool MaybeValid(const Functor& functor, const BoundArgs&...) { + return functor.MaybeValid(); + } }; // Returns a RunType of bound functor.
diff --git a/base/callback_internal.cc b/base/callback_internal.cc index dd000ca..991ae9f 100644 --- a/base/callback_internal.cc +++ b/base/callback_internal.cc
@@ -15,6 +15,10 @@ return false; } +bool ReturnTrue(const BindStateBase*) { + return true; +} + } // namespace void BindStateBaseRefCountTraits::Destruct(const BindStateBase* bind_state) { @@ -23,15 +27,17 @@ BindStateBase::BindStateBase(InvokeFuncStorage polymorphic_invoke, void (*destructor)(const BindStateBase*)) - : BindStateBase(polymorphic_invoke, destructor, &ReturnFalse) { + : BindStateBase(polymorphic_invoke, destructor, &ReturnFalse, &ReturnTrue) { } BindStateBase::BindStateBase(InvokeFuncStorage polymorphic_invoke, void (*destructor)(const BindStateBase*), - bool (*is_cancelled)(const BindStateBase*)) + bool (*is_cancelled)(const BindStateBase*), + bool (*maybe_valid)(const BindStateBase*)) : polymorphic_invoke_(polymorphic_invoke), destructor_(destructor), - is_cancelled_(is_cancelled) {} + is_cancelled_(is_cancelled), + maybe_valid_(maybe_valid) {} CallbackBase& CallbackBase::operator=(CallbackBase&& c) noexcept = default; CallbackBase::CallbackBase(const CallbackBaseCopyable& c) @@ -61,6 +67,11 @@ return bind_state_->IsCancelled(); } +bool CallbackBase::MaybeValid() const { + DCHECK(bind_state_); + return bind_state_->MaybeValid(); +} + bool CallbackBase::EqualsInternal(const CallbackBase& other) const { return bind_state_ == other.bind_state_; }
diff --git a/base/callback_internal.h b/base/callback_internal.h index 1215e3e..c39d054 100644 --- a/base/callback_internal.h +++ b/base/callback_internal.h
@@ -57,7 +57,8 @@ void (*destructor)(const BindStateBase*)); BindStateBase(InvokeFuncStorage polymorphic_invoke, void (*destructor)(const BindStateBase*), - bool (*is_cancelled)(const BindStateBase*)); + bool (*is_cancelled)(const BindStateBase*), + bool (*maybe_valid)(const BindStateBase*)); ~BindStateBase() = default; @@ -76,6 +77,8 @@ return is_cancelled_(this); } + bool MaybeValid() const { return maybe_valid_(this); } + // In C++, it is safe to cast function pointers to function pointers of // another type. It is not okay to use void*. We create a InvokeFuncStorage // that that can store our function pointer, and then cast it back to @@ -84,7 +87,9 @@ // Pointer to a function that will properly destroy |this|. void (*destructor_)(const BindStateBase*); + bool (*is_cancelled_)(const BindStateBase*); + bool (*maybe_valid_)(const BindStateBase*); DISALLOW_COPY_AND_ASSIGN(BindStateBase); }; @@ -110,8 +115,16 @@ // Returns true if the callback invocation will be nop due to an cancellation. // It's invalid to call this on uninitialized callback. + // + // Must be called on the Callback's destination sequence. bool IsCancelled() const; + // If this returns false, the callback invocation will be a nop due to a + // cancellation. This may(!) still return true, even on a cancelled callback. + // + // This function is thread-safe. + bool MaybeValid() const; + // Returns the Callback into an uninitialized state. void Reset();
diff --git a/base/callback_unittest.cc b/base/callback_unittest.cc index c07d3ee..130e44f 100644 --- a/base/callback_unittest.cc +++ b/base/callback_unittest.cc
@@ -10,6 +10,8 @@ #include "base/callback_helpers.h" #include "base/callback_internal.h" #include "base/memory/ref_counted.h" +#include "base/test/test_timeouts.h" +#include "base/threading/thread.h" #include "testing/gtest/include/gtest/gtest.h" namespace base { @@ -22,7 +24,8 @@ // chance of colliding with another instantiation and breaking the // one-definition-rule. struct FakeBindState : internal::BindStateBase { - FakeBindState() : BindStateBase(&NopInvokeFunc, &Destroy, &IsCancelled) {} + FakeBindState() + : BindStateBase(&NopInvokeFunc, &Destroy, &IsCancelled, &MaybeValid) {} private: ~FakeBindState() = default; @@ -32,6 +35,7 @@ static bool IsCancelled(const internal::BindStateBase*) { return false; } + static bool MaybeValid(const internal::BindStateBase*) { return true; } }; namespace { @@ -152,6 +156,62 @@ ASSERT_FALSE(cb3); } +TEST_F(CallbackTest, MaybeValidReturnsTrue) { + Callback<void()> cb(BindRepeating([]() {})); + // By default, MaybeValid() just returns true all the time. + EXPECT_TRUE(cb.MaybeValid()); + cb.Run(); + EXPECT_TRUE(cb.MaybeValid()); +} + +// WeakPtr detection in BindRepeating() requires a method, not just any +// function. +class ClassWithAMethod { + public: + void TheMethod() {} +}; + +TEST_F(CallbackTest, MaybeValidInvalidateWeakPtrsOnSameSequence) { + ClassWithAMethod obj; + WeakPtrFactory<ClassWithAMethod> factory(&obj); + WeakPtr<ClassWithAMethod> ptr = factory.GetWeakPtr(); + + Callback<void()> cb(BindRepeating(&ClassWithAMethod::TheMethod, ptr)); + EXPECT_TRUE(cb.MaybeValid()); + + factory.InvalidateWeakPtrs(); + // MaybeValid() should be false because InvalidateWeakPtrs() was called on + // the same thread. + EXPECT_FALSE(cb.MaybeValid()); +} + +TEST_F(CallbackTest, MaybeValidInvalidateWeakPtrsOnOtherSequence) { + ClassWithAMethod obj; + WeakPtrFactory<ClassWithAMethod> factory(&obj); + WeakPtr<ClassWithAMethod> ptr = factory.GetWeakPtr(); + + Callback<void()> cb(BindRepeating(&ClassWithAMethod::TheMethod, ptr)); + EXPECT_TRUE(cb.MaybeValid()); + + Thread other_thread("other_thread"); + other_thread.StartAndWaitForTesting(); + other_thread.task_runner()->PostTask( + FROM_HERE, + BindOnce( + [](Callback<void()> cb) { + // Check that MaybeValid() _eventually_ returns false. + const TimeDelta timeout = TestTimeouts::tiny_timeout(); + const TimeTicks begin = TimeTicks::Now(); + while (cb.MaybeValid() && (TimeTicks::Now() - begin) < timeout) + PlatformThread::YieldCurrentThread(); + EXPECT_FALSE(cb.MaybeValid()); + }, + cb)); + factory.InvalidateWeakPtrs(); + // |other_thread|'s destructor will join, ensuring we wait for the task to be + // run. +} + class CallbackOwner : public base::RefCounted<CallbackOwner> { public: explicit CallbackOwner(bool* deleted) {
diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc index 3793fa2..08492702 100644 --- a/base/message_loop/message_loop.cc +++ b/base/message_loop/message_loop.cc
@@ -273,6 +273,11 @@ task_observers_.RemoveObserver(task_observer); } +void MessageLoop::SetAddQueueTimeToTasks(bool enable) { + DCHECK_CALLED_ON_VALID_THREAD(bound_thread_checker_); + underlying_task_runner_->SetAddQueueTimeToTasks(enable); +} + bool MessageLoop::IsIdleForTesting() { // Have unprocessed tasks? (this reloads the work queue if necessary) if (sequenced_task_source_->HasTasks())
diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h index 1418c133..52b4743 100644 --- a/base/message_loop/message_loop.h +++ b/base/message_loop/message_loop.h
@@ -14,9 +14,9 @@ #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/memory/scoped_refptr.h" -#include "base/message_loop/incoming_task_queue.h" #include "base/message_loop/message_loop_current.h" #include "base/message_loop/message_pump.h" +#include "base/message_loop/pending_task_queue.h" #include "base/message_loop/timer_slack.h" #include "base/observer_list.h" #include "base/pending_task.h" @@ -182,6 +182,10 @@ void AddTaskObserver(TaskObserver* task_observer); void RemoveTaskObserver(TaskObserver* task_observer); + // When this functionality is enabled, the queue time will be recorded for + // posted tasks. + void SetAddQueueTimeToTasks(bool enable); + // Returns true if the message loop is idle (ignoring delayed tasks). This is // the same condition which triggers DoWork() to return false: i.e. // out of tasks which can be processed at the current run-level -- there might @@ -318,7 +322,7 @@ // |underlying_task_runner_|. TODO(gab): Make this customizable. SequencedTaskSource* const sequenced_task_source_; - internal::IncomingTaskQueue pending_task_queue_; + internal::PendingTaskQueue pending_task_queue_; // The task runner exposed by this message loop. scoped_refptr<SingleThreadTaskRunner> task_runner_;
diff --git a/base/message_loop/message_loop_current.cc b/base/message_loop/message_loop_current.cc index 4959b70..e69b97e 100644 --- a/base/message_loop/message_loop_current.cc +++ b/base/message_loop/message_loop_current.cc
@@ -74,6 +74,11 @@ current_->RemoveTaskObserver(task_observer); } +void MessageLoopCurrent::SetAddQueueTimeToTasks(bool enable) { + DCHECK_CALLED_ON_VALID_THREAD(current_->bound_thread_checker_); + current_->SetAddQueueTimeToTasks(enable); +} + void MessageLoopCurrent::SetNestableTasksAllowed(bool allowed) { DCHECK_CALLED_ON_VALID_THREAD(current_->bound_thread_checker_); if (allowed) {
diff --git a/base/message_loop/message_loop_current.h b/base/message_loop/message_loop_current.h index 61d1607..2a2e761 100644 --- a/base/message_loop/message_loop_current.h +++ b/base/message_loop/message_loop_current.h
@@ -120,6 +120,10 @@ void AddTaskObserver(TaskObserver* task_observer); void RemoveTaskObserver(TaskObserver* task_observer); + // When this functionality is enabled, the queue time will be recorded for + // posted tasks. + void SetAddQueueTimeToTasks(bool enable); + // Enables or disables the recursive task processing. This happens in the case // of recursive message loops. Some unwanted message loops may occur when // using common controls or printer functions. By default, recursive task
diff --git a/base/message_loop/message_loop_task_runner.cc b/base/message_loop/message_loop_task_runner.cc index 4816a7b..83e5af3b 100644 --- a/base/message_loop/message_loop_task_runner.cc +++ b/base/message_loop/message_loop_task_runner.cc
@@ -107,6 +107,11 @@ DCHECK(success) << "Injected a task in a dead task runner."; } +void MessageLoopTaskRunner::SetAddQueueTimeToTasks(bool enable) { + DCHECK_NE(add_queue_time_to_tasks_, enable); + add_queue_time_to_tasks_ = enable; +} + MessageLoopTaskRunner::~MessageLoopTaskRunner() = default; bool MessageLoopTaskRunner::AddToIncomingQueue(const Location& from_here, @@ -122,6 +127,13 @@ PendingTask pending_task(from_here, std::move(task), CalculateDelayedRuntime(from_here, delay), nestable); + if (add_queue_time_to_tasks_) { + if (pending_task.delayed_run_time.is_null()) { + pending_task.queue_time = base::TimeTicks::Now(); + } else { + pending_task.queue_time = pending_task.delayed_run_time - delay; + } + } #if defined(OS_WIN) // We consider the task needs a high resolution timer if the delay is
diff --git a/base/message_loop/message_loop_task_runner.h b/base/message_loop/message_loop_task_runner.h index 2809730b..37a4de4 100644 --- a/base/message_loop/message_loop_task_runner.h +++ b/base/message_loop/message_loop_task_runner.h
@@ -20,9 +20,8 @@ namespace internal { // A SingleThreadTaskRunner which receives and queues tasks destined to its -// owning MessageLoop (vending them back to its IncomingTaskQueue over the -// SequencedTaskSource interface). It does not manage delays (i.e. tasks -// returned by TakeTask() might have a non-zero delay). +// owning MessageLoop. It does not manage delays (i.e. tasks returned by +// TakeTask() might have a non-zero delay). class BASE_EXPORT MessageLoopTaskRunner : public SingleThreadTaskRunner, public SequencedTaskSource { public: @@ -58,6 +57,10 @@ bool HasTasks() override; void InjectTask(OnceClosure task) override; + // When this functionality is enabled, AddToIncomingQueue() will also add the + // queue time to the task. + void SetAddQueueTimeToTasks(bool enable); + private: friend class RefCountedThreadSafe<MessageLoopTaskRunner>; ~MessageLoopTaskRunner() override; @@ -101,6 +104,9 @@ // The next sequence number to use for delayed tasks. int next_sequence_num_ = 0; + // Whether to add the queue time to tasks. + bool add_queue_time_to_tasks_ = false; + DISALLOW_COPY_AND_ASSIGN(MessageLoopTaskRunner); };
diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc index f0b07d4..cbe24ab 100644 --- a/base/message_loop/message_loop_unittest.cc +++ b/base/message_loop/message_loop_unittest.cc
@@ -2039,8 +2039,8 @@ loop->task_runner()->PostDelayedTask( FROM_HERE, BindOnce(&DestructionObserverProbe::Run, - new DestructionObserverProbe(&task_destroyed, - &destruction_observer_called)), + base::MakeRefCounted<DestructionObserverProbe>( + &task_destroyed, &destruction_observer_called)), kDelay); delete loop; EXPECT_TRUE(observer.task_destroyed_before_message_loop());
diff --git a/base/message_loop/incoming_task_queue.cc b/base/message_loop/pending_task_queue.cc similarity index 69% rename from base/message_loop/incoming_task_queue.cc rename to base/message_loop/pending_task_queue.cc index 850b0cba..634f1601 100644 --- a/base/message_loop/incoming_task_queue.cc +++ b/base/message_loop/pending_task_queue.cc
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "base/message_loop/incoming_task_queue.h" +#include "base/message_loop/pending_task_queue.h" #include <utility> @@ -13,25 +13,25 @@ namespace base { namespace internal { -IncomingTaskQueue::IncomingTaskQueue() = default; +PendingTaskQueue::PendingTaskQueue() = default; -IncomingTaskQueue::~IncomingTaskQueue() = default; +PendingTaskQueue::~PendingTaskQueue() = default; -void IncomingTaskQueue::ReportMetricsOnIdle() const { +void PendingTaskQueue::ReportMetricsOnIdle() const { UMA_HISTOGRAM_COUNTS_1M( "MessageLoop.DelayedTaskQueueForUI.PendingTasksCountOnIdle", delayed_tasks_.Size()); } -IncomingTaskQueue::DelayedQueue::DelayedQueue() { +PendingTaskQueue::DelayedQueue::DelayedQueue() { // The constructing sequence is not necessarily the running sequence, e.g. in // the case of a MessageLoop created unbound. DETACH_FROM_SEQUENCE(sequence_checker_); } -IncomingTaskQueue::DelayedQueue::~DelayedQueue() = default; +PendingTaskQueue::DelayedQueue::~DelayedQueue() = default; -void IncomingTaskQueue::DelayedQueue::Push(PendingTask pending_task) { +void PendingTaskQueue::DelayedQueue::Push(PendingTask pending_task) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); if (pending_task.is_high_res) @@ -40,13 +40,13 @@ queue_.push(std::move(pending_task)); } -const PendingTask& IncomingTaskQueue::DelayedQueue::Peek() { +const PendingTask& PendingTaskQueue::DelayedQueue::Peek() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!queue_.empty()); return queue_.top(); } -PendingTask IncomingTaskQueue::DelayedQueue::Pop() { +PendingTask PendingTaskQueue::DelayedQueue::Pop() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!queue_.empty()); PendingTask delayed_task = std::move(const_cast<PendingTask&>(queue_.top())); @@ -59,7 +59,7 @@ return delayed_task; } -bool IncomingTaskQueue::DelayedQueue::HasTasks() { +bool PendingTaskQueue::DelayedQueue::HasTasks() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); // TODO(robliao): The other queues don't check for IsCancelled(). Should they? while (!queue_.empty() && Peek().task.IsCancelled()) @@ -68,37 +68,37 @@ return !queue_.empty(); } -void IncomingTaskQueue::DelayedQueue::Clear() { +void PendingTaskQueue::DelayedQueue::Clear() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); while (!queue_.empty()) Pop(); } -size_t IncomingTaskQueue::DelayedQueue::Size() const { +size_t PendingTaskQueue::DelayedQueue::Size() const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return queue_.size(); } -IncomingTaskQueue::DeferredQueue::DeferredQueue() { +PendingTaskQueue::DeferredQueue::DeferredQueue() { // The constructing sequence is not necessarily the running sequence, e.g. in // the case of a MessageLoop created unbound. DETACH_FROM_SEQUENCE(sequence_checker_); } -IncomingTaskQueue::DeferredQueue::~DeferredQueue() = default; +PendingTaskQueue::DeferredQueue::~DeferredQueue() = default; -void IncomingTaskQueue::DeferredQueue::Push(PendingTask pending_task) { +void PendingTaskQueue::DeferredQueue::Push(PendingTask pending_task) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); queue_.push(std::move(pending_task)); } -const PendingTask& IncomingTaskQueue::DeferredQueue::Peek() { +const PendingTask& PendingTaskQueue::DeferredQueue::Peek() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!queue_.empty()); return queue_.front(); } -PendingTask IncomingTaskQueue::DeferredQueue::Pop() { +PendingTask PendingTaskQueue::DeferredQueue::Pop() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(!queue_.empty()); PendingTask deferred_task = std::move(queue_.front()); @@ -106,12 +106,12 @@ return deferred_task; } -bool IncomingTaskQueue::DeferredQueue::HasTasks() { +bool PendingTaskQueue::DeferredQueue::HasTasks() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); return !queue_.empty(); } -void IncomingTaskQueue::DeferredQueue::Clear() { +void PendingTaskQueue::DeferredQueue::Clear() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); while (!queue_.empty()) Pop();
diff --git a/base/message_loop/incoming_task_queue.h b/base/message_loop/pending_task_queue.h similarity index 89% rename from base/message_loop/incoming_task_queue.h rename to base/message_loop/pending_task_queue.h index 901fba7..01693181 100644 --- a/base/message_loop/incoming_task_queue.h +++ b/base/message_loop/pending_task_queue.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef BASE_MESSAGE_LOOP_INCOMING_TASK_QUEUE_H_ -#define BASE_MESSAGE_LOOP_INCOMING_TASK_QUEUE_H_ +#ifndef BASE_MESSAGE_LOOP_PENDING_TASK_QUEUE_H_ +#define BASE_MESSAGE_LOOP_PENDING_TASK_QUEUE_H_ #include "base/macros.h" #include "base/pending_task.h" @@ -14,9 +14,7 @@ // Provides storage for tasks deferred by MessageLoop via DelayedQueue and // DeferredQueue. -// TODO(gab): Rename to PendingTaskQueue after landing -// https://crrev.com/1088762. -class IncomingTaskQueue { +class PendingTaskQueue { public: // Provides a read-write task queue. class Queue { @@ -43,8 +41,8 @@ DISALLOW_COPY_AND_ASSIGN(Queue); }; - IncomingTaskQueue(); - ~IncomingTaskQueue(); + PendingTaskQueue(); + ~PendingTaskQueue(); Queue& delayed_tasks() { return delayed_tasks_; } @@ -116,10 +114,10 @@ DelayedQueue delayed_tasks_; DeferredQueue deferred_tasks_; - DISALLOW_COPY_AND_ASSIGN(IncomingTaskQueue); + DISALLOW_COPY_AND_ASSIGN(PendingTaskQueue); }; } // namespace internal } // namespace base -#endif // BASE_MESSAGE_LOOP_INCOMING_TASK_QUEUE_H_ +#endif // BASE_MESSAGE_LOOP_PENDING_TASK_QUEUE_H_
diff --git a/base/pending_task.h b/base/pending_task.h index b71a371..255b348 100644 --- a/base/pending_task.h +++ b/base/pending_task.h
@@ -11,6 +11,7 @@ #include "base/callback.h" #include "base/containers/queue.h" #include "base/location.h" +#include "base/optional.h" #include "base/time/time.h" namespace base { @@ -44,6 +45,10 @@ // The time when the task should be run. base::TimeTicks delayed_run_time; + // The time at which the task was queued. Only set if the task was posted to a + // MessageLoop with SetAddQueueTimeToTasks(true). + Optional<TimeTicks> queue_time; + // Chain of up-to-four symbols of the parent tasks which led to this one being // posted. std::array<const void*, 4> task_backtrace = {};
diff --git a/base/test/BUILD.gn b/base/test/BUILD.gn index a90c42c2..ddede09 100644 --- a/base/test/BUILD.gn +++ b/base/test/BUILD.gn
@@ -418,6 +418,7 @@ testonly = true deps = [ "//base:base_java", + "//base:base_java_test_support", "//testing/android/native_test:native_main_runner_java", "//third_party/android_tools:android_support_annotations_java", "//third_party/jsr-305:jsr_305_javalib",
diff --git a/base/test/scoped_task_environment.cc b/base/test/scoped_task_environment.cc index 3d580b0..24b7ca4 100644 --- a/base/test/scoped_task_environment.cc +++ b/base/test/scoped_task_environment.cc
@@ -190,8 +190,8 @@ // if (task_tracker_->HasIncompleteTasks()) // PlatformThread::Sleep(TimeDelta::FromMilliSeconds(1)); // } - // Challenge: HasMainThreadTasks() requires support for proper - // IncomingTaskQueue::IsIdleForTesting() (check all queues). + // Update: This can likely be done now that MessageLoop::IsIdleForTesting() + // checks all queues. // // Other than that it works because once |task_tracker_->HasIncompleteTasks()| // is false we know for sure that the only thing that can make it true is a
diff --git a/build/config/BUILD.gn b/build/config/BUILD.gn index 997cdc8..b3cb81c 100644 --- a/build/config/BUILD.gn +++ b/build/config/BUILD.gn
@@ -277,7 +277,7 @@ } # Only //build/config/BUILDCONFIG.gn should reference this. -group("executable_and_loadable_module_and_shared_library_deps") { +group("common_deps") { public_deps = [] if (using_sanitizer) { @@ -301,6 +301,27 @@ } } +group("executable_deps") { + public_deps = [ + ":common_deps", + ] + if (export_libcxxabi_from_executables) { + public_deps += [ "//buildtools/third_party/libc++abi" ] + } +} + +group("loadable_module_deps") { + public_deps = [ + ":common_deps", + ] +} + +group("shared_library_deps") { + public_deps = [ + ":common_deps", + ] +} + # Executable configs ----------------------------------------------------------- # Windows linker setup for EXEs and DLLs.
diff --git a/build/config/BUILDCONFIG.gn b/build/config/BUILDCONFIG.gn index 0c1b861f..387fdb2 100644 --- a/build/config/BUILDCONFIG.gn +++ b/build/config/BUILDCONFIG.gn
@@ -529,6 +529,7 @@ "//build/config/compiler:default_optimization", "//build/config/compiler:default_stack_frames", "//build/config/compiler:default_symbols", + "//build/config/compiler:export_dynamic", "//build/config/compiler:no_exceptions", "//build/config/compiler:no_rtti", "//build/config/compiler:runtime_library", @@ -576,10 +577,6 @@ ] } -if (is_desktop_linux) { - default_compiler_configs += [ "//build/config/linux:export_dynamic" ] -} - # Debug/release-related defines. if (is_debug) { default_compiler_configs += [ "//build/config:debug" ] @@ -650,20 +647,20 @@ # # Variables # no_default_deps: If true, no standard dependencies will be added. -foreach(target_type, +foreach(_target_type, [ "executable", "loadable_module", "shared_library", ]) { - template(target_type) { - target(target_type, target_name) { + template(_target_type) { + target(_target_type, target_name) { forward_variables_from(invoker, "*", [ "no_default_deps" ]) if (!defined(deps)) { deps = [] } if (!defined(invoker.no_default_deps) || !invoker.no_default_deps) { - deps += [ "//build/config:executable_and_loadable_module_and_shared_library_deps" ] + deps += [ "//build/config:${_target_type}_deps" ] } } }
diff --git a/build/config/c++/c++.gni b/build/config/c++/c++.gni index 85ffde0..1b94aaa8 100644 --- a/build/config/c++/c++.gni +++ b/build/config/c++/c++.gni
@@ -22,21 +22,16 @@ # expected usage is to set use_custom_libcxx=false and # use_custom_libcxx_for_host=true in the passed in buildargs. use_custom_libcxx_for_host = false - - # ASan, MSan and TSan builds need to override operator new, operator delete, - # and some exception handling symbols, so libc++ must be a shared library to - # prevent duplicate symbol errors when linking. - # Additionally, -fsanitize=vptr requires libc++ to be a shared library - # because the ubsan runtime library that implements -fsanitize=vptr calls - # dynamic_cast with the ABI type info classes, which won't return the right - # answer if each DSO has its own copy of the ABI classes. - libcpp_is_static = !is_component_build && !is_asan && !is_msan && !is_tsan && - !is_ubsan && !is_ubsan_security && !is_ubsan_vptr } use_custom_libcxx = use_custom_libcxx || (use_custom_libcxx_for_host && current_cpu == host_cpu) use_custom_libcxx = use_custom_libcxx && !is_nacl +# libc++abi needs to be exported from executables to be picked up by shared +# libraries on certian instrumented builds. +export_libcxxabi_from_executables = + use_custom_libcxx && !is_component_build && (is_asan || is_ubsan_vptr) + libcxx_prefix = "//buildtools/third_party/libc++/trunk" libcxxabi_prefix = "//buildtools/third_party/libc++abi/trunk"
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index 5871aab..1f7de393 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn
@@ -1631,6 +1631,19 @@ } } +# export_dynamic --------------------------------------------------------------- +# +# Ensures all exported symbols are added to the dynamic symbol table. This is +# necessary to expose Chrome's custom operator new() and operator delete() (and +# other memory-related symbols) to libraries. Otherwise, they might +# (de)allocate memory on a different heap, which would spell trouble if pointers +# to heap-allocated memory are passed over shared library boundaries. +config("export_dynamic") { + if (is_desktop_linux || export_libcxxabi_from_executables) { + ldflags = [ "-rdynamic" ] + } +} + # thin_archive ----------------------------------------------------------------- # # Enables thin archives on posix. Regular archives directly include the object
diff --git a/build/config/gcc/BUILD.gn b/build/config/gcc/BUILD.gn index 614d55dc..14a2ec9 100644 --- a/build/config/gcc/BUILD.gn +++ b/build/config/gcc/BUILD.gn
@@ -106,8 +106,8 @@ ] } else { # See the rpath_for... config above for why this is necessary for component - # builds. Sanitizers use a custom libc++ where this is also necessary. - if (is_component_build || using_sanitizer || !libcpp_is_static) { + # builds. + if (is_component_build) { configs = [ ":rpath_for_built_shared_libraries" ] } if (current_cpu == "mipsel" || current_cpu == "mips64el") {
diff --git a/build/config/posix/BUILD.gn b/build/config/posix/BUILD.gn index 91405fd..43655a6 100644 --- a/build/config/posix/BUILD.gn +++ b/build/config/posix/BUILD.gn
@@ -35,12 +35,12 @@ libs = [] if (use_custom_libcxx) { - if (libcpp_is_static) { + if (!is_component_build) { # Don't leak any symbols on a static build. - defines += [ - "_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS", - "_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS", - ] + defines += [ "_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS" ] + if (!export_libcxxabi_from_executables) { + defines += [ "_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS" ] + } } if (!is_clang) { # Gcc has a built-in abs() definition with default visibility.
diff --git a/build/config/win/BUILD.gn b/build/config/win/BUILD.gn index 02895ad3..5dcc9ef5 100644 --- a/build/config/win/BUILD.gn +++ b/build/config/win/BUILD.gn
@@ -222,7 +222,7 @@ if (use_custom_libcxx) { cflags_cc += [ "-I" + rebase_path("$libcxx_prefix/include", root_build_dir) ] - if (libcpp_is_static) { + if (!is_component_build) { defines += [ "_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS" ] }
diff --git a/cc/animation/scroll_offset_animations_impl.cc b/cc/animation/scroll_offset_animations_impl.cc index 00ce5bf..7c11c2d 100644 --- a/cc/animation/scroll_offset_animations_impl.cc +++ b/cc/animation/scroll_offset_animations_impl.cc
@@ -122,16 +122,25 @@ ElementId element_id, const gfx::Vector2dF& adjustment) { DCHECK(scroll_offset_animation_); - if (element_id != scroll_offset_animation_->element_id()) + if (element_id != scroll_offset_animation_->element_id()) { + TRACE_EVENT_INSTANT0("cc", "no scroll adjustment different element_ids", + TRACE_EVENT_SCOPE_THREAD); return; + } - if (!scroll_offset_animation_->has_element_animations()) + if (!scroll_offset_animation_->has_element_animations()) { + TRACE_EVENT_INSTANT0("cc", "no scroll adjustment no element animation", + TRACE_EVENT_SCOPE_THREAD); return; + } KeyframeModel* keyframe_model = scroll_offset_animation_->GetKeyframeModel(TargetProperty::SCROLL_OFFSET); - if (!keyframe_model) + if (!keyframe_model) { + TRACE_EVENT_INSTANT0("cc", "no scroll adjustment no keyframe model", + TRACE_EVENT_SCOPE_THREAD); return; + } std::unique_ptr<ScrollOffsetAnimationCurve> new_curve = keyframe_model->curve() @@ -151,12 +160,16 @@ // Start a new one with the adjusment. scroll_offset_animation_->AddKeyframeModel(std::move(new_keyframe_model)); + TRACE_EVENT_INSTANT0("cc", "scroll animation adjusted", + TRACE_EVENT_SCOPE_THREAD); } void ScrollOffsetAnimationsImpl::ScrollAnimationAbort(bool needs_completion) { DCHECK(scroll_offset_animation_); scroll_offset_animation_->AbortKeyframeModelsWithProperty( TargetProperty::SCROLL_OFFSET, needs_completion); + TRACE_EVENT_INSTANT1("cc", "ScrollAnimationAbort", TRACE_EVENT_SCOPE_THREAD, + "needs_completion", needs_completion); } void ScrollOffsetAnimationsImpl::NotifyAnimationFinished( @@ -166,15 +179,23 @@ DCHECK_EQ(target_property, TargetProperty::SCROLL_OFFSET); DCHECK(animation_host_->mutator_host_client()); animation_host_->mutator_host_client()->ScrollOffsetAnimationFinished(); + TRACE_EVENT_INSTANT0("cc", "NotifyAnimationFinished", + TRACE_EVENT_SCOPE_THREAD); } void ScrollOffsetAnimationsImpl::ReattachScrollOffsetAnimationIfNeeded( ElementId element_id) { if (scroll_offset_animation_->element_id() != element_id) { - if (scroll_offset_animation_->element_id()) + if (scroll_offset_animation_->element_id()) { + TRACE_EVENT_INSTANT0("cc", "scroll offset animation detached element", + TRACE_EVENT_SCOPE_THREAD); scroll_offset_animation_->DetachElement(); - if (element_id) + } + if (element_id) { + TRACE_EVENT_INSTANT0("cc", "scroll offset animation attached element", + TRACE_EVENT_SCOPE_THREAD); scroll_offset_animation_->AttachElement(element_id); + } } }
diff --git a/cc/layers/surface_layer.cc b/cc/layers/surface_layer.cc index c7b267d1..b2a3e68 100644 --- a/cc/layers/surface_layer.cc +++ b/cc/layers/surface_layer.cc
@@ -72,7 +72,8 @@ // TODO(samans): This was added to fix https://crbug.com/827242. Remove this // once fallback SurfaceIds aren't tied to SurfaceReferences, and // viz::Display can handle missing fallbacks. https://crbug.com/857575 - layer_tree_host()->SetNeedsCommitWithForcedRedraw(); + if (layer_tree_host()) + layer_tree_host()->SetNeedsCommitWithForcedRedraw(); return; }
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.cc b/cc/mojo_embedder/async_layer_tree_frame_sink.cc index 570618e..2445fe6 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.cc +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.cc
@@ -183,18 +183,12 @@ mojo::ScopedSharedBufferHandle buffer, const viz::SharedBitmapId& id) { DCHECK(compositor_frame_sink_ptr_); - // TODO(crbug.com/862584): Try to understand why SharedBitmapIds are being - // registered more than once, if it's happening with a single - // CompositorFrameSink. - CHECK_EQ(registered_bitmaps_.count(id), 0u); - registered_bitmaps_.insert(id); compositor_frame_sink_ptr_->DidAllocateSharedBitmap(std::move(buffer), id); } void AsyncLayerTreeFrameSink::DidDeleteSharedBitmap( const viz::SharedBitmapId& id) { DCHECK(compositor_frame_sink_ptr_); - registered_bitmaps_.erase(id); compositor_frame_sink_ptr_->DidDeleteSharedBitmap(id); }
diff --git a/cc/mojo_embedder/async_layer_tree_frame_sink.h b/cc/mojo_embedder/async_layer_tree_frame_sink.h index bc1db47..28bbfdf 100644 --- a/cc/mojo_embedder/async_layer_tree_frame_sink.h +++ b/cc/mojo_embedder/async_layer_tree_frame_sink.h
@@ -138,11 +138,6 @@ float last_submitted_device_scale_factor_ = 1.f; gfx::Size last_submitted_size_in_pixels_; - // TODO(crbug.com/862584): Try to understand why SharedBitmapIds are being - // registered more than once, if it's happening with a single - // CompositorFrameSink. - base::flat_set<viz::SharedBitmapId> registered_bitmaps_; - base::WeakPtrFactory<AsyncLayerTreeFrameSink> weak_factory_; DISALLOW_COPY_AND_ASSIGN(AsyncLayerTreeFrameSink);
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 6ca45950..fab8210 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc
@@ -3639,6 +3639,8 @@ (std::abs(delta.x()) > kEpsilon || std::abs(delta.y()) > kEpsilon); if (!scroll_animated) { scroll_tree.ScrollBy(scroll_node, delta, active_tree()); + TRACE_EVENT_INSTANT0("cc", "no scroll animation due to small delta", + TRACE_EVENT_SCOPE_THREAD); return false; } @@ -3706,6 +3708,14 @@ scroll_status.thread = SCROLL_IGNORED; scroll_status.main_thread_scrolling_reasons = MainThreadScrollingReason::kNotScrollable; + // Adding NOTREACHED to debug https://crbug.com/797708, based on the + // traces on the bug scrolling gets stuck in a situation where the + // layout_tree_host_impl assumes that there is an ongoing scroll animation + // since scroll_node exists but the + // ScrollOffsetAnimationsImpl::ScrollAnimationUpdateTarget returns false + // since no keyframe_model exists. TODO(sahel):remove this once the issue + // is fixed. + NOTREACHED(); } return scroll_status; } @@ -3758,6 +3768,8 @@ did_scroll_y_for_scroll_gesture_ |= scrolled.y() != 0; if (scrolled == pending_delta) { scroll_animating_latched_element_id_ = scroll_node->element_id; + TRACE_EVENT_INSTANT0("cc", "Viewport scroll animated", + TRACE_EVENT_SCOPE_THREAD); return scroll_status; } break; @@ -3769,6 +3781,8 @@ did_scroll_x_for_scroll_gesture_ |= scroll_delta.x() != 0; did_scroll_y_for_scroll_gesture_ |= scroll_delta.y() != 0; scroll_animating_latched_element_id_ = scroll_node->element_id; + TRACE_EVENT_INSTANT0("cc", "created scroll animation", + TRACE_EVENT_SCOPE_THREAD); // Flash the overlay scrollbar even if the scroll dalta is 0. if (settings_.scrollbar_flash_after_any_scroll_update) { FlashAllScrollbars(false);
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn index dff799b..4909496 100644 --- a/chrome/android/BUILD.gn +++ b/chrome/android/BUILD.gn
@@ -792,6 +792,10 @@ deps = chrome_test_xr_java_deps + [ "//chrome/android:chrome_test_xr_java" ] + + data = [ + "//third_party/arcore-android-sdk/test-apks/", + ] } } }
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java index 2f7e03e..7b2a73e3d 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedNewTabPage.java
@@ -16,6 +16,7 @@ import com.google.android.libraries.feed.api.scope.FeedProcessScope; import com.google.android.libraries.feed.api.scope.FeedStreamScope; import com.google.android.libraries.feed.api.stream.Stream; +import com.google.android.libraries.feed.host.action.ActionApi; import com.google.android.libraries.feed.host.logging.BasicLoggingApi; import com.google.android.libraries.feed.host.logging.ContentLoggingData; import com.google.android.libraries.feed.host.stream.CardConfiguration; @@ -178,10 +179,11 @@ SuggestionsNavigationDelegateImpl navigationDelegate = new SuggestionsNavigationDelegateImpl( activity, profile, nativePageHost, tabModelSelector); + ActionApi actionApi = new FeedActionHandler(navigationDelegate, + () -> FeedProcessScopeFactory.getFeedSchedulerBridge().onSuggestionConsumed()); FeedStreamScope streamScope = feedProcessScope - .createFeedStreamScopeBuilder(activity, mImageLoader, - new FeedActionHandler(navigationDelegate), + .createFeedStreamScopeBuilder(activity, mImageLoader, actionApi, new BasicStreamConfiguration(activity.getResources()), new BasicCardConfiguration(activity.getResources()), new BasicSnackbarApi(), new DummyBasicLoggingApi())
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java index c8a04f0..15eda549 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/FeedSchedulerBridge.java
@@ -119,6 +119,11 @@ nativeOnTaskReschedule(mNativeBridge); } + public void onSuggestionConsumed() { + assert mNativeBridge != 0; + nativeOnSuggestionConsumed(mNativeBridge); + } + @CalledByNative private boolean triggerRefresh() { if (mRequestManager != null && mSessionManager != null) { @@ -150,4 +155,5 @@ private native void nativeOnFixedTimer( long nativeFeedSchedulerBridge, Callback<Void> onCompletion); private native void nativeOnTaskReschedule(long nativeFeedSchedulerBridge); + private native void nativeOnSuggestionConsumed(long nativeFeedSchedulerBridge); }
diff --git a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/action/FeedActionHandler.java b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/action/FeedActionHandler.java index 7f35c08..f37c8f0 100644 --- a/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/action/FeedActionHandler.java +++ b/chrome/android/feed/core/java/src/org/chromium/chrome/browser/feed/action/FeedActionHandler.java
@@ -18,18 +18,24 @@ */ public class FeedActionHandler implements ActionApi { private final SuggestionsNavigationDelegate mDelegate; + private final Runnable mSuggestionConsumedObserver; /** * @param delegate The {@link SuggestionsNavigationDelegate} that this handler calls when * handling some of the actions. + * @param suggestionConsumedObserver An observer that is interested in any time a suggestion is + * consumed by the user. */ - public FeedActionHandler(@NonNull SuggestionsNavigationDelegate delegate) { + public FeedActionHandler(@NonNull SuggestionsNavigationDelegate delegate, + @NonNull Runnable suggestionConsumedObserver) { mDelegate = delegate; + mSuggestionConsumedObserver = suggestionConsumedObserver; } @Override public void openUrl(String url) { mDelegate.openUrl(WindowOpenDisposition.CURRENT_TAB, createLoadUrlParams(url)); + mSuggestionConsumedObserver.run(); } @Override @@ -40,6 +46,7 @@ @Override public void openUrlInIncognitoMode(String url) { mDelegate.openUrl(WindowOpenDisposition.OFF_THE_RECORD, createLoadUrlParams(url)); + mSuggestionConsumedObserver.run(); } @Override @@ -50,6 +57,7 @@ @Override public void openUrlInNewTab(String url) { mDelegate.openUrl(WindowOpenDisposition.NEW_BACKGROUND_TAB, createLoadUrlParams(url)); + mSuggestionConsumedObserver.run(); } @Override @@ -60,6 +68,7 @@ @Override public void openUrlInNewWindow(String url) { mDelegate.openUrl(WindowOpenDisposition.NEW_WINDOW, createLoadUrlParams(url)); + mSuggestionConsumedObserver.run(); } @Override @@ -70,6 +79,7 @@ @Override public void downloadUrl(String url) { mDelegate.openUrl(WindowOpenDisposition.SAVE_TO_DISK, createLoadUrlParams(url)); + mSuggestionConsumedObserver.run(); } @Override @@ -91,4 +101,4 @@ private LoadUrlParams createLoadUrlParams(String url) { return new LoadUrlParams(url, PageTransition.AUTO_BOOKMARK); } -} \ No newline at end of file +}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java index 827e11c5..839af212d 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryCoordinator.java
@@ -147,6 +147,9 @@ /** * Allows any {@link KeyboardAccessoryData.Provider} to communicate with the * {@link KeyboardAccessoryMediator} of this component. + * + * Note that the provided actions are removed when the accessory is hidden. + * * @param provider The object providing action lists to observers in this component. */ public void registerActionListProvider(
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java index 351f165c..1ca84b4 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryMediator.java
@@ -10,6 +10,7 @@ import org.chromium.base.VisibleForTesting; import org.chromium.chrome.browser.autofill.AutofillKeyboardSuggestions; import org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryCoordinator.VisibilityDelegate; +import org.chromium.chrome.browser.autofill.keyboard_accessory.KeyboardAccessoryData.Action; import org.chromium.chrome.browser.modelutil.ListObservable; import org.chromium.chrome.browser.modelutil.PropertyObservable; import org.chromium.ui.base.WindowAndroid; @@ -126,6 +127,9 @@ if (propertyKey == KeyboardAccessoryModel.PropertyKey.VISIBLE) { // When the accessory just (dis)appeared, there should be no active tab. mModel.setActiveTab(null); + if (!mModel.isVisible()) { + mModel.setActions(new Action[0]); + } return; } if (propertyKey == KeyboardAccessoryModel.PropertyKey.ACTIVE_TAB) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryBridge.java index 45cd0a7..f10fe83 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryBridge.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/PasswordAccessoryBridge.java
@@ -5,7 +5,6 @@ package org.chromium.chrome.browser.autofill.keyboard_accessory; import android.graphics.Bitmap; -import android.support.annotation.Nullable; import org.chromium.base.Callback; import org.chromium.base.annotations.CalledByNative; @@ -22,7 +21,6 @@ new KeyboardAccessoryData.PropertyProvider<>(); private final ManualFillingCoordinator mManualFillingCoordinator; private final ChromeActivity mActivity; - private @Nullable Action mGenerationAction; private long mNativeView; private PasswordAccessoryBridge(long nativeView, WindowAndroid windowAndroid) { @@ -48,9 +46,6 @@ private void onAutomaticGenerationStatusChanged(boolean available) { final Action[] generationAction; if (available) { - if (mGenerationAction != null) { - return; - } // This is meant to suppress the warning that the short string is not used. // TODO(crbug.com/855581): Switch between strings based on whether they fit on the // screen or not. @@ -58,16 +53,12 @@ String caption = useLongString ? mActivity.getString(R.string.password_generation_accessory_button) : mActivity.getString(R.string.password_generation_accessory_button_short); - - mGenerationAction = new Action(caption, (action) -> { + generationAction = new Action[] {new Action(caption, (action) -> { assert mNativeView != 0 : "Controller has been destroyed but the bridge wasn't cleaned up!"; nativeOnGenerationRequested(mNativeView); - }); - generationAction = new Action[] {mGenerationAction}; + })}; } else { - if (mGenerationAction == null) return; - mGenerationAction = null; generationAction = new Action[0]; } mActionProvider.notifyObservers(generationAction);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java index 06245c9e..dba7fef 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
@@ -160,7 +160,16 @@ RecordHistogram.recordTimesHistogram("Android.StrictMode.OverrideUrlLoadingTime", SystemClock.elapsedRealtime() - time, TimeUnit.MILLISECONDS); - if (result == OverrideUrlLoadingResult.NO_OVERRIDE && hasBrowserFallbackUrl + if (result != OverrideUrlLoadingResult.NO_OVERRIDE) { + int pageTransitionCore = params.getPageTransition() & PageTransition.CORE_MASK; + boolean isFormSubmit = pageTransitionCore == PageTransition.FORM_SUBMIT; + boolean isRedirectFromFormSubmit = isFormSubmit && params.isRedirect(); + if (isRedirectFromFormSubmit) { + RecordHistogram.recordBooleanHistogram( + "Android.Intent.LaunchExternalAppFormSubmitHasUserGesture", + params.hasUserGesture()); + } + } else if (result == OverrideUrlLoadingResult.NO_OVERRIDE && hasBrowserFallbackUrl && (params.getRedirectHandler() == null // For instance, if this is a chained fallback URL, we ignore it. || !params.getRedirectHandler().shouldNotOverrideUrlLoading())) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java index 871721aa..f2e3a465 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/survey/ChromeSurveyController.java
@@ -68,7 +68,8 @@ @IntDef({FilteringResult.SURVEY_INFOBAR_ALREADY_DISPLAYED, FilteringResult.FORCE_SURVEY_ON_COMMAND_PRESENT, FilteringResult.USER_ALREADY_SAMPLED_TODAY, FilteringResult.MAX_NUMBER_MISSING, - FilteringResult.ROLLED_NON_ZERO_NUMBER, FilteringResult.USER_SELECTED_FOR_SURVEY}) + FilteringResult.ROLLED_NON_ZERO_NUMBER, FilteringResult.USER_SELECTED_FOR_SURVEY, + FilteringResult.SURVEY_ALREADY_EXISTS}) @Retention(RetentionPolicy.SOURCE) public @interface FilteringResult { int SURVEY_INFOBAR_ALREADY_DISPLAYED = 0; @@ -77,8 +78,9 @@ int MAX_NUMBER_MISSING = 4; int ROLLED_NON_ZERO_NUMBER = 5; int USER_SELECTED_FOR_SURVEY = 6; + int SURVEY_ALREADY_EXISTS = 7; // Number of entries - int NUM_ENTRIES = 7; + int NUM_ENTRIES = 8; } /** @@ -469,6 +471,7 @@ if (SurveyController.getInstance().doesSurveyExist( mController.getSiteId(), ContextUtils.getApplicationContext())) { + mController.recordSurveyFilteringResult(FilteringResult.SURVEY_ALREADY_EXISTS); return true; } else { boolean forceSurveyOn = false;
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb index 1729e74..6b57f756 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_am.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_am.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">የጣቢያ መረጃ</translation> <translation id="3341058695485821946">ምን ያህል ውሂብ እንዳስቀመጡ ይመልከቱ</translation> <translation id="3350687908700087792">ሁሉንም ማንነት የማያሳውቅ ትሮችን ይዝጉ</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />ቅንብሮች<ph name="END_LINK1" />ን በማንኛውም ጊዜ ማበጀት ይችላሉ። Chromeን እና እንደ ትርጉም፣ ፍለጋ እና ማስታወቂያዎች ያሉ ሌሎች የGoogle አገልግሎቶችን ግላዊነት ለማላበስ Google እርስዎ በሚጎበኟቸው ጣቢያዎች ላይ ያለ ይዘትን እና የአሰሳ እንቅስቃሴ ሊጠቀም ይችላል።</translation> <translation id="3365671512111106261">ውሂብ ቆጣቢ በሚበራበት ጊዜ አይገኝም</translation> <translation id="3367813778245106622">ስምረትን ለመጀመር እንደገና ይግቡ</translation> <translation id="3384347053049321195">ምስል አጋራ</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{ከ# ሰዓት በፊት}one{ከ# ሰዓቶች በፊት}other{ከ# ሰዓቶች በፊት}}</translation> <translation id="5817918615728894473">አጣምር</translation> <translation id="583281660410589416">ያልታወቀ </translation> +<translation id="5833397272224757657">እርስዎ የሚጎበኙዋቸውን ጣቢያዎች ላይ ይዘትን እንዲሁም የአሰሳ እንቅስቃሴ እና መስተጋብሮች ለግላዊነት ለማላበስ ይጠቀማል</translation> <translation id="5833984609253377421">አገናኝ አጋራ</translation> <translation id="5854790677617711513">ከ30 ቀናት በላይ የቆየ</translation> <translation id="5858741533101922242">Chrome የብሉቱዝ አስማሚውን ማብራት አልቻለም</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">የደህንነት ሊሆኑ የሚችሉ የክስተቶች ዝርዝር በራስ-ሰር ለGoogle ሪፖርት አድርግ</translation> <translation id="6992289844737586249">ጣቢያዎች ማይክሮፎንዎን እንዲጠቀሙ ከመፍቀድዎ በፊት ይጠይቅ (የሚመከር)</translation> <translation id="7016516562562142042">ለአሁኑ የፍለጋ ፕሮግራም ተፈቅዷል</translation> -<translation id="7017968314960951695">እርስዎ የሚጎበኙዋቸውን ጣቢያዎች ላይ ይዘትን እንዲሁም የአሰሳ እንቅስቃሴ እና መስተጋብሮች ለግላዊነት ለማላበስ ይጠቀማል</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> ወርዷል</translation> <translation id="7022756207310403729">በአሳሽ ውስጥ ክፈት</translation> <translation id="7029809446516969842">የይለፍ ቃላት</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb index ac1af64..69183f1 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ar.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">تصفّح</translation> <translation id="1993768208584545658">يريد <ph name="SITE" /> الاقتران</translation> <translation id="1994173015038366702">عنوان URL للموقع</translation> +<translation id="2000419248597011803">يُرسِل بعض ملفات تعريف الارتباط وعمليات البحث من شريط العناوين ومربّع البحث إلى محرِّك البحث التلقائي.</translation> <translation id="2002537628803770967">بطاقات الائتمان والعناوين باستخدام Google Pay</translation> <translation id="200815880754187296">تطبيقات أخرى بحجم <ph name="KILOBYTES" /> كيلوبايت</translation> <translation id="2017836877785168846">مسح السجل وعمليات الإكمال التلقائي في شريط العناوين.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">تغيير حجم النص</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> ميغابايت</translation> <translation id="2410754283952462441">اختيار حساب</translation> +<translation id="2414672073755873541">لا يتوفَّر محتوى هنا</translation> <translation id="2414886740292270097">داكن</translation> <translation id="2416359993254398973">يحتاج Chrome إلى إذن لاستخدام الكاميرا لموقع الويب هذا.</translation> <translation id="2426805022920575512">اختيار حساب آخر</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">عدد الثواني المتبقية: <ph name="SECONDS" /></translation> <translation id="2781151931089541271">يتبقى ثانية واحدة</translation> <translation id="2810645512293415242">صفحة مبسَّطة لحفظ البيانات والاستمتاع بتحميل أسرع.</translation> +<translation id="281504910091592009">عرض كلمات المرور المحفوظة وإدارتها في <ph name="BEGIN_LINK" />حسابك على Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">للحصول على الإشارات المرجعية على جميع أجهزتك، يُرجى تسجيل الدخول وتفعيل المزامنة.</translation> <translation id="2836148919159985482">المس زر الرجوع للخروج من وضع ملء الشاشة.</translation> <translation id="2842985007712546952">المجلد الرئيسي</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">معلومات موقع الويب</translation> <translation id="3341058695485821946">الاطّلاع على مقدار البيانات التي حفظتها</translation> <translation id="3350687908700087792">إغلاق كافة علامات تبويب التصفح المتخفي</translation> -<translation id="3361477720586884778">يمكن تخصيص <ph name="BEGIN_LINK1" />الإعدادات<ph name="END_LINK1" /> في أي وقت. قد تستخدم Google محتوى المواقع الإلكترونية التي تزورها وتفاعلات المتصفّح ونشاطه لتخصيص Chrome وخدمات Google، مثل "ترجمة" و"بحث" والإعلانات.</translation> <translation id="3365671512111106261">غير متاح عند تشغيل توفير البيانات</translation> <translation id="3367813778245106622">تسجيل الدخول مرة أخرى لبدء المزامنة</translation> <translation id="3384347053049321195">مشاركة صورة</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">المساعدة في تحسين تجربة الواقع الافتراضي (VR) في Chrome</translation> <translation id="3616113530831147358">الصوت</translation> <translation id="3620176948598597475">تؤدي إعادة الضبط إلى محو سجلّ توفير البيانات، بما في ذلك قائمة المواقع التي تمت زيارتها.</translation> +<translation id="3630011985153972676">يمكنك السماح لمتصفِّح Chrome بتنزيل مقالات لك عند الاتصال بشبكة Wi-Fi ضمن الإعدادات.</translation> <translation id="3632295766818638029">كشف كلمة المرور</translation> <translation id="363596933471559332">يمكن تسجيل الدخول تلقائيًا إلى مواقع الويب باستخدم الاعتمادات المخزّنة. وعندما تكون الميزة غير مفعّلة، فسيُطلب منك التحقق كل مرة قبل تسجيل الدخول إلى مواقع الويب.</translation> <translation id="3661699943263275414">يمكن للمواقع الإلكترونية التابعة لجهات خارجية حفظ بيانات ملفات تعريف الارتباط وقراءتها</translation> @@ -519,6 +522,7 @@ <translation id="5335288049665977812">السماح للمواقع بتشغيل جافا سكريبت (موصى به)</translation> <translation id="5345040418939504969">تم حذف <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">تمّ نسح عنوان URL.</translation> +<translation id="5391532827096253100">إن اتصالك بهذا الموقع الإلكتروني غير آمن. معلومات موقع الويب</translation> <translation id="5400569084694353794">باستخدام هذا التطبيق، فإنك توافق على <ph name="BEGIN_LINK1" />شروط الخدمة<ph name="END_LINK1" /> و<ph name="BEGIN_LINK2" />إشعار الخصوصية<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">السماح بمواقع ويب معيّنة فقط</translation> <translation id="5414836363063783498">جارٍ التحقق...</translation> @@ -587,6 +591,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{قبل ساعة واحدة (#)}zero{قبل # ساعة}two{قبل ساعتين (#)}few{قبل # ساعات}many{قبل # ساعة}other{قبل # ساعة}}</translation> <translation id="5817918615728894473">إقران</translation> <translation id="583281660410589416">غير معروف</translation> +<translation id="5833397272224757657">يتم استخدام المحتوى على المواقع الإلكترونية التي تزورها، بالإضافة إلى نشاط المتصفِّح وتفاعلاته للتخصيص.</translation> <translation id="5833984609253377421">مشاركة الرابط</translation> <translation id="5854790677617711513">مرّ عليها أكثر من 30 يومًا</translation> <translation id="5858741533101922242">يتعذر على Chrome تشغيل محوّل البلوتوث</translation> @@ -632,6 +637,7 @@ <translation id="618555311922999635">لوحة التنقل مفتوحة بالارتفاع الكامل</translation> <translation id="6192333916571137726">ملف تحميل</translation> <translation id="6192792657125177640">الاستثناءات</translation> +<translation id="6206551242102657620">يُعدُّ اتصالك آمنًا. معلومات موقع الويب</translation> <translation id="6210748933810148297">ليس <ph name="EMAIL" />؟</translation> <translation id="6216432067784365534">خيارات <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">إلغاء القفل لتصدير كلمات المرور</translation> @@ -723,6 +729,7 @@ <translation id="6914783257214138813">ستكون كلمات مرورك مرئية لأي شخص يمكنه الاطلاع على الملف الذي تم تصديره.</translation> <translation id="6942665639005891494">تغيير موقع التنزيل التلقائي في أي وقت باستخدام خيار قائمة "الإعدادات"</translation> <translation id="6945221475159498467">تحديد</translation> +<translation id="6963642900430330478">تُعدُّ هذه الصفحة خطيرة. معلومات موقع الويب</translation> <translation id="6963766334940102469">حذف الإشارات المرجعية</translation> <translation id="6965382102122355670">موافق</translation> <translation id="6978479750597523876">إعادة تعيين إعدادات الترجمة</translation> @@ -733,7 +740,6 @@ <translation id="699220179437400583">إبلاغ Google تلقائيًا بتفاصيل أي مخاطر أمنية محتملة</translation> <translation id="6992289844737586249">السؤال أولاً قبل السماح للمواقع باستخدام الميكروفون (موصى به)</translation> <translation id="7016516562562142042">تم السماح به لمحرك البحث الحالي</translation> -<translation id="7017968314960951695">يستخدم محتوى المواقع الإلكترونية التي تزورها ونشاط وتفاعلات المتصفّح للتخصيص.</translation> <translation id="7021515813996758557">تم تنزيل <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">فتح في المتصفح</translation> <translation id="7029809446516969842">كلمات المرور</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb index 386fadf..edfaac2 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_bg.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Информация за сайта</translation> <translation id="3341058695485821946">Вижте колко данни сте спестили</translation> <translation id="3350687908700087792">Затваряне на всички раздели в режим „инкогнито“</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Настройките<ph name="END_LINK1" /> могат да бъдат персонализирани по всяко време. Може да използваме съдържанието на посещаваните от вас сайтове, активността в браузъра и взаимодействията с него, за да персонализираме Chrome и услуги на Google, като Преводач, Търсене и рекламите.</translation> <translation id="3365671512111106261">Не е налице, когато функцията Икономия на данни е включена</translation> <translation id="3367813778245106622">Влезте в профила си отново, за да започне синхронизирането</translation> <translation id="3384347053049321195">Споделяне на изображението</translation> @@ -592,6 +591,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{преди # час}other{преди # часа}}</translation> <translation id="5817918615728894473">Сдвояване</translation> <translation id="583281660410589416">Неизвестно</translation> +<translation id="5833397272224757657">Използва за персонализиране съдържанието на посещаваните от вас сайтове, както и активността в браузъра и взаимодействията с него</translation> <translation id="5833984609253377421">Споделяне на връзката</translation> <translation id="5854790677617711513">По-стари от 30 дни</translation> <translation id="5858741533101922242">Chrome не може да включи адаптера за Bluetooth</translation> @@ -740,7 +740,6 @@ <translation id="699220179437400583">Автоматично съобщаване на Google на подробности за евентуални инциденти, свързани със сигурността</translation> <translation id="6992289844737586249">Извеждане на запитване, преди да се разреши на сайтовете да използват микрофона (препоръчително)</translation> <translation id="7016516562562142042">Разрешено за текущата търсеща машина</translation> -<translation id="7017968314960951695">Използва за персонализиране съдържанието на посещаваните от вас сайтове, както и активността в браузъра и взаимодействията с него</translation> <translation id="7021515813996758557">„<ph name="FILE_NAME" />“ се изтегли</translation> <translation id="7022756207310403729">Отваряне в браузъра</translation> <translation id="7029809446516969842">Пароли</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb index 79fc4a1..333d0f0 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ca.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Informació del lloc web</translation> <translation id="3341058695485821946">Consulta la quantitat de dades que has estalviat</translation> <translation id="3350687908700087792">Tanca totes les pestanyes d'incògnit</translation> -<translation id="3361477720586884778">La <ph name="BEGIN_LINK1" />configuració<ph name="END_LINK1" /> es pot personalitzar en qualsevol moment. Google pot utilitzar contingut dels llocs web que visites, així com l'activitat i les interaccions al navegador per personalitzar Chrome i els serveis de Google, com ara el Traductor, la Cerca i els anuncis.</translation> <translation id="3365671512111106261">No està disponible quan l'extensió Economitzador de dades està activada</translation> <translation id="3367813778245106622">Torna a iniciar la sessió per començar la sincronització</translation> <translation id="3384347053049321195">Comparteix la imatge</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{fa # hora}other{fa # hores}}</translation> <translation id="5817918615728894473">Vincula</translation> <translation id="583281660410589416">Desconegut</translation> +<translation id="5833397272224757657">Per a la personalització, utilitza el contingut dels llocs web que visites, així com l'activitat i les interaccions del navegador</translation> <translation id="5833984609253377421">Comparteix l'enllaç</translation> <translation id="5854790677617711513">Anterior a 30 dies</translation> <translation id="5858741533101922242">Chrome no pot activar l'adaptador Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Informa automàticament Google dels detalls sobre possibles incidències de seguretat</translation> <translation id="6992289844737586249">Pregunta abans de permetre que els llocs utilitzin el micròfon (opció recomanada)</translation> <translation id="7016516562562142042">Es permet al motor de cerca actual</translation> -<translation id="7017968314960951695">Per a la personalització, utilitza el contingut dels llocs web que visites i l'activitat i les interaccions del navegador</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> s'ha baixat</translation> <translation id="7022756207310403729">Obre al navegador</translation> <translation id="7029809446516969842">Contrasenyes</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb index 3c6c553..d507e65 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_cs.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Procházet</translation> <translation id="1993768208584545658">Web <ph name="SITE" /> žádá o spárování</translation> <translation id="1994173015038366702">Adresa URL webu</translation> +<translation id="2000419248597011803">Odesílá soubory cookie a vyhledávací dotazy z adresního řádku a vyhledávacího pole a několik souborů cookie vašemu výchozímu vyhledávači</translation> <translation id="2002537628803770967">Platební karty a adresy pomocí služby Google Pay</translation> <translation id="200815880754187296">Ostatní aplikace: <ph name="KILOBYTES" /> kB</translation> <translation id="2017836877785168846">Vymaže historii a automatická dokončení v adresním řádku.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Zvětšení/zmenšení textu</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Vyberte účet</translation> +<translation id="2414672073755873541">Zde není žádný obsah</translation> <translation id="2414886740292270097">Tmavé</translation> <translation id="2416359993254398973">Chrome pro tento web potřebuje oprávnění k přístupu k fotoaparátu.</translation> <translation id="2426805022920575512">Vybrat jiný účet</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Zbývá: <ph name="SECONDS" /> s</translation> <translation id="2781151931089541271">Zbývá: 1 s</translation> <translation id="2810645512293415242">Stránka byla zjednodušena s cílem ušetřit data a zrychlit načtení.</translation> +<translation id="281504910091592009">Zobrazit a spravovat uložená hesla v <ph name="BEGIN_LINK" />účtu Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Chcete-li mít záložky ve všech zařízeních, přihlaste se a zapněte synchronizaci</translation> <translation id="2836148919159985482">Režim celé obrazovky ukončíte klepnutím na tlačítko Zpět.</translation> <translation id="2842985007712546952">Nadřazená složka</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informace o stránkách</translation> <translation id="3341058695485821946">Podívejte se, kolik dat jste ušetřili</translation> <translation id="3350687908700087792">Zavřít všechny anonymní karty</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Nastavení<ph name="END_LINK1" /> lze kdykoliv upravit. Google může používat obsah na webech, které navštěvujete, interakce s prohlížečem a aktivity k personalizaci prohlížeče Chrome a služeb Google, jako jsou Překladač, Vyhledávání a reklamy.</translation> <translation id="3365671512111106261">Není k dispozici, když je zapnut Spořič dat</translation> <translation id="3367813778245106622">Chcete-li zahájit synchronizaci, znovu se přihlaste.</translation> <translation id="3384347053049321195">Sdílet obrázek</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Pomozte zlepšit virtuální realitu v Chromu</translation> <translation id="3616113530831147358">Zvuk</translation> <translation id="3620176948598597475">Resetováním vymažete historii Spořiče dat, včetně seznamu navštívených webů.</translation> +<translation id="3630011985153972676">V nastavení můžete Chromu povolit, aby vám při připojení přes Wi-Fi stahoval články.</translation> <translation id="3632295766818638029">Zrušit maskování hesla</translation> <translation id="363596933471559332">Přihlašovat se na weby automaticky pomocí uložených identifikačních údajů. Když je tato funkce vypnutá, budete před každým přihlášením na web požádáni o ověření.</translation> <translation id="3661699943263275414">Weby třetích stran mohou ukládat a číst data souborů cookie</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Povolit webům spouštět JavaScript (doporučeno)</translation> <translation id="5345040418939504969">Záložka <ph name="BOOKMARK_TITLE" /> byla smazána</translation> <translation id="5372829067651257087">Adresa byla zkopírována.</translation> +<translation id="5391532827096253100">Spojení s tímto webem není zabezpečené. Informace o webu</translation> <translation id="5400569084694353794">Používáním této aplikace vyjadřujete souhlas se <ph name="BEGIN_LINK1" />smluvními podmínkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />zásadami ochrany soukromí<ph name="END_LINK2" /> prohlížeče Chrome.</translation> <translation id="5403644198645076998">Povolit pouze určité weby</translation> <translation id="5414836363063783498">Ověřování…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{před # hodinou}few{před # hodinami}many{před # hodiny}other{před # hodinami}}</translation> <translation id="5817918615728894473">Spárovat</translation> <translation id="583281660410589416">Neznámé</translation> +<translation id="5833397272224757657">Používá k personalizaci obsah navštěvovaných webů a aktivitu a interakce v prohlížeči</translation> <translation id="5833984609253377421">Sdílet odkaz</translation> <translation id="5854790677617711513">Starší než 30 dnů</translation> <translation id="5858741533101922242">Chrome nemůže zapnout adaptér Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Je otevřen navigační panel na plnou výšku</translation> <translation id="6192333916571137726">Stáhnout soubor</translation> <translation id="6192792657125177640">Výjimky</translation> +<translation id="6206551242102657620">Připojení je zabezpečené. Informace o webu</translation> <translation id="6210748933810148297">Nejste <ph name="EMAIL" />?</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> – možnosti</translation> <translation id="6221633008163990886">Chcete-li exportovat hesla, odemkněte zařízení</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Vaše hesla uvidí každý, kdo může zobrazit exportovaný soubor.</translation> <translation id="6942665639005891494">Výchozí umístění pro stažené soubory můžete kdykoliv změnit pomocí možnosti v nabídce Nastavení.</translation> <translation id="6945221475159498467">Vybrat</translation> +<translation id="6963642900430330478">Tato stránka je nebezpečná. Informace o webu</translation> <translation id="6963766334940102469">Smazat záložky</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Obnovit nastavení překladače</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automaticky Googlu hlásit podrobnosti možných bezpečnostních incidentů</translation> <translation id="6992289844737586249">Pokud web bude chtít použít váš mikrofon, zobrazit dotaz (doporučeno)</translation> <translation id="7016516562562142042">Pro aktuální vyhledávač povoleno</translation> -<translation id="7017968314960951695">Používá k personalizaci obsah navštěvovaných webů a aktivitu a interakce v prohlížeči</translation> <translation id="7021515813996758557">Soubor <ph name="FILE_NAME" /> byl stažen</translation> <translation id="7022756207310403729">Otevřít v prohlížeči</translation> <translation id="7029809446516969842">Hesla</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb index b2bded97..925775a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_da.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_da.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Gennemse</translation> <translation id="1993768208584545658"><ph name="SITE" /> vil gerne parre</translation> <translation id="1994173015038366702">Webadresse</translation> +<translation id="2000419248597011803">Sender visse cookies og søgninger fra adresselinjen og søgefeltet til din standardsøgemaskine</translation> <translation id="2002537628803770967">Kreditkort og adresser fra Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB af andre apps</translation> <translation id="2017836877785168846">Nulstiller historikken og autofuldførelser i adresselinjen.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Skalering af tekst</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Vælg en konto</translation> +<translation id="2414672073755873541">Der er intet indhold her</translation> <translation id="2414886740292270097">Mørk</translation> <translation id="2416359993254398973">Chrome skal have tilladelse til at bruge dit kamera på dette website.</translation> <translation id="2426805022920575512">Vælg en anden konto</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> sekunder tilbage</translation> <translation id="2781151931089541271">1 sekund tilbage</translation> <translation id="2810645512293415242">Forenklet side, der sparer data og indlæses hurtigere.</translation> +<translation id="281504910091592009">Se og administrer gemte adgangskoder på din <ph name="BEGIN_LINK" />Google-konto<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Log ind, og aktivér synkronisering for at få vist dine bogmærker på alle dine enheder</translation> <translation id="2836148919159985482">Tryk på tilbageknappen for at afslutte fuld skærm.</translation> <translation id="2842985007712546952">Overordnet mappe</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Webstedoplysninger</translation> <translation id="3341058695485821946">Se, hvor meget data du har gemt</translation> <translation id="3350687908700087792">Luk alle inkognitofaner</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Indstillinger<ph name="END_LINK1" /> kan tilpasses når som helst. Google kan bruge indholdet på de websites, du besøger, samt browserinteraktioner og -aktivitet til at tilpasse Chrome og Google-tjenester såsom Oversæt, Søgning og annoncer.</translation> <translation id="3365671512111106261">Ikke tilgængelig, når Datasparefunktion er slået til.</translation> <translation id="3367813778245106622">Log ind igen for at starte synkroniseringen</translation> <translation id="3384347053049321195">Del billede</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Hjælp med at forbedre VR-oplevelsen i Chrome</translation> <translation id="3616113530831147358">Lyd</translation> <translation id="3620176948598597475">Hvis du nulstiller, slettes historikken for Datasparefunktion samt listen over besøgte websites.</translation> +<translation id="3630011985153972676">Giv Chrome tilladelse til at downloade artikler til dig, når Wi-Fi er aktiveret i indstillingerne.</translation> <translation id="3632295766818638029">Vis adgangskoden</translation> <translation id="363596933471559332">Log automatisk ind på websites med gemte loginoplysninger. Når funktionen er slået fra, bliver du bedt om at bekræfte, hver gang du vil logge ind på et website.</translation> <translation id="3661699943263275414">Tredjepartswebsites kan gemme og læse cookiedata</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Tillad, at websites kører JavaScript (anbefales)</translation> <translation id="5345040418939504969">Slettede <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">Webadressen blev kopieret.</translation> +<translation id="5391532827096253100">Din forbindelse til dette website er ikke sikker. Websiteoplysninger</translation> <translation id="5400569084694353794">Ved at bruge denne applikation accepterer du Chromes <ph name="BEGIN_LINK1" />servicevilkår<ph name="END_LINK1" /> og <ph name="BEGIN_LINK2" />erklæring om privatliv<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">Tillad kun bestemte websites</translation> <translation id="5414836363063783498">Bekræfter...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{For 1 time siden}one{For # time siden}other{For # timer siden}}</translation> <translation id="5817918615728894473">Start parring</translation> <translation id="583281660410589416">Ukendt</translation> +<translation id="5833397272224757657">Anvender indhold på websites, du besøger, samt browseraktivitet og -interaktioner, så din brugeroplevelse tilpasses</translation> <translation id="5833984609253377421">Del link</translation> <translation id="5854790677617711513">Ældre end 30 dage</translation> <translation id="5858741533101922242">Chrome kan ikke slå Bluetooth-adapteren til</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Navigationspanelet er helt åbnet</translation> <translation id="6192333916571137726">Download fil</translation> <translation id="6192792657125177640">Undtagelser</translation> +<translation id="6206551242102657620">Forbindelsen er sikker. Websiteoplysninger</translation> <translation id="6210748933810148297">Er det ikke <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Valgmuligheder for <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Lås op for at eksportere dine adgangskoder</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Dine adgangskoder vil være synlige for alle, der kan se den eksporterede fil.</translation> <translation id="6942665639005891494">Du kan til enhver tid ændre standardplaceringen for downloads via menuen Indstillinger</translation> <translation id="6945221475159498467">Vælg</translation> +<translation id="6963642900430330478">Denne side er farlig. Websiteoplysninger</translation> <translation id="6963766334940102469">Slet bogmærker</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Nulstil oversættelsesindstillingerne</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Rapportér automatisk oplysninger om mulige sikkerhedshændelser til Google.</translation> <translation id="6992289844737586249">Spørg om tilladelse, inden websites bruger din mikrofon (anbefales)</translation> <translation id="7016516562562142042">Tilladt for den nuværende søgemaskine</translation> -<translation id="7017968314960951695">Anvender indhold på websites, du besøger, samt browseraktivitet og -interaktioner, så din brugeroplevelse tilpasses</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> blev downloadet</translation> <translation id="7022756207310403729">Åbn i browser</translation> <translation id="7029809446516969842">Adgangskoder</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb index d018db4..f8881a37 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Durchsuchen</translation> <translation id="1993768208584545658"><ph name="SITE" /> möchte eine Kopplung durchführen</translation> <translation id="1994173015038366702">Website-URL</translation> +<translation id="2000419248597011803">Suchanfragen, die in die Adressleiste und das Suchfeld eingegeben wurden, sowie einige Cookies werden an Ihre Standardsuchmaschine gesendet</translation> <translation id="2002537628803770967">Kreditkarten und Adressen aus Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB sonstiger Apps</translation> <translation id="2017836877785168846">Löscht den Verlauf sowie Autovervollständigungen in der Adressleiste.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Text-Skalierung</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Konto auswählen</translation> +<translation id="2414672073755873541">Keine Inhalte vorhanden</translation> <translation id="2414886740292270097">Dunkel</translation> <translation id="2416359993254398973">Chrome benötigt für diese Website die Berechtigung, auf Ihre Kamera zuzugreifen.</translation> <translation id="2426805022920575512">Anderes Konto auswählen</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> Sekunden übrig</translation> <translation id="2781151931089541271">1 Sekunde übrig</translation> <translation id="2810645512293415242">Vereinfachte Seite für einen geringeren Datenverbrauch und schnelleres Laden.</translation> +<translation id="281504910091592009">Gespeicherte Passwörter in Ihrem <ph name="BEGIN_LINK" />Google-Konto<ph name="END_LINK" /> ansehen und verwalten</translation> <translation id="2818669890320396765">Melden Sie sich an und aktivieren Sie die Synchronisierung, um Ihre Lesezeichen auf allen Ihren Geräten zu sehen</translation> <translation id="2836148919159985482">Tippen Sie zum Beenden des Vollbildmodus auf die Zurück-Taste.</translation> <translation id="2842985007712546952">Übergeordneter Ordner</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Websiteinformationen</translation> <translation id="3341058695485821946">Sie können sich ansehen, wie viel Datenvolumen Sie einsparen</translation> <translation id="3350687908700087792">Alle Inkognito-Tabs schließen</translation> -<translation id="3361477720586884778">Die <ph name="BEGIN_LINK1" />Einstellungen<ph name="END_LINK1" /> können jederzeit angepasst werden. Google kann die Inhalte der von Ihnen besuchten Websites, Browserinteraktionen und Browseraktivitäten nutzen, um Chrome und andere Google-Dienste wie Übersetzer, die Google-Suche und Werbung zu personalisieren.</translation> <translation id="3365671512111106261">Nicht verfügbar, wenn der Datensparmodus aktiviert ist</translation> <translation id="3367813778245106622">Melden Sie sich nochmals an, um die Synchronisierung zu starten</translation> <translation id="3384347053049321195">Bild teilen</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Unterstütze uns dabei, VR in Chrome zu verbessern</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Durch das Zurücksetzen wird der Verlauf des Datensparmodus gelöscht, einschließlich der Liste besuchter Websites.</translation> +<translation id="3630011985153972676">Sie können in den Einstellungen festlegen, dass Chrome Artikel für Sie herunterlädt, wenn eine WLAN-Verbindung besteht.</translation> <translation id="3632295766818638029">Passwort anzeigen</translation> <translation id="363596933471559332">Sie werden mit gespeicherten Anmeldedaten automatisch auf Websites angemeldet. Wenn das Kästchen nicht angeklickt ist, werden Sie jedes Mal aufgefordert, sich manuell auf einer Website anzumelden.</translation> <translation id="3661699943263275414">Websites Dritter können Cookiedaten speichern und lesen.</translation> @@ -519,6 +522,7 @@ <translation id="5335288049665977812">Ausführung von JavaScript durch Websites zulassen (empfohlen)</translation> <translation id="5345040418939504969"><ph name="BOOKMARK_TITLE" /> gelöscht</translation> <translation id="5372829067651257087">URL kopiert.</translation> +<translation id="5391532827096253100">Die Verbindung zu dieser Website ist nicht sicher. Websiteinformationen</translation> <translation id="5400569084694353794">Durch die Verwendung dieser App stimmen Sie den <ph name="BEGIN_LINK1" />Nutzungsbedingungen<ph name="END_LINK1" /> und <ph name="BEGIN_LINK2" />Datenschutzhinweisen<ph name="END_LINK2" /> von Chrome zu.</translation> <translation id="5403644198645076998">Nur bestimmte Websites zulassen</translation> <translation id="5414836363063783498">Überprüfung...</translation> @@ -587,6 +591,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Vor # Stunde}other{Vor # Stunden}}</translation> <translation id="5817918615728894473">Koppeln</translation> <translation id="583281660410589416">Unbekannt</translation> +<translation id="5833397272224757657">Inhalte von besuchten Websites sowie Browseraktivitäten und -interaktionen werden zur Personalisierung verwendet</translation> <translation id="5833984609253377421">Link teilen</translation> <translation id="5854790677617711513">Älter als 30 Tage</translation> <translation id="5858741533101922242">Chrome kann den Bluetooth-Adapter nicht aktivieren</translation> @@ -632,6 +637,7 @@ <translation id="618555311922999635">Navigationsbereich ganz geöffnet</translation> <translation id="6192333916571137726">Download-Datei</translation> <translation id="6192792657125177640">Ausnahmen</translation> +<translation id="6206551242102657620">Die Verbindung ist sicher. Websiteinformationen</translation> <translation id="6210748933810148297"><ph name="EMAIL" /> ist nicht Ihre E-Mail-Adresse?</translation> <translation id="6216432067784365534">Optionen für <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Zum Exportieren Ihrer Passwörter entsperren</translation> @@ -723,6 +729,7 @@ <translation id="6914783257214138813">Ihre Passwörter sind für jeden zugänglich, der die exportierte Passwortdatei aufrufen kann.</translation> <translation id="6942665639005891494">Sie können den Standard-Downloadpfad jederzeit über die Option im Menü "Einstellungen" ändern</translation> <translation id="6945221475159498467">Auswählen</translation> +<translation id="6963642900430330478">Diese Seite ist gefährlich. Websiteinformationen</translation> <translation id="6963766334940102469">Lesezeichen löschen</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Übersetzungseinstellungen zurücksetzen</translation> @@ -733,7 +740,6 @@ <translation id="699220179437400583">Details zu möglichen sicherheitsrelevanten Zwischenfällen automatisch an Google senden</translation> <translation id="6992289844737586249">Nachfragen, bevor Websites auf Ihr Mikrofon zugreifen dürfen (empfohlen)</translation> <translation id="7016516562562142042">Für die aktuelle Suchmaschine zugelassen</translation> -<translation id="7017968314960951695">Inhalte von besuchten Websites sowie Browseraktivitäten und -interaktionen werden zur Personalisierung verwendet</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> heruntergeladen</translation> <translation id="7022756207310403729">Im Browser öffnen</translation> <translation id="7029809446516969842">Passwörter</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb index 4d6f19e..ba2e42f 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_el.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_el.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Πληροφορίες ιστοτόπου</translation> <translation id="3341058695485821946">Δείτε πόσα δεδομένα έχετε αποθηκεύσει</translation> <translation id="3350687908700087792">Κλείσιμο όλων των καρτελών ανώνυμης περιήγησης</translation> -<translation id="3361477720586884778">Μπορείτε να προσαρμόσετε τις <ph name="BEGIN_LINK1" />Ρυθμίσεις<ph name="END_LINK1" /> ανά πάσα στιγμή. Η Google μπορεί να χρησιμοποιεί το περιεχόμενο σε ιστοτόπους που επισκέπτεστε, αλληλεπιδράσεις με το πρόγραμμα περιήγησης και τη δραστηριότητά σας για να προσαρμόσει το Chrome και υπηρεσίες Google όπως η Μετάφραση, η Αναζήτηση και οι διαφημίσεις.</translation> <translation id="3365671512111106261">Μη διαθέσιμη όταν είναι ενεργοποιημένη η Εξοικονόμηση δεδομένων</translation> <translation id="3367813778245106622">Συνδεθείτε ξανά για να ξεκινήσετε τον συγχρονισμό</translation> <translation id="3384347053049321195">Κοινοποίηση εικόνας</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Πριν από # ώρα}other{Πριν από # ώρες}}</translation> <translation id="5817918615728894473">Σύζευξη</translation> <translation id="583281660410589416">Άγνωστο</translation> +<translation id="5833397272224757657">Χρησιμοποιεί περιεχόμενο στους ιστότοπους που επισκέπτεστε, καθώς και δραστηριότητα και αλληλεπιδράσεις του προγράμματος περιήγησης, για εξατομίκευση</translation> <translation id="5833984609253377421">Κοινοποίηση συνδέσμου</translation> <translation id="5854790677617711513">Παλαιότερο από 30 ημέρες</translation> <translation id="5858741533101922242">Το Chrome δεν είναι δυνατό να ενεργοποιήσει τον προσαρμογέα Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Αυτόματη αναφορά στην Google των λεπτομερειών πιθανών περιστατικών ασφάλειας</translation> <translation id="6992289844737586249">Να γίνεται ερώτηση προτού επιτραπεί στους ιστότοπους να χρησιμοποιήσουν το μικρόφωνό σας (συνιστάται)</translation> <translation id="7016516562562142042">Επιτράπηκε για την τρέχουσα μηχανή αναζήτησης</translation> -<translation id="7017968314960951695">Χρησιμοποιεί περιεχόμενο από τους ιστοτόπους που επισκέπτεστε, καθώς και δραστηριότητα και αλληλεπιδράσεις του προγράμματος περιήγησης, για εξατομίκευση.</translation> <translation id="7021515813996758557">Έγινε λήψη του αρχείου <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Άνοιγμα σε πρόγρ. περιήγησης</translation> <translation id="7029809446516969842">Κωδικοί πρόσβασης</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb index 15ddde7..839120f4 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_en-GB.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Site information</translation> <translation id="3341058695485821946">See how much data that you've saved</translation> <translation id="3350687908700087792">Close all incognito tabs</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Settings<ph name="END_LINK1" /> can be customised at any time. Google may use content on any sites that you visit, as well as browsing activity and interactions, to personalise Chrome and Google services such as Translate, Search and ads.</translation> <translation id="3365671512111106261">Unavailable when Data Saver is turned on</translation> <translation id="3367813778245106622">Sign in again to start sync</translation> <translation id="3384347053049321195">Share image</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# hour ago}other{# hours ago}}</translation> <translation id="5817918615728894473">Pair</translation> <translation id="583281660410589416">Unknown</translation> +<translation id="5833397272224757657">Uses content on sites that you visit, plus browser activity and interactions, for personalisation</translation> <translation id="5833984609253377421">Share link</translation> <translation id="5854790677617711513">Older than 30 days</translation> <translation id="5858741533101922242">Chrome is unable to turn on Bluetooth adaptor</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Automatically report details of possible security incidents to Google</translation> <translation id="6992289844737586249">Ask first before allowing sites to use your microphone (recommended)</translation> <translation id="7016516562562142042">Allowed for current search engine</translation> -<translation id="7017968314960951695">Uses content on sites that you visit and browser activity and interactions for personalisation</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> downloaded</translation> <translation id="7022756207310403729">Open in browser</translation> <translation id="7029809446516969842">Passwords</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb index 2e6fb69..78c8382 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es-419.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Información del sitio</translation> <translation id="3341058695485821946">Consulta cuántos datos redujiste</translation> <translation id="3350687908700087792">Cerrar todas las pestañas de incógnito</translation> -<translation id="3361477720586884778">Se puede modificar la <ph name="BEGIN_LINK1" />Configuración<ph name="END_LINK1" /> en cualquier momento. Es posible que usemos contenido de los sitios que visitas (así como tus interacciones y actividad de navegación) a fin de personalizar Chrome y otros servicios de Google, como el Traductor, la Búsqueda y los anuncios.</translation> <translation id="3365671512111106261">No está disponible cuando la función Ahorro de datos está activada</translation> <translation id="3367813778245106622">Volver a acceder para iniciar la sincronización</translation> <translation id="3384347053049321195">Compartir imagen</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Hace # hora}other{Hace # horas}}</translation> <translation id="5817918615728894473">Sincronizar</translation> <translation id="583281660410589416">Desconocido</translation> +<translation id="5833397272224757657">Usa el contenido de los sitios que visitas, tus interacciones y actividad de navegación para personalizar las opciones</translation> <translation id="5833984609253377421">Compartir vínculo</translation> <translation id="5854790677617711513">Hace más de 30 días</translation> <translation id="5858741533101922242">Chrome no puede activar el adaptador Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Informar automáticamente detalles de posibles incidentes de seguridad a Google</translation> <translation id="6992289844737586249">Preguntar primero antes de permitir que los sitios usen tu micrófono (recomendado)</translation> <translation id="7016516562562142042">Se habilitó para el motor de búsqueda actual</translation> -<translation id="7017968314960951695">Usa el contenido de los sitios que visitas, tus interacciones y actividad de navegación para personalizar las opciones</translation> <translation id="7021515813996758557">Se descargó <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Abrir en el navegador</translation> <translation id="7029809446516969842">Contraseñas</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb index 4e8a5d46..659546db 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_es.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_es.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Información del sitio</translation> <translation id="3341058695485821946">Consulta la cantidad de datos que has ahorrado</translation> <translation id="3350687908700087792">Cerrar todas las pestañas de incógnito</translation> -<translation id="3361477720586884778">Puedes personalizar la <ph name="BEGIN_LINK1" />configuración<ph name="END_LINK1" /> en cualquier momento. Google puede utilizar el contenido de los sitios web que visites y la actividad e interacciones de navegación para personalizar Chrome y otros servicios de Google, como el Traductor, la Búsqueda y los anuncios.</translation> <translation id="3365671512111106261">No disponible cuando se activa el ahorro de datos</translation> <translation id="3367813778245106622">Vuelve a iniciar sesión para que comience la sincronización</translation> <translation id="3384347053049321195">Compartir imagen</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Hace # hora}other{Hace # horas}}</translation> <translation id="5817918615728894473">Vincular</translation> <translation id="583281660410589416">Desconocido</translation> +<translation id="5833397272224757657">Utiliza el contenido de los sitios web que visitas, así como las interacciones y la actividad del navegador, para ofrecer una experiencia personalizada</translation> <translation id="5833984609253377421">Compartir enlace</translation> <translation id="5854790677617711513">Más de 30 días</translation> <translation id="5858741533101922242">Chrome no ha podido activar el adaptador Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Enviar a Google automáticamente información sobre posibles incidentes de seguridad</translation> <translation id="6992289844737586249">Preguntar antes de permitir que los sitios web utilicen el micrófono (recomendado)</translation> <translation id="7016516562562142042">Permitido en el motor de búsqueda actual</translation> -<translation id="7017968314960951695">Utiliza el contenido de los sitios web que visitas, así como las interacciones y la actividad del navegador, para ofrecer una experiencia personalizada</translation> <translation id="7021515813996758557">Se ha descargado <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Abrir en el navegador</translation> <translation id="7029809446516969842">Contraseñas</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb index d8c1d54..770ba1b 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -283,7 +283,6 @@ <translation id="3328801116991980348">اطلاعات سایت</translation> <translation id="3341058695485821946">ببینید چه مقدار داده صرفهجویی کردهاید</translation> <translation id="3350687908700087792">بستن همه برگههای ناشناس</translation> -<translation id="3361477720586884778">هرزمان بخواهید میتوانید <ph name="BEGIN_LINK1" />تنظیمات<ph name="END_LINK1" /> را سفارشی کنید. ممکن است Google از محتوای موجود در سایتهایی که بازدید میکنید و تعاملات و فعالیت مرورگر برای شخصیسازی Chrome و سرویسهای Google (مانند «مترجم»، «جستجو» و آگهیها) استفاده کند.</translation> <translation id="3365671512111106261">در صورت روشن بودن «صرفهجویی داده»، در دسترس نیست</translation> <translation id="3367813778245106622">دوباره به سیستم وارد شوید یا همگامسازی را شروع کنید</translation> <translation id="3384347053049321195">اشتراکگذاری تصویر</translation> @@ -731,7 +730,6 @@ <translation id="699220179437400583">گزارش خودکار جزئیات حوادث امنیتی احتمالی به Google.</translation> <translation id="6992289844737586249">قبل از اجازه به سایتها برای استفاده از میکروفون ابتدا سؤال شود (توصیه میشود)</translation> <translation id="7016516562562142042">برای موتور جستجوی فعلی مجاز است</translation> -<translation id="7017968314960951695">از محتوای سایتهایی که بازدید میکنید و فعالیت و تعاملات مرورگر برای شخصیسازی استفاده میکند</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> بارگیری شد</translation> <translation id="7022756207310403729">بازکردن در مرورگر</translation> <translation id="7029809446516969842">گذرواژهها</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb index 8d4bfae..06a055e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fi.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Tietoja sivustosta</translation> <translation id="3341058695485821946">Katso, kuinka paljon dataa olet säästänyt</translation> <translation id="3350687908700087792">Sulje kaikki incognito-välilehdet.</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Asetuksia<ph name="END_LINK1" /> voi muuttaa milloin tahansa. Google saattaa käyttää selaustietojasi, käyttämiesi sivustojen sisältöä ja muita selaintoimintoja Chromen, Kääntäjän, Haun, mainosten ja muiden Google-palveluiden personointiin.</translation> <translation id="3365671512111106261">Ei käytössä, kun Data Saver on käytössä</translation> <translation id="3367813778245106622">Aloita synkronointi kirjautumalla uudelleen sisään.</translation> <translation id="3384347053049321195">Jaa kuva</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# tunti sitten}other{# tuntia sitten}}</translation> <translation id="5817918615728894473">Muodosta laitepari</translation> <translation id="583281660410589416">Tuntematon</translation> +<translation id="5833397272224757657">Käyttää personointiin avaamiesi sivujen sisältöä, selaustoimintaa ja selainvuorovaikutusta</translation> <translation id="5833984609253377421">Jaa linkki</translation> <translation id="5854790677617711513">Yli 30 päivää vanhat</translation> <translation id="5858741533101922242">Chrome ei voi ottaa käyttöön Bluetooth-sovitinta.</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Ilmoita mahdollisista turvallisuusongelmista Googlelle automaattisesti</translation> <translation id="6992289844737586249">Pyydä lupaa, kun sivustot yrittävät käyttää mikrofonia (suositus).</translation> <translation id="7016516562562142042">Sallittu nykyisellä hakukoneella</translation> -<translation id="7017968314960951695">Käyttää personointiin avaamiesi sivujen sisältöä, selaustoimintaa ja selainvuorovaikutusta</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> ladattiin.</translation> <translation id="7022756207310403729">Avaa selaimessa</translation> <translation id="7029809446516969842">Salasanat</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb index b48e41d..9a82213 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Mag-browse</translation> <translation id="1993768208584545658">Gustong makipagpares ng <ph name="SITE" /></translation> <translation id="1994173015038366702">URL ng site</translation> +<translation id="2000419248597011803">Nagpapadala ng ilang cookies at paghahanap mula sa address bar at box para sa paghahanap sa iyong default na search engine</translation> <translation id="2002537628803770967">Mga credit card at address na gumagamit ng Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB na iba pang mga app</translation> <translation id="2017836877785168846">Kini-clear ang history at mga awtomatikong pagkumpleto sa address bar.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Pag-scale ng text</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Pumili ng account</translation> +<translation id="2414672073755873541">Walang content dito</translation> <translation id="2414886740292270097">Madilim</translation> <translation id="2416359993254398973">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera para sa site na ito.</translation> <translation id="2426805022920575512">Pumili ng ibang account</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> (na) segundo na lang ang natitira</translation> <translation id="2781151931089541271">1 segundo na lang ang natitira</translation> <translation id="2810645512293415242">Pinasimple ang page upang ma-save ang data at mag-load nang mas mabilis.</translation> +<translation id="281504910091592009">Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Para makuha ang iyong mga bookmark sa lahat ng device mo, mag-sign in at i-on ang pag-sync</translation> <translation id="2836148919159985482">Pindutin ang button na bumalik upang lumabas sa full screen.</translation> <translation id="2842985007712546952">Pangunahing folder</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Impormasyon ng site</translation> <translation id="3341058695485821946">Tingnan kung gaano karaming data ang iyong natipid</translation> <translation id="3350687908700087792">Isara ang lahat ng incognito na tab</translation> -<translation id="3361477720586884778">Maaaring i-customize ang <ph name="BEGIN_LINK1" />Mga Setting<ph name="END_LINK1" /> anumang oras. Maaaring gamitin ng Google ang content sa mga site na binibisita mo, mga pakikipag-ugnayan at aktibidad sa browser para i-personalize ang Chrome at ang mga serbisyo ng Google tulad ng Translate, Search at mga ad.</translation> <translation id="3365671512111106261">Hindi available kapag naka-on ang Data Saver</translation> <translation id="3367813778245106622">Mag-sign in muli upang simulan ang pag-sync</translation> <translation id="3384347053049321195">Magbahagi ng larawan</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Tumulong na mapaganda ang karanasan sa VR sa Chrome</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Kapag nag-reset, mabubura ang history ng Data Saver, kabilang ang listahan ng mga binisitang site.</translation> +<translation id="3630011985153972676">Payagan ang Chrome na mag-download ng mga artikulo para sa iyo kapag gumagamit ng Wi-Fi sa ilalim ng mga setting.</translation> <translation id="3632295766818638029">I-unmask ang password</translation> <translation id="363596933471559332">Awtomatikong mag-sign in sa mga website gamit ang mga nakaimbak na kredensyal. Kapag naka-off ang feature, hihilingin sa iyong mag-verify sa tuwing magsa-sign in ka sa isang website.</translation> <translation id="3661699943263275414">Maaaring mag-save at magbasa ng data ng cookie ang mga third-party na website</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Payagan ang mga site na magpatakbo ng JavaScript (inirerekomenda)</translation> <translation id="5345040418939504969">Na-delete ang <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">Kinopya ang URL.</translation> +<translation id="5391532827096253100">Hindi secure ang iyong koneksyon sa site na ito. Impormasyon ng site</translation> <translation id="5400569084694353794">Kapag ginamit mo ang application na ito, ang ibig sabihin, sumasang-ayon ka sa <ph name="BEGIN_LINK1" />Mga Tuntunin ng Serbisyo<ph name="END_LINK1" /> at <ph name="BEGIN_LINK2" />Patakaran sa Privacy<ph name="END_LINK2" /> ng Chrome.</translation> <translation id="5403644198645076998">Ilang partikular na site lang ang payagan</translation> <translation id="5414836363063783498">Vine-verify…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# oras ang nakalipas}one{# oras ang nakalipas}other{# na oras ang nakalipas}}</translation> <translation id="5817918615728894473">Ipares</translation> <translation id="583281660410589416">Hindi-alam</translation> +<translation id="5833397272224757657">Ginagamit ang content sa mga site na binibisita mo at ang aktibidad at mga pakikipag-ugnayan sa browser para sa pag-personalize</translation> <translation id="5833984609253377421">Ibahagi ang link</translation> <translation id="5854790677617711513">Mas matagal sa 30 araw</translation> <translation id="5858741533101922242">Hindi ma-on ng Chrome ang Bluetooth adapter</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Binuksan ang panel ng navigation sa buong screen</translation> <translation id="6192333916571137726">File ng download</translation> <translation id="6192792657125177640">Mga Pagbubukod</translation> +<translation id="6206551242102657620">Secure ang koneksyon. Impormasyon ng site</translation> <translation id="6210748933810148297">Hindi si <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Mga Opsyon sa <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">I-unlock upang i-export ang iyong mga password</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Makikita ng sinumang makakatingin sa na-export na file ang iyong mga password.</translation> <translation id="6942665639005891494">Baguhin ang default na lokasyon ng pag-download anumang oras gamit ang opsyong menu ng Mga Setting</translation> <translation id="6945221475159498467">Pumili</translation> +<translation id="6963642900430330478">Mapanganib ang page na ito. Impormasyon ng site</translation> <translation id="6963766334940102469">Mag-delete ng mga bookmark</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">I-reset ang mga setting ng pag-translate</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Awtomatikong iulat sa Google ang mga detalye ng mga posibleng isyu sa seguridad</translation> <translation id="6992289844737586249">Magtanong muna bago payagan ang mga site na gamitin ang iyong mikropono (inirerekomenda)</translation> <translation id="7016516562562142042">Pinapayagan para sa kasalukuyang search engine</translation> -<translation id="7017968314960951695">Gumagamit ng content sa mga site na binibisita mo at aktibidad sa browser at mga pakikipag-ugnayan para sa pag-personalize.</translation> <translation id="7021515813996758557">Na-download na ang <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Buksan sa browser</translation> <translation id="7029809446516969842">Mga Password</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb index f84d1dd..75a1ca31 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_fr.xtb
@@ -283,7 +283,6 @@ <translation id="3328801116991980348">Informations sur le site</translation> <translation id="3341058695485821946">Découvrez la quantité de données économisées</translation> <translation id="3350687908700087792">Fermer tous les onglets de navigation privée</translation> -<translation id="3361477720586884778">Nous pouvons nous appuyer sur le contenu des sites que vous consultez, ainsi que sur vos activités de navigation et vos interactions avec le navigateur pour personnaliser Chrome, les annonces qui vous sont proposées et d'autres de nos services comme Google Traduction et la recherche Google. Sachez toutefois que vous pouvez personnaliser les <ph name="BEGIN_LINK1" />paramètres<ph name="END_LINK1" /> à tout moment.</translation> <translation id="3365671512111106261">Non disponible lorsque l'économiseur de données est activé</translation> <translation id="3367813778245106622">Connectez-vous de nouveau à votre compte pour démarrer la synchronisation.</translation> <translation id="3384347053049321195">Partager l'image</translation> @@ -732,7 +731,6 @@ <translation id="699220179437400583">Signaler automatiquement les incidents de sécurité potentiels à Google</translation> <translation id="6992289844737586249">Demander avant d'autoriser des sites à utiliser mon micro (recommandé)</translation> <translation id="7016516562562142042">Autorisé pour le moteur de recherche actuel</translation> -<translation id="7017968314960951695">Utilise le contenu des sites que vous consultez, votre activité de navigation et vos interactions pour la personnalisation</translation> <translation id="7021515813996758557">Le fichier "<ph name="FILE_NAME" />" a bien été téléchargé.</translation> <translation id="7022756207310403729">Ouvrir dans le navigateur</translation> <translation id="7029809446516969842">Mots de passe</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb index 9e7f9ac..756fae5 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">ब्राउज़ करें</translation> <translation id="1993768208584545658"><ph name="SITE" /> युग्मित करना चाहता है</translation> <translation id="1994173015038366702">साइट URL</translation> +<translation id="2000419248597011803">'पता बार' और 'खोज बॉक्स' की कुछ कुकी और खोजों को आपके डिफ़ॉल्ट खोज इंजन पर भेजा जाता है</translation> <translation id="2002537628803770967">Google Pay का इस्तेमाल करने वाले क्रेडिट कार्ड और पते</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> केबी अन्य ऐप्लिकेशन</translation> <translation id="2017836877785168846">इतिहास साफ़ करता है और पता बार में स्वत: पूर्णता को साफ़ करता है.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">लेख स्केलिंग</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> एमबी</translation> <translation id="2410754283952462441">कोई खाता चुनें</translation> +<translation id="2414672073755873541">यहां कोई सामग्री नहीं है</translation> <translation id="2414886740292270097">गहरा</translation> <translation id="2416359993254398973">Chrome को इस साइट के लिए आपका कैमरा एक्सेस करने की अनुमति चाहिए.</translation> <translation id="2426805022920575512">दूसरा खाता चुनें</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> सेकंड शेष</translation> <translation id="2781151931089541271">1 सेकंड शेष</translation> <translation id="2810645512293415242">डेटा बचाने और तेज़ी से लोड करने के लिए आसान बनाया गया पेज.</translation> +<translation id="281504910091592009">अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें</translation> <translation id="2818669890320396765">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए, साइन इन करें और 'सिंक करें' को चालू करें</translation> <translation id="2836148919159985482">पूर्ण स्क्रीन से बाहर निकलने के लिए वापस जाएं बटन स्पर्श करें.</translation> <translation id="2842985007712546952">मूल फ़ोल्डर</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">साइट जानकारी</translation> <translation id="3341058695485821946">देखें कि आपने कितना डेटा बचाया है</translation> <translation id="3350687908700087792">सभी गुप्त टैब बंद करें</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />सेटिंग<ph name="END_LINK1" /> को कभी भी अपनी पसंद के मुताबिक बनाया जा सकता है. Chrome और अनुवाद, सर्च जैसी Google सेवाओं साथ ही विज्ञापनों को आपकी पसंद के मुताबिक आपको दिखाने के लिए Google उन साइटों की सामग्री जिन पर आप गए हैं, ब्राउज़र इंटरैक्शन और गतिविधि का इस्तेमाल कर सकता है.</translation> <translation id="3365671512111106261">डेटा बचाने के साधन के चालू होने पर यह सेटिंग अनुपलब्ध होती है</translation> <translation id="3367813778245106622">समन्वयन शुरू करने के लिए फिर से प्रवेश करें</translation> <translation id="3384347053049321195">चित्र शेयर करें</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Chrome में VR अनुभव को बेहतर बनाने में सहायता करें</translation> <translation id="3616113530831147358">ऑडियो</translation> <translation id="3620176948598597475">रीसेट करने से आपकी देखी गई साइटों की सूची के साथ, डेटा बचाने के साधन का इतिहास हमेशा के लिए मिट जाता है.</translation> +<translation id="3630011985153972676">सेटिंग में जाकर जब ’वाई-फ़ाई’ पर हों तब Chrome को अपने लिए लेख डाउनलोड करने की अनुमति दें.</translation> <translation id="3632295766818638029">पासवर्ड दिखाएं</translation> <translation id="363596933471559332">संग्रहित क्रेडेंशियल का उपयोग करके वेबसाइटों में अपने आप प्रवेश करें. सुविधा के बंद होने पर, किसी वेबसाइट में प्रवेश करने से पहले आपसे हर बार सत्यापन के लिए कहा जाएगा.</translation> <translation id="3661699943263275414">तृतीय-पक्ष वेबसाइटें कुकी डेटा को सहेज सकती हैं और पढ़ सकती हैं</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">साइट को JavaScript चलाने की अनुमति दें (अनुशंसित)</translation> <translation id="5345040418939504969"><ph name="BOOKMARK_TITLE" /> हटाया गया</translation> <translation id="5372829067651257087">URL की कॉपी की गई.</translation> +<translation id="5391532827096253100">इस साइट से आपका कनेक्शन सुरक्षित नहीं है. साइट की जानकारी</translation> <translation id="5400569084694353794">इस ऐप्लिकेशन का उपयाेग करके, आप Chrome की <ph name="BEGIN_LINK1" />सेवा की शर्तों<ph name="END_LINK1" /> और <ph name="BEGIN_LINK2" />निजता नोटिस<ph name="END_LINK2" /> से सहमत होते हैं.</translation> <translation id="5403644198645076998">सिर्फ़ कुछ निश्चित साइटों को ही अनुमति दें</translation> <translation id="5414836363063783498">सत्यापन हो रहा है...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# घंटा पहले}one{# घंटे पहले}other{# घंटे पहले}}</translation> <translation id="5817918615728894473">युग्मित करें</translation> <translation id="583281660410589416">अज्ञात</translation> +<translation id="5833397272224757657">आप जिन साइटों पर जाते हैं उनकी सामग्री के साथ ही ब्राउज़र गतिविधि और इंटरैक्शन का इस्तेमाल आपके मनमुताबिक बनाने के लिए करता है</translation> <translation id="5833984609253377421">लिंक शेयर करें</translation> <translation id="5854790677617711513">30 दिनों से ज़्यादा पुराना</translation> <translation id="5858741533101922242">Chrome, ब्लूटूथ एडाप्टर को चालू नहीं कर सका</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">नेविगेशन पैनल पूरी स्क्रीन पर खुला</translation> <translation id="6192333916571137726">डाउनलोड फ़ाइल कहां सेव करें</translation> <translation id="6192792657125177640">अपवाद</translation> +<translation id="6206551242102657620">कनेक्शन सुरक्षित है. साइट की जानकारी</translation> <translation id="6210748933810148297">क्या <ph name="EMAIL" /> नहीं हैं?</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> विकल्प</translation> <translation id="6221633008163990886">अपने पासवर्ड निर्यात करने के लिए अनलॉक करें</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">आपके पासवर्ड, निर्यात की गई फ़ाइल देख पाने वाले सभी व्यक्तियों को दिखाई देंगे.</translation> <translation id="6942665639005891494">सेटिंग मेन्यू विकल्प का इस्तेमाल करके डिफ़ॉल्ट डाउनलोड स्थान किसी भी समय बदलें</translation> <translation id="6945221475159498467">चुनें</translation> +<translation id="6963642900430330478">यह पेज खतरनाक है. साइट की जानकारी</translation> <translation id="6963766334940102469">बुकमार्क हटाएं</translation> <translation id="6965382102122355670">ठीक है</translation> <translation id="6978479750597523876">अनुवाद सेटिंग रीसेट करें</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Google को संभावित सुरक्षा घटनाओं के विवरणों की अपने आप रिपोर्ट करें</translation> <translation id="6992289844737586249">साइट को अपने माइक्रोफ़ोन का उपयोग करने देने से पहले अनुमति लेना आवश्यक बनाएं (अनुशंसित)</translation> <translation id="7016516562562142042">अभी वाले खोज इंजन के लिए अनुमति दी गई</translation> -<translation id="7017968314960951695">आप जिन साइटों पर जाते हैं उनकी गतिविधि और ब्राउज़र गतिविधि के साथ ही इंटरैक्शन का इस्तेमाल मनमुताबिक बनाने के लिए करती है</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> को डाउनलोड किया गया</translation> <translation id="7022756207310403729">ब्राउज़र में खोलें</translation> <translation id="7029809446516969842">पासवर्ड</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb index d5a4e88..e2227ff 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hr.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Pregledaj</translation> <translation id="1993768208584545658">Web-lokacija <ph name="SITE" /> želi se upariti</translation> <translation id="1994173015038366702">URL web-lokacije</translation> +<translation id="2000419248597011803">Zadanoj tražilici šalje neke kolačiće i pretraživanja iz adresne trake i okvira za pretraživanje</translation> <translation id="2002537628803770967">Kreditne kartice i adrese s Google Paya</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB ostale aplikacije</translation> <translation id="2017836877785168846">Briše povijest i automatsko dovršavanje u adresnoj traci.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Skaliranje teksta</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Odabir računa</translation> +<translation id="2414672073755873541">Ovdje nema sadržaja</translation> <translation id="2414886740292270097">Tamno</translation> <translation id="2416359993254398973">Chrome treba dopuštenje za pristup fotoaparatu za ovu web-lokaciju.</translation> <translation id="2426805022920575512">Odaberi drugi račun</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Preostalo sekundi: <ph name="SECONDS" /></translation> <translation id="2781151931089541271">Još 1 s</translation> <translation id="2810645512293415242">Pojednostavljena stranica štedi podatke i učitava se brže.</translation> +<translation id="281504910091592009">Spremljene zaporke možete pregledati i upravljati njima na svojem <ph name="BEGIN_LINK" />Google računu<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Da bi se vaše oznake prikazale na svim vašim uređajima, prijavite se i uključite sinkronizaciju</translation> <translation id="2836148919159985482">Dodirnite gumb Natrag da biste zatvorili prikaz na cijelom zaslonu.</translation> <translation id="2842985007712546952">Nadređena mapa</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informacije o web-lokaciji</translation> <translation id="3341058695485821946">Pogledajte količinu ušteđenih podataka</translation> <translation id="3350687908700087792">Zatvori sve anonimne kartice</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Postavke<ph name="END_LINK1" /> se mogu prilagoditi u bilo kojem trenutku. Google može upotrebljavati sadržaj na web-lokacijama koje posjećujete, vaše interakcije u pregledniku i aktivnost pregledavanja kako bi prilagodio Chrome i Googleove usluge kao što su Prevoditelj, Pretraživanje i oglasi.</translation> <translation id="3365671512111106261">Nije dostupno uz uključenu Uštedu podataka</translation> <translation id="3367813778245106622">Prijavite se ponovo da biste pokrenuli sinkronizaciju</translation> <translation id="3384347053049321195">Dijeli sliku</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Pomognite poboljšati doživljaj VR-a u Chromeu</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Vraćanjem na zadano briše se povijest Uštede podataka, uključujući popis posjećenih web-lokacija.</translation> +<translation id="3630011985153972676">Dopustite Chromeu da preuzima članke za vas kada je na Wi-Fi-ju prema postavkama.</translation> <translation id="3632295766818638029">Prikaži zaporku</translation> <translation id="363596933471559332">Automatski se prijavite na web-lokacije pomoću spremljenih vjerodajnica. Kada je ta značajka isključena, tražit će se potvrda prije svakog prijavljivanja na web-lokaciju.</translation> <translation id="3661699943263275414">Web-lokacije trećih strana mogu spremati i čitati podatke kolačića</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Web-lokacije mogu pokretati JavaScript (preporučeno)</translation> <translation id="5345040418939504969">Izbrisana je oznaka <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">URL je kopiran.</translation> +<translation id="5391532827096253100">Veza s web-lokacijom nije sigurna. Informacije o web-lokaciji</translation> <translation id="5400569084694353794">Upotrebom te aplikacije prihvaćate Chromeove <ph name="BEGIN_LINK1" />Uvjete pružanja usluge<ph name="END_LINK1" /> i <ph name="BEGIN_LINK2" />Obavijest o privatnosti<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">Dopusti samo određene web-lokacije</translation> <translation id="5414836363063783498">Potvrđivanje…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{prije # sata}one{prije # sata}few{prije # sata}other{prije # sati}}</translation> <translation id="5817918615728894473">Upari</translation> <translation id="583281660410589416">Nepoznato</translation> +<translation id="5833397272224757657">Upotrebljava sadržaj na web-lokacijama koje posjećujete te aktivnosti i interakcije u pregledniku radi prilagodbe</translation> <translation id="5833984609253377421">Dijeli vezu</translation> <translation id="5854790677617711513">Starije od 30 dana</translation> <translation id="5858741533101922242">Chrome ne može uključiti Bluetooth adapter</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Navigacijska ploča otvorena je cijelom visinom</translation> <translation id="6192333916571137726">Preuzimanje datoteka datoteka</translation> <translation id="6192792657125177640">Iznimke</translation> +<translation id="6206551242102657620">Veza je sigurna. Informacije o web-lokaciji</translation> <translation id="6210748933810148297">Niste <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Opcije stavke <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Otključajte da biste izvezli zaporke</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Vaše zaporke bit će vidljive svima koji vide izvezenu datoteku.</translation> <translation id="6942665639005891494">Zadanu lokaciju preuzimanja možete promijeniti kad god želite putem opcije u izborniku Postavke</translation> <translation id="6945221475159498467">Odaberi</translation> +<translation id="6963642900430330478">Ta je stranica opasna. Informacije o web-lokaciji</translation> <translation id="6963766334940102469">Brisanje oznaka</translation> <translation id="6965382102122355670">U redu</translation> <translation id="6978479750597523876">Poništavanje postavki prevođenja</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automatski prijavi Googleu pojedinosti o mogućim sigurnosnim incidentima</translation> <translation id="6992289844737586249">Web-lokacije moraju tražiti dopuštenje za upotrebu mikrofona (preporučeno)</translation> <translation id="7016516562562142042">Dopušteno za trenutačnu tražilicu</translation> -<translation id="7017968314960951695">Upotrebljava sadržaj na web-lokacijama koje posjećujete te aktivnosti i interakcije u pregledniku radi prilagodbe</translation> <translation id="7021515813996758557">Datoteka <ph name="FILE_NAME" /> je preuzeta</translation> <translation id="7022756207310403729">Otvori u pregledniku</translation> <translation id="7029809446516969842">Zaporke</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb index 5ca53c4..755621c 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_hu.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Webhelyadatok</translation> <translation id="3341058695485821946">Megnézheti, mennyi adatot takarított meg</translation> <translation id="3350687908700087792">Az összes inkognitólap bezárása</translation> -<translation id="3361477720586884778">A <ph name="BEGIN_LINK1" />Beállításokat<ph name="END_LINK1" /> bármikor személyre szabhatja. A Google felhasználhatja az Ön által felkeresett webhelyeken lévő tartalmakat, a böngészési interakciókat és tevékenységeket a Chrome és az egyéb Google-szolgáltatások (például a Fordító, a Keresés és a megjelenő hirdetések) személyre szabásához.</translation> <translation id="3365671512111106261">Nem áll rendelkezésre, ha az Adatforgalom-csökkentő be van kapcsolva</translation> <translation id="3367813778245106622">A szinkronizálás megkezdéséhez jelentkezzen be újra</translation> <translation id="3384347053049321195">Kép megosztása</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# órája}other{# órája}}</translation> <translation id="5817918615728894473">Párosítás</translation> <translation id="583281660410589416">Ismeretlen</translation> +<translation id="5833397272224757657">A felkeresett webhelyeken található tartalmak, a böngészőtevékenysége, valamint a böngészőben végzett interakciók felhasználása személyre szabáshoz</translation> <translation id="5833984609253377421">Link megosztása</translation> <translation id="5854790677617711513">30 napnál régebbi</translation> <translation id="5858741533101922242">A Chrome nem tudja bekapcsolni a Bluetooth-adaptert</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Az esetleges biztonsági események automatikus jelentése a Google-nak</translation> <translation id="6992289844737586249">Kérdezzen rá, mielőtt engedélyezné a webhelyek számára a mikrofon használatát (ajánlott)</translation> <translation id="7016516562562142042">Engedélyezett a jelenlegi keresőmotor számára</translation> -<translation id="7017968314960951695">A felkeresett webhelyek tartalmait, a böngészőtevékenységeket, valamint a böngészőben végzett interakciókat felhasználja a személyre szabáshoz</translation> <translation id="7021515813996758557">A(z) <ph name="FILE_NAME" /> letöltve</translation> <translation id="7022756207310403729">Megnyitás böngészőben</translation> <translation id="7029809446516969842">Jelszavak</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb index e0619de..9671010 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_id.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_id.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Informasi situs</translation> <translation id="3341058695485821946">Lihat berapa banyak data yang dihemat</translation> <translation id="3350687908700087792">Tutup semua jendela penyamaran</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Setelan<ph name="END_LINK1" /> dapat disesuaikan kapan saja. Google dapat menggunakan konten di situs yang Anda buka, serta interaksi dan aktivitas browser untuk mempersonalisasi Chrome dan layanan Google seperti Terjemahan, Penelusuran, dan iklan.</translation> <translation id="3365671512111106261">Tidak tersedia jika Penghemat Kuota Internet diaktifkan</translation> <translation id="3367813778245106622">Masuk lagi untuk memulai sinkronisasi</translation> <translation id="3384347053049321195">Bagikan gambar</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# jam yang lalu}other{# jam yang lalu}}</translation> <translation id="5817918615728894473">Sandingkan</translation> <translation id="583281660410589416">Tidak dikenal</translation> +<translation id="5833397272224757657">Menggunakan konten di situs yang Anda buka serta aktivitas browser dan interaksi untuk personalisasi</translation> <translation id="5833984609253377421">Bagikan link</translation> <translation id="5854790677617711513">Lebih dari 30 hari</translation> <translation id="5858741533101922242">Chrome tidak dapat mengaktifkan adaptor Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Otomatis melaporkan detail kemungkinan insiden keamanan ke Google</translation> <translation id="6992289844737586249">Tanya terlebih dahulu sebelum mengizinkan situs menggunakan mikrofon Anda (disarankan)</translation> <translation id="7016516562562142042">Diizinkan untuk mesin telusur yang sedang digunakan</translation> -<translation id="7017968314960951695">Menggunakan konten di situs yang Anda buka serta aktivitas browser dan interaksi untuk personalisasi.</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> didownload</translation> <translation id="7022756207310403729">Buka di browser</translation> <translation id="7029809446516969842">Sandi</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb index 0b6b0e7..8f025e2 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_it.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_it.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Informazioni sito</translation> <translation id="3341058695485821946">Scopri la quantità di dati risparmiata</translation> <translation id="3350687908700087792">Chiudi tutte le schede di navigazione in incognito</translation> -<translation id="3361477720586884778">Le <ph name="BEGIN_LINK1" />impostazioni<ph name="END_LINK1" /> possono essere personalizzate in qualsiasi momento. Google potrebbe usare i contenuti dei siti che visiti, le attività e le interazioni con il browser per personalizzare Chrome e altri servizi Google come Traduttore, Ricerca e gli annunci.</translation> <translation id="3365671512111106261">Non disponibile quando è attiva la funzione Risparmio dati</translation> <translation id="3367813778245106622">Accedi nuovamente per avviare la sincronizzazione</translation> <translation id="3384347053049321195">Condividi immagine</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# ora fa}other{# ore fa}}</translation> <translation id="5817918615728894473">Accoppia</translation> <translation id="583281660410589416">Sconosciuto</translation> +<translation id="5833397272224757657">Utilizza i contenuti dei siti visitati oltre ad attività e interazioni relative al browser per la personalizzazione</translation> <translation id="5833984609253377421">Condividi link</translation> <translation id="5854790677617711513">Oltre 30 giorni fa</translation> <translation id="5858741533101922242">Chrome non riesce ad attivare l'adattatore Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Segnala automaticamente a Google i dettagli dei possibili problemi di sicurezza</translation> <translation id="6992289844737586249">Chiedi conferma prima di consentire ai siti di utilizzare il microfono (opzione consigliata)</translation> <translation id="7016516562562142042">Consentita per il motore di ricerca corrente</translation> -<translation id="7017968314960951695">Utilizza i contenuti dei siti visitati e le attività e interazioni relative al browser per la personalizzazione</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> scaricato</translation> <translation id="7022756207310403729">Apri nel browser</translation> <translation id="7029809446516969842">Password</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb index 893f106..c20d942 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">דפדף</translation> <translation id="1993768208584545658"><ph name="SITE" /> רוצה לבצע התאמה עם</translation> <translation id="1994173015038366702">כתובת אתר</translation> +<translation id="2000419248597011803">שליחה של חלק מקובצי ה-Cookie והחיפושים מסרגל הכתובות ומתיבת החיפוש אל מנוע החיפוש שהוגדר כברירת מחדל</translation> <translation id="2002537628803770967">כרטיסי אשראי וכתובות דרך Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB ליישומים אחרים</translation> <translation id="2017836877785168846">מנקה את ההיסטוריה וההשלמות האוטומטיות בסרגל הכתובות</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">שינוי גודל טקסט</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">בחירת חשבון</translation> +<translation id="2414672073755873541">אין כאן תוכן</translation> <translation id="2414886740292270097">כהה</translation> <translation id="2416359993254398973">Chrome זקוק להרשאה גישה אל המצלמה בשביל האתר הזה.</translation> <translation id="2426805022920575512">בחירת חשבון אחר</translation> @@ -227,7 +229,8 @@ <translation id="2777555524387840389">נותרו <ph name="SECONDS" /> שניות</translation> <translation id="2781151931089541271">נותרה שניה אחת</translation> <translation id="2810645512293415242">דף פשוט יותר שחוסך בנתונים ונטען מהר יותר.</translation> -<translation id="2818669890320396765">כדי לקבל גישה אל הסימניות שלך בכל המכשירים יש להיכנס לחשבון ולהפעיל את הסנכרון</translation> +<translation id="281504910091592009">הצגה וניהול של סיסמאות שמורות ב<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation> +<translation id="2818669890320396765">כדי לקבל גישה אל הסימניות שלך בכל המכשירים, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation> <translation id="2836148919159985482">כדי לצאת ממסך מלא, גע בלחצן 'הקודם'.</translation> <translation id="2842985007712546952">תיקיית אב</translation> <translation id="2870560284913253234">אתר</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">פרטי אתר</translation> <translation id="3341058695485821946">בדיקת החיסכון בצריכת נתונים</translation> <translation id="3350687908700087792">סגור את כל כרטיסיות הגלישה בסתר</translation> -<translation id="3361477720586884778">אפשר תמיד להתאים אישית את <ph name="BEGIN_LINK1" />ההגדרות<ph name="END_LINK1" />. Google עשויה להשתמש בתוכן מאתרים שאליהם נכנסת, באינטראקציות בדפדפן ובפעילות גלישה כדי להתאים אישית את Chrome ואת שירותי Google, כמו Translate, החיפוש ומודעות.</translation> <translation id="3365671512111106261">לא זמין כאשר חוסך הנתונים (Data Saver) פועל</translation> <translation id="3367813778245106622">היכנס שוב כדי להתחיל בסנכרון</translation> <translation id="3384347053049321195">שתף תמונה</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">עזור לשפר את חוויית VR ב-Chrome</translation> <translation id="3616113530831147358">אודיו</translation> <translation id="3620176948598597475">האיפוס מוחק את ההיסטוריה של חוסך הנתונים (Data Saver), כולל רשימת האתרים שבהם ביקרת.</translation> +<translation id="3630011985153972676">Chrome יכול להוריד בשבילך מאמרים כשקיים חיבור ל-Wi-Fi. האפשרות הזאת זמינה דרך ההגדרות.</translation> <translation id="3632295766818638029">חשוף סיסמה</translation> <translation id="363596933471559332">היכנס באופן אוטומטי לאתרים באמצעות פרטי כניסה מאוחסנים. כשתכונה זו כבויה, תתבקש לבצע אימות לפני כל כניסה לאתר.</translation> <translation id="3661699943263275414">אתרים של צד שלישי יוכלו לשמור ולקרוא נתונים של קובצי Cookie</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">אפשר לאתרים להריץ JavaScript (מומלץ)</translation> <translation id="5345040418939504969"><ph name="BOOKMARK_TITLE" /> נמחק</translation> <translation id="5372829067651257087">כתובת האתר הועתקה.</translation> +<translation id="5391532827096253100">החיבור שלך לאתר הזה לא מאובטח. פרטי האתר</translation> <translation id="5400569084694353794">בעצם השימוש באפליקציה זו, אתה מסכים ל<ph name="BEGIN_LINK1" />תנאים ולהגבלות<ph name="END_LINK1" /> ול<ph name="BEGIN_LINK2" />הודעת הפרטיות<ph name="END_LINK2" /> של Chrome.</translation> <translation id="5403644198645076998">התר גישה רק לאתרים ספציפיים</translation> <translation id="5414836363063783498">מאמת…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{לפני שעה}two{לפני שעתיים}many{לפני # שעות}other{לפני # שעות}}</translation> <translation id="5817918615728894473">התאם</translation> <translation id="583281660410589416">לא ידוע</translation> +<translation id="5833397272224757657">התוכן מאתרים שנכנסת אליהם, פעילות הדפדפן והאינטראקציות שלך ישמשו לצורך התאמה אישית</translation> <translation id="5833984609253377421">שתף קישור</translation> <translation id="5854790677617711513">לפני יותר מ-30 ימים</translation> <translation id="5858741533101922242">לא ניתן להפעיל ב-Chrome את מתאם Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">חלונית הניווט נפתחה בגובה מלא</translation> <translation id="6192333916571137726">קובץ הורדה</translation> <translation id="6192792657125177640">יוצאי דופן</translation> +<translation id="6206551242102657620">החיבור מאובטח. פרטי האתר</translation> <translation id="6210748933810148297">אינך <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">אפשרויות בשביל <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">יש לבטל את הנעילה כדי לייצא סיסמאות</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">כל מי שיוכל לגשת אל הקובץ המיוצא יוכל לראות את הסיסמאות שלך.</translation> <translation id="6942665639005891494">ניתן תמיד לשנות את מיקום ברירת המחדל להורדות דרך האפשרות 'הגדרות' בתפריט</translation> <translation id="6945221475159498467">בחר</translation> +<translation id="6963642900430330478">הדף הזה מסוכן. פרטי האתר</translation> <translation id="6963766334940102469">מחק סימניות</translation> <translation id="6965382102122355670">אישור</translation> <translation id="6978479750597523876">אפס את הגדרות Google Translate</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">דיווח אוטומטית ל-Google על פרטים של בעיות אבטחה אפשריות</translation> <translation id="6992289844737586249">שאל לפני שתאפשר לאתרים להשתמש במיקרופון (מומלץ)</translation> <translation id="7016516562562142042">מופעל למנוע החיפוש הנוכחי</translation> -<translation id="7017968314960951695">התוכן מאתרים שאליהם נכנסת, פעילות הדפדפן ואינטראקציות ישמשו להתאמה אישית</translation> <translation id="7021515813996758557">הורדת הקובץ <ph name="FILE_NAME" /> בוצעה</translation> <translation id="7022756207310403729">פתיחה בדפדפן</translation> <translation id="7029809446516969842">סיסמאות</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb index a59a27c..08a2b339 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">サイト情報</translation> <translation id="3341058695485821946">データ削減量を確認できます</translation> <translation id="3350687908700087792">すべてのシークレット タブを閉じます</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />はいつでも変更できます。Google は、Chrome やその他の Google サービス(翻訳、検索、広告など)をカスタマイズする目的で、ユーザーがアクセスしたサイトのコンテンツ、ユーザーの閲覧行動や操作を使用することがあります。</translation> <translation id="3365671512111106261">データセーバーが有効になっている場合は使用できません</translation> <translation id="3367813778245106622">同期を開始するにはもう一度ログインします</translation> <translation id="3384347053049321195">画像を共有</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# 時間前}other{# 時間前}}</translation> <translation id="5817918615728894473">ペア設定</translation> <translation id="583281660410589416">不明</translation> +<translation id="5833397272224757657">ユーザーがアクセスしたサイトのコンテンツと、ブラウザのアクティビティおよび操作をカスタマイズに使用します</translation> <translation id="5833984609253377421">リンクを共有</translation> <translation id="5854790677617711513">30 日以上経過</translation> <translation id="5858741533101922242">Chrome から Bluetooth アダプタをオンにできません</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">セキュリティに関する事象についての詳細を Google に自動送信する</translation> <translation id="6992289844737586249">サイトにマイクの使用を許可する前に確認する(推奨)</translation> <translation id="7016516562562142042">現在の検索エンジンに対しては許可</translation> -<translation id="7017968314960951695">アクセスしたサイトのコンテンツ、ブラウザのアクティビティと操作をカスタマイズに使用します</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> をダウンロードしました</translation> <translation id="7022756207310403729">ブラウザで開く</translation> <translation id="7029809446516969842">パスワード</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb index 4d15622..df74e31 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ko.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">사이트 정보</translation> <translation id="3341058695485821946">저장한 데이터의 양 보기</translation> <translation id="3350687908700087792">모든 시크릿 탭 닫기</translation> -<translation id="3361477720586884778">언제든지 <ph name="BEGIN_LINK1" />설정<ph name="END_LINK1" />을 변경할 수 있습니다. Google에서 Chrome 및 번역, 검색과 같은 기타 Google 서비스, 광고를 맞춤설정하기 위해 사용자가 방문한 사이트의 콘텐츠, 탐색 활동, 상호작용 기록을 사용할 수 있습니다.</translation> <translation id="3365671512111106261">데이터 절약 모드가 켜져 있으면 사용할 수 없습니다.</translation> <translation id="3367813778245106622">다시 로그인하여 동기화 시작</translation> <translation id="3384347053049321195">이미지 공유</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{#시간 전}other{#시간 전}}</translation> <translation id="5817918615728894473">페어링</translation> <translation id="583281660410589416">알 수 없음</translation> +<translation id="5833397272224757657">방문한 사이트의 콘텐츠와 브라우저 활동 및 상호작용이 맞춤설정에 사용됩니다.</translation> <translation id="5833984609253377421">링크 공유</translation> <translation id="5854790677617711513">30일 이상 전</translation> <translation id="5858741533101922242">Chrome에서 블루투스 어댑터를 사용 설정할 수 없습니다.</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">발생 가능성이 있는 보안 문제의 세부정보를 자동으로 Google에 신고합니다.</translation> <translation id="6992289844737586249">사이트에서 마이크를 사용하기 전에 확인(권장)</translation> <translation id="7016516562562142042">현재 검색 엔진에 허용됨</translation> -<translation id="7017968314960951695">방문한 사이트의 콘텐츠, 브라우저 활동 및 상호작용이 맞춤설정에 사용됩니다.</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" />(이)가 다운로드됨</translation> <translation id="7022756207310403729">브라우저에서 열기</translation> <translation id="7029809446516969842">비밀번호</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb index d54095e..0d8d39d6 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lt.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Naršyti</translation> <translation id="1993768208584545658">Svetainė <ph name="SITE" /> nori būti susieta su</translation> <translation id="1994173015038366702">Svetainės URL</translation> +<translation id="2000419248597011803">Numatytajam paieškos varikliui siunčiami kai kurie slapukai ir į adreso juostą bei paieškos laukelį įvestos paieškos</translation> <translation id="2002537628803770967">„Google Pay“ naudojamos kredito kortelės ir adresai</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB užima kitos programos</translation> <translation id="2017836877785168846">Išvaloma istorija ir automatiniai užbaigimai adreso juostoje.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Teksto mastelio keitimas</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Pasirinkite paskyrą</translation> +<translation id="2414672073755873541">Čia nėra jokio turinio</translation> <translation id="2414886740292270097">Tamsi</translation> <translation id="2416359993254398973">„Chrome“ reikia leidimo, kad galėtų naudoti jūsų fotoaparatą šioje svetainėje.</translation> <translation id="2426805022920575512">Pasirinkti kitą paskyrą</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Liko <ph name="SECONDS" /> sek.</translation> <translation id="2781151931089541271">Liko 1 sek.</translation> <translation id="2810645512293415242">Supaprastintas puslapis, kad būtų galima saugoti duomenis ir greičiau įkelti.</translation> +<translation id="281504910091592009">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="BEGIN_LINK" />„Google“ paskyroje<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Jei norite pasiekti žymes visuose įrenginiuose, prisijunkite ir įjunkite sinchronizavimą</translation> <translation id="2836148919159985482">Palieskite mygtuką „Atgal“, kad išeitumėte iš viso ekrano režimo.</translation> <translation id="2842985007712546952">Viršaplankis</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Svetainės informacija</translation> <translation id="3341058695485821946">Žr., kiek duomenų sutaupėte</translation> <translation id="3350687908700087792">Uždaryti visus inkognito skirtukų lapus</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Nustatymus<ph name="END_LINK1" /> galima tinkinti bet kuriuo metu. „Google“ gali naudoti jūsų lankomų svetainių turinį, naršyklės sąveikas ir veiklą suasmenindama „Chrome“ ir kitas „Google“ paslaugas, pvz., Vertėją, Paiešką ir skelbimus.</translation> <translation id="3365671512111106261">Nepasiekiama, kai Duomenų taupymo priemonė įjungta</translation> <translation id="3367813778245106622">Prisijunkite dar kartą, kad pradėtumėte sinchronizavimą</translation> <translation id="3384347053049321195">Bendrinti vaizdą</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Padėkite pagerinti VR patirtį „Chrome“</translation> <translation id="3616113530831147358">Garsas</translation> <translation id="3620176948598597475">Iš naujo nustačius bus ištrinta Duomenų taupymo priemonės istorija, įskaitant lankytų svetainių sąrašą.</translation> +<translation id="3630011985153972676">Leiskite „Chrome“ atsisiųsti straipsnius už jus, kai nustatymuose esate įgalinę „Wi-Fi“.</translation> <translation id="3632295766818638029">Rodyti slaptažodį</translation> <translation id="363596933471559332">Automatiškai prisijungti prie svetainių naudojant išsaugotus prisijungimo duomenis. Kai funkcija išjungta, kaskart prisijungiant prie svetainės prašoma patvirtinti.</translation> <translation id="3661699943263275414">Trečiųjų šalių svetainės gali saugoti ir nuskaityti slapukų duomenis</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Leisti svetainėms paleisti „JavaScript“ (rekomenduojama)</translation> <translation id="5345040418939504969">Ištrinta „<ph name="BOOKMARK_TITLE" />“</translation> <translation id="5372829067651257087">URL nukopijuotas.</translation> +<translation id="5391532827096253100">Ryšys su šia svetaine nėra saugus. Svetainės informacija</translation> <translation id="5400569084694353794">Naudodami šią programą sutinkate su „Chrome“ <ph name="BEGIN_LINK1" />paslaugų teikimo sąlygomis<ph name="END_LINK1" /> ir <ph name="BEGIN_LINK2" />privatumo pranešimo<ph name="END_LINK2" /> sąlygomis.</translation> <translation id="5403644198645076998">Leisti tik konkrečias svetaines</translation> <translation id="5414836363063783498">Patvirtinama…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Prieš 1 valandą}one{Prieš # valandą}few{Prieš # valandas}many{Prieš # valandos}other{Prieš # valandų}}</translation> <translation id="5817918615728894473">Susieti</translation> <translation id="583281660410589416">Nežinoma</translation> +<translation id="5833397272224757657">Naudojamas svetainių, kuriose lankotės, turinys ir naršyklės veikla bei sąveikos suasmeninimo tikslais</translation> <translation id="5833984609253377421">Bendrinti nuorodą</translation> <translation id="5854790677617711513">Senesni nei 30 dienų</translation> <translation id="5858741533101922242">„Chrome“ nepavyksta įjungti „Bluetooth“ adapterio</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Naršymo skydelis atidarytas (visas aukštis)</translation> <translation id="6192333916571137726">Atsisiųsti failą</translation> <translation id="6192792657125177640">Išimtys</translation> +<translation id="6206551242102657620">Ryšys yra saugus. Svetainės informacija</translation> <translation id="6210748933810148297">Ne <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">„<ph name="NAME_OF_LIST_ITEM" />“ parinktys</translation> <translation id="6221633008163990886">Atrakinkite, kad galėtumėte eksportuoti slaptažodžius</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Jūsų slaptažodžiai bus matomi visiems, kurie gali peržiūrėti eksportuotą failą.</translation> <translation id="6942665639005891494">Numatytąją atsisiuntimo vietą galite bet kada pakeisti naudodami nustatymų meniu parinktį</translation> <translation id="6945221475159498467">Pasirinkti</translation> +<translation id="6963642900430330478">Šis puslapis yra pavojingas. Svetainės informacija</translation> <translation id="6963766334940102469">Ištrinti žymes</translation> <translation id="6965382102122355670">Gerai</translation> <translation id="6978479750597523876">Nustatyti vertimo nustatymus iš naujo</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automatiškai pateikti išsamią informaciją apie galimas saugos problemas „Google“.</translation> <translation id="6992289844737586249">Pirmiausia klausti prieš leidžiant svetainėms naudoti mikrofoną (rekomenduojama)</translation> <translation id="7016516562562142042">Leidžiama dabartiniam paieškos varikliui</translation> -<translation id="7017968314960951695">Naudojamas svetainių, kuriose lankotės, turinys ir naršymo veikla bei sąveikos suasmeninimo tikslais</translation> <translation id="7021515813996758557">Failas „<ph name="FILE_NAME" />“ atsisiųstas</translation> <translation id="7022756207310403729">Atidaryti naršyklėje</translation> <translation id="7029809446516969842">Slaptažodžiai</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb index e0ecdb0..dc1297f0 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_lv.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Pārlūkot</translation> <translation id="1993768208584545658"><ph name="SITE" /> vēlas savienot pārī</translation> <translation id="1994173015038366702">Vietnes URL</translation> +<translation id="2000419248597011803">Nosūta dažus sīkfailus un meklēšanas vaicājumus no adreses joslas un meklēšanas lodziņa uz jūsu noklusējuma meklētājprogrammu.</translation> <translation id="2002537628803770967">Kredītkartes un adreses no pakalpojuma Google Pay</translation> <translation id="200815880754187296">Citas lietotnes: <ph name="KILOBYTES" /> KB</translation> <translation id="2017836877785168846">Notīra vēsturi un automātiskās pabeigšanas ierakstus adreses joslā.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Teksta mērogošana</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Konta izvēle</translation> +<translation id="2414672073755873541">Nav satura</translation> <translation id="2414886740292270097">Tumšs</translation> <translation id="2416359993254398973">Pārlūkam Chrome ir nepieciešama atļauja piekļūt jūsu kamerai šajā vietnē.</translation> <translation id="2426805022920575512">Izvēlēties citu kontu</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Atlikušas <ph name="SECONDS" /> s</translation> <translation id="2781151931089541271">Atlikusi 1 s</translation> <translation id="2810645512293415242">Lapa tika vienkāršota, lai samazinātu datu lietojumu un paātrinātu ielādi.</translation> +<translation id="281504910091592009">Skatiet un pārvaldiet saglabātās paroles savā <ph name="BEGIN_LINK" />Google kontā<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs, pierakstieties un ieslēdziet sinhronizāciju.</translation> <translation id="2836148919159985482">Lai izietu no pilnekrāna režīma, pieskarieties pogai Atpakaļ.</translation> <translation id="2842985007712546952">Vecākmape</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Vietnes informācija</translation> <translation id="3341058695485821946">Uzziniet ietaupīto datu apjomu</translation> <translation id="3350687908700087792">Aizvērt visas inkognito režīma cilnes</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Iestatījumus<ph name="END_LINK1" /> var mainīt jebkurā laikā. Google var izmantot jūsu apmeklēto vietņu saturu, pārlūkā veiktās mijiedarbības un darbības, lai personalizētu pārlūku Chrome un tādus Google pakalpojumus kā Tulkotājs, Meklēšana un reklāmas.</translation> <translation id="3365671512111106261">Nav pieejams, kad ir ieslēgts datu lietojuma samazinātājs</translation> <translation id="3367813778245106622">Lai sāktu sinhronizēšanu, pierakstieties vēlreiz</translation> <translation id="3384347053049321195">Kopīgot attēlu</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Palīdziet uzlabot virtuālās realitātes pieredzi pārlūkā Chrome.</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Veicot atiestatīšanu, tiek dzēsta datu lietojuma samazinātāja vēsture, tostarp apmeklēto vietņu saraksts.</translation> +<translation id="3630011985153972676">Iestatījumu sadaļā varat atļaut pārlūkam Chrome lejupielādēt rakstus, kad ir izveidots savienojums ar Wi-Fi tīklu.</translation> <translation id="3632295766818638029">Parādīt paroli</translation> <translation id="363596933471559332">Automātiski pierakstīties vietnēs, izmantojot saglabātos akreditācijas datus. Ja funkcija ir izslēgta, verifikācija būs jāveic ikreiz, kad pierakstīsieties vietnē.</translation> <translation id="3661699943263275414">Trešo pušu vietnes var saglabāt un lasīt sīkfailu datus</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Atļaut vietnēm izmantot JavaScript (ieteicams)</translation> <translation id="5345040418939504969">Grāmatzīme <ph name="BOOKMARK_TITLE" /> tika dzēsta</translation> <translation id="5372829067651257087">Vietrādis URL nokopēts</translation> +<translation id="5391532827096253100">Savienojums ar šo vietni nav drošs. Vietnes informācija</translation> <translation id="5400569084694353794">Izmantojot šo lietojumprogrammu, jūs piekrītat Chrome <ph name="BEGIN_LINK1" />pakalpojumu sniegšanas noteikumiem<ph name="END_LINK1" /> un <ph name="BEGIN_LINK2" />konfidencialitātes paziņojumam<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">Atļaut apmeklēt tikai konkrētas vietnes</translation> <translation id="5414836363063783498">Notiek verifikācija...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{pirms # stundas}zero{pirms # stundām}one{pirms # stundas}other{pirms # stundām}}</translation> <translation id="5817918615728894473">Savienot pārī</translation> <translation id="583281660410589416">Nezināms</translation> +<translation id="5833397272224757657">Personalizācijai izmanto jūsu apmeklēto vietņu saturu, kā arī darbības un mijiedarbības pārlūkā.</translation> <translation id="5833984609253377421">Kopīgot saiti</translation> <translation id="5854790677617711513">Vecāki par 30 dienām</translation> <translation id="5858741533101922242">Chrome nevar ieslēgt Bluetooth adapteri.</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Atvērts navigācijas panelis pilnā augstumā</translation> <translation id="6192333916571137726">Lejupielāde fails</translation> <translation id="6192792657125177640">Izņēmumi</translation> +<translation id="6206551242102657620">Savienojums ir drošs. Vietnes informācija</translation> <translation id="6210748933810148297"><ph name="EMAIL" /> nav mana e-pasta adrese</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" />: iespējas</translation> <translation id="6221633008163990886">Atbloķējiet, lai eksportētu paroles.</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Jūsu paroles būs redzamas ikvienam, kas var skatīt eksportēto failu.</translation> <translation id="6942665639005891494">Noklusējuma lejupielādes vietu var mainīt jebkurā laikā, izmantojot izvēlnes Iestatījumi opciju.</translation> <translation id="6945221475159498467">Atlasīt</translation> +<translation id="6963642900430330478">Šī lapa ir bīstama. Vietnes informācija</translation> <translation id="6963766334940102469">Dzēst grāmatzīmes</translation> <translation id="6965382102122355670">Labi</translation> <translation id="6978479750597523876">Atiestatīt tulkošanas iestatījumus</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automātiski nosūtīt Google serveriem informāciju par iespējamām drošības problēmām</translation> <translation id="6992289844737586249">Jautāt, pirms atļaut vietnēm izmantot jūsu mikrofonu (ieteicams)</translation> <translation id="7016516562562142042">Atļauta pašreizējai meklētājprogrammai</translation> -<translation id="7017968314960951695">Izmanto personalizācijai jūsu apmeklēto vietņu saturu, kā arī darbības un mijiedarbības pārlūkā</translation> <translation id="7021515813996758557">Fails <ph name="FILE_NAME" /> ir lejupielādēts.</translation> <translation id="7022756207310403729">Atvērt pārlūkā</translation> <translation id="7029809446516969842">Paroles</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb index b62aa133..990efff 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_nl.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Site-informatie</translation> <translation id="3341058695485821946">Bekijk hoeveel data je hebt bespaard</translation> <translation id="3350687908700087792">Alle incognitotabbladen sluiten</translation> -<translation id="3361477720586884778">De <ph name="BEGIN_LINK1" />instellingen<ph name="END_LINK1" /> kunnen op elk gewenst moment worden aangepast. Google kan content op sites die je bezoekt en je browseractiviteit en interacties gebruiken om Chrome en andere Google-services (zoals Translate, Zoeken en advertenties) te personaliseren.</translation> <translation id="3365671512111106261">Niet beschikbaar wanneer Databesparing is ingeschakeld</translation> <translation id="3367813778245106622">Log opnieuw in om de synchronisatie te starten</translation> <translation id="3384347053049321195">Afbeelding delen</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# uur geleden}other{# uur geleden}}</translation> <translation id="5817918615728894473">Koppelen</translation> <translation id="583281660410589416">Onbekend</translation> +<translation id="5833397272224757657">Maakt gebruik van content op sites die je bezoekt en browseractiviteit en -interactie voor personalisatie</translation> <translation id="5833984609253377421">Link delen</translation> <translation id="5854790677617711513">Ouder dan 30 dagen</translation> <translation id="5858741533101922242">Chrome kan de Bluetooth-adapter niet inschakelen</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Automatisch informatie over mogelijke beveiligingsincidenten aan Google melden</translation> <translation id="6992289844737586249">Eerst vragen voordat sites je microfoon mogen gebruiken (aanbevolen)</translation> <translation id="7016516562562142042">Toegestaan voor huidige zoekmachine</translation> -<translation id="7017968314960951695">Maakt gebruik van content op sites die je bezoekt en browseractiviteit en interacties voor personalisatie</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> gedownload</translation> <translation id="7022756207310403729">Openen in browser</translation> <translation id="7029809446516969842">Wachtwoorden</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb index 82fa7fa..792c523 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_no.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_no.xtb
@@ -29,6 +29,7 @@ <translation id="1201402288615127009">Neste</translation> <translation id="1204037785786432551">Last ned linken</translation> <translation id="1206892813135768548">Kopiér linkteksten</translation> +<translation id="1208340532756947324">For å synkronisere og gi et personlig preg på alle enhetene, slå på synkronisering</translation> <translation id="1209206284964581585">Skjul for øyeblikket</translation> <translation id="123724288017357924">Last inn siden på nytt, men ignorer bufret innhold</translation> <translation id="124116460088058876">Flere språk</translation> @@ -129,6 +130,7 @@ <translation id="1989112275319619282">Bla gjennom</translation> <translation id="1993768208584545658"><ph name="SITE" /> vil koble til</translation> <translation id="1994173015038366702">Nettadressen til nettstedet</translation> +<translation id="2002537628803770967">Kredittkort og adresser ved bruk av Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB andre apper</translation> <translation id="2017836877785168846">Tømmer loggen og fjerner automatiske fullføringer fra adressefeltet.</translation> <translation id="2021896219286479412">Navigering i full skjerm</translation> @@ -225,6 +227,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> sekunder igjen</translation> <translation id="2781151931089541271">1 sekund igjen</translation> <translation id="2810645512293415242">Siden er forenklet for å spare data og laste den inn raskere.</translation> +<translation id="2818669890320396765">For å få bokmerkene dine på alle enhetene dine, logg på og slå på synkronisering</translation> <translation id="2836148919159985482">Trykk på tilbakeknappen for å avslutte fullskjerm.</translation> <translation id="2842985007712546952">Overordnet mappe</translation> <translation id="2870560284913253234">Nettsted</translation> @@ -280,7 +283,6 @@ <translation id="3328801116991980348">Informasjon om nettstedet</translation> <translation id="3341058695485821946">Se hvor mye data du har spart</translation> <translation id="3350687908700087792">Lukk alle inkognitofaner</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Innstillinger<ph name="END_LINK1" /> kan tilpasses når som helst. Google kan bruke innhold på nettsteder du besøker, nettleserinteraksjoner og annen aktivitet for å gi Chrome og Google-tjenester (som Oversetter, Søk og annonser) et personlig preg.</translation> <translation id="3365671512111106261">Utilgjengelig når Datasparing er slått på</translation> <translation id="3367813778245106622">Logg på igjen for å starte synkroniseringen</translation> <translation id="3384347053049321195">Del bildet</translation> @@ -303,6 +305,7 @@ <translation id="3549657413697417275">Søk i loggen</translation> <translation id="3552151358455404883">Administrer Chrome-synkronisering og personlig tilpasning i <ph name="BEGIN_LINK1" />Innstillinger<ph name="END_LINK1" /></translation> <translation id="3557336313807607643">Legg til i kontakter</translation> +<translation id="3568688522516854065">For å få fanene dine fra de andre enhetene du bruker, logg deg på og slå på synkronisering.</translation> <translation id="3587482841069643663">Alle</translation> <translation id="3590487821116122040">Nettstedslagring Chrome ikke tror er viktig (for eksempel områder uten lagrede innstillinger eller som du ikke besøker ofte)</translation> <translation id="3599863153486145794">Tømmer loggen på alle påloggede enheter. Det kan hende Google-kontoen din har andre typer nettlesingslogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation> @@ -375,6 +378,7 @@ <translation id="4192273449750167573">Gjennomgå innstillingene dine på den neste skjermen</translation> <translation id="4195643157523330669">Åpne i ny fane</translation> <translation id="4198423547019359126">Ingen tilgjengelige nedlastingssteder</translation> +<translation id="4209895695669353772">For å få forslag om personlig tilpasset innhold fra Google, slå på synkronisering</translation> <translation id="4226663524361240545">Varsler kan gjøre at enheten vibrerer</translation> <translation id="4242533952199664413">Åpne innstillingene</translation> <translation id="424864128008805179">Vil du logge av Chrome?</translation> @@ -400,6 +404,7 @@ <translation id="4452548195519783679">Satt som bokmerke i <ph name="FOLDER_NAME" /></translation> <translation id="4453340223357552416"><ph name="FILE_NAME" /> er lastet ned i <ph name="PRODUCT_NAME" /></translation> <translation id="4468959413250150279">Kutt lyden for et bestemt nettsted.</translation> +<translation id="4472118726404937099">For å synkronisere og gi et personlig preg på alle enhetene, slå på synkronisering</translation> <translation id="4479647676395637221">Spør før nettsteder får bruke kameraet (anbefales)</translation> <translation id="4487967297491345095">Alle appdataene for Chrome slettes permanent. Dette omfatter alle filer, innstillinger, kontoer, databaser osv.</translation> <translation id="4508440807153586353">Bare personer som har passordfrasen din, kan lese de krypterte dataene dine. Passordfrasen blir verken sendt til Google eller lagret. Hvis du glemmer passordfrasen eller vil endre denne innstillingen, må du tilbakestille synkroniseringen. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation> @@ -584,6 +589,7 @@ <translation id="5854790677617711513">Eldre enn 30 dager</translation> <translation id="5858741533101922242">Chrome kan ikke slå på Bluetooth-adapteren</translation> <translation id="5860033963881614850">Av</translation> +<translation id="5862731021271217234">For å få fanene dine fra de andre enhetene du bruker, slå på synkronisering</translation> <translation id="5864174910718532887">Informasjon: Sortert etter nettstedsnavn</translation> <translation id="5864419784173784555">Venter på en annen nedlasting …</translation> <translation id="5869522115854928033">Lagrede passord</translation> @@ -725,7 +731,6 @@ <translation id="699220179437400583">Rapportér detaljer om mulige sikkerhetsbrudd til Google automatisk</translation> <translation id="6992289844737586249">Spør før nettsteder får bruke mikrofonen (anbefales)</translation> <translation id="7016516562562142042">Tillatt for den aktive søkemotoren</translation> -<translation id="7017968314960951695">Bruker innhold fra nettsteder du besøker, nettleseraktivitet og andre interaksjoner for å gi ting et personlig preg.</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> er lastet ned</translation> <translation id="7022756207310403729">Åpne i nettleseren</translation> <translation id="7029809446516969842">Passord</translation> @@ -861,6 +866,7 @@ <translation id="8100932616285851614">Navigasjonspanelet er lukket</translation> <translation id="8103578431304235997">Inkognitofane</translation> <translation id="8105951947646329362">Foreslå relaterte sider</translation> +<translation id="8109613176066109935">For å få bokmerkene dine på alle enhetene dine, slå på synkronisering</translation> <translation id="8116925261070264013">Kuttet lyd</translation> <translation id="813082847718468539">Vis nettstedsinformasjon</translation> <translation id="8168435359814927499">Innhold</translation> @@ -965,6 +971,7 @@ <translation id="9065203028668620118">Endre</translation> <translation id="9070377983101773829">Start talesøk</translation> <translation id="9071742570345586758">Du må installere Google VR Services for å kunne se innhold for virtuell virkelighet.</translation> +<translation id="9074336505530349563">For å få forslag om personlig tilpasset innhold fra Google, slå på synkronisering</translation> <translation id="9086455579313502267">Fikk ikke tilgang til nettverket</translation> <translation id="9099018167121903954"><ph name="KILOBYTES" /> kB er lastet ned</translation> <translation id="9100505651305367705">Tilby å vise artikler i forenklet visning, når det støttes</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb index 6545bc8f..9e51032 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pl.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Przeglądaj</translation> <translation id="1993768208584545658"><ph name="SITE" /> chce się sparować</translation> <translation id="1994173015038366702">URL strony</translation> +<translation id="2000419248597011803">Niektóre pliki cookie oraz zapytania wpisane na pasku adresu i w polu wyszukiwania zostaną wysłane do domyślnej wyszukiwarki</translation> <translation id="2002537628803770967">Karty kredytowe i adresy z Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB innych aplikacji</translation> <translation id="2017836877785168846">Usuwa historię i wpisy autouzupełniania w pasku adresu.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Skalowanie tekstu</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Wybierz konto</translation> +<translation id="2414672073755873541">Nic tu nie ma</translation> <translation id="2414886740292270097">Ciemny</translation> <translation id="2416359993254398973">Chrome potrzebuje uprawnień dostępu do aparatu na tej stronie.</translation> <translation id="2426805022920575512">Wybierz inne konto</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Pozostało: <ph name="SECONDS" /> s</translation> <translation id="2781151931089541271">Pozostała sekunda</translation> <translation id="2810645512293415242">Uproszczona wersja strony pozwala szybciej zapisywać i wczytywać dane.</translation> +<translation id="281504910091592009">Zapisane hasła znajdziesz na swoim <ph name="BEGIN_LINK" />koncie Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Aby korzystać ze swoich zakładek na wszystkich urządzeniach, zaloguj się i włącz synchronizację</translation> <translation id="2836148919159985482">Kliknij przycisk Wstecz, by wyjść z trybu pełnoekranowego.</translation> <translation id="2842985007712546952">Folder nadrzędny</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informacje o witrynie</translation> <translation id="3341058695485821946">Sprawdź ilość zaoszczędzonych danych</translation> <translation id="3350687908700087792">Zamknij wszystkie karty incognito</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Ustawienia<ph name="END_LINK1" /> możesz zmienić w dowolnym momencie. Google może używać zawartości odwiedzanych przez Ciebie stron oraz informacji o Twojej aktywności i interakcjach w przeglądarce, by personalizować Chrome i inne usługi Google takie jak Tłumacz, wyszukiwarka czy reklamy.</translation> <translation id="3365671512111106261">Niedostępne, gdy Oszczędzanie danych jest włączone</translation> <translation id="3367813778245106622">Zaloguj się ponownie, by rozpocząć synchronizację</translation> <translation id="3384347053049321195">Udostępnij zdjęcie</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Pomóż ulepszyć korzystanie z Chrome w rzeczywistości wirtualnej</translation> <translation id="3616113530831147358">Dźwięk</translation> <translation id="3620176948598597475">Zresetowanie spowoduje usunięcie historii Oszczędzania danych, w tym listy odwiedzonych stron.</translation> +<translation id="3630011985153972676">W ustawieniach możesz zezwolić Chrome na pobieranie artykułów dla Ciebie, gdy używasz Wi-Fi.</translation> <translation id="3632295766818638029">Pokaż hasło</translation> <translation id="363596933471559332">Automatycznie loguj się na stronach, używając zapisanych danych logowania. Gdy ta funkcja jest wyłączona, przed każdym zalogowaniem się zobaczysz prośbę o weryfikację.</translation> <translation id="3661699943263275414">Witryny innych firm mogą zapisywać dane w plikach cookie i je odczytywać</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Zezwalaj na wykonywanie kodu JavaScript w witrynach (zalecane)</translation> <translation id="5345040418939504969">Usunięto: <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">URL został skopiowany.</translation> +<translation id="5391532827096253100">Twoje połączenie z tą witryną nie jest bezpieczne. Informacje o witrynie</translation> <translation id="5400569084694353794">Korzystając z tej aplikacji, akceptujesz <ph name="BEGIN_LINK1" />Warunki korzystania z Chrome<ph name="END_LINK1" /> oraz <ph name="BEGIN_LINK2" />Informacje na temat ochrony prywatności w Chrome<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">Pozwól na otwieranie tylko wybranych stron</translation> <translation id="5414836363063783498">Weryfikuję…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# godzinę temu}few{# godziny temu}many{# godzin temu}other{# godziny temu}}</translation> <translation id="5817918615728894473">Sparuj</translation> <translation id="583281660410589416">Nieznany</translation> +<translation id="5833397272224757657">Zawartość otwieranych stron oraz informacje o Twoich interakcjach i aktywności w przeglądarce zostaną wykorzystane do personalizacji</translation> <translation id="5833984609253377421">Udostępnij link</translation> <translation id="5854790677617711513">Sprzed ponad 30 dni</translation> <translation id="5858741533101922242">Chrome nie może włączyć adaptera Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Panel użytkownika otwarty na całą wysokość</translation> <translation id="6192333916571137726">Pobranie pliku</translation> <translation id="6192792657125177640">Wyjątki</translation> +<translation id="6206551242102657620">Połączenie jest bezpieczne. Informacje o witrynie</translation> <translation id="6210748933810148297"><ph name="EMAIL" /> to nie Ty?</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> – opcje</translation> <translation id="6221633008163990886">Odblokuj, by wyeksportować hasła</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Twoje hasła będą widoczne dla każdego, kto może zobaczyć wyeksportowany plik.</translation> <translation id="6942665639005891494">W dowolnej chwili w Ustawieniach możesz zmienić domyślną lokalizację pobierania</translation> <translation id="6945221475159498467">Wybierz</translation> +<translation id="6963642900430330478">Ta strona jest niebezpieczna. Informacje o witrynie</translation> <translation id="6963766334940102469">Usuń zakładki</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Zresetuj ustawienia tłumaczenia</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automatycznie przesyłaj do Google szczegółowe informacje o możliwych zagrożeniach</translation> <translation id="6992289844737586249">Pytaj, zanim zezwolisz stronom na korzystanie z mikrofonu (zalecane)</translation> <translation id="7016516562562142042">Zezwolono na dostęp obecnej wyszukiwarce</translation> -<translation id="7017968314960951695">Zawartość otwieranych stron oraz informacje o Twoich interakcjach i aktywności w przeglądarce zostaną wykorzystane do personalizacji</translation> <translation id="7021515813996758557">Plik <ph name="FILE_NAME" /> został pobrany</translation> <translation id="7022756207310403729">Otwórz w przeglądarce</translation> <translation id="7029809446516969842">Hasła</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb index 13c7be7..47a30f8 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-BR.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Procurar</translation> <translation id="1993768208584545658">O <ph name="SITE" /> deseja realizar o pareamento</translation> <translation id="1994173015038366702">URL do site</translation> +<translation id="2000419248597011803">Envia alguns cookies e pesquisas da barra de endereço e da caixa de pesquisa para seu mecanismo de pesquisa padrão.</translation> <translation id="2002537628803770967">Cartões de crédito e endereços que usam o Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB de outros apps</translation> <translation id="2017836877785168846">Limpa o histórico e o preenchimento automático na barra de endereço.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Escala do texto</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Escolher uma conta</translation> +<translation id="2414672073755873541">Não há conteúdo aqui</translation> <translation id="2414886740292270097">Escuro</translation> <translation id="2416359993254398973">O Chrome precisa de permissão para este site acessar sua câmera.</translation> <translation id="2426805022920575512">Escolher outra conta</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> segundos restantes</translation> <translation id="2781151931089541271">Um segundo restante</translation> <translation id="2810645512293415242">Página simplificada para economizar dados e carregar mais rapidamente.</translation> +<translation id="281504910091592009">Ver e gerenciar as senhas salvas na sua <ph name="BEGIN_LINK" />Conta do Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Para ter seus favoritos em todos os seus dispositivos, faça login e ative a sincronização</translation> <translation id="2836148919159985482">Toque no botão "Voltar" para sair da tela cheia.</translation> <translation id="2842985007712546952">Pasta mãe</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informações do site</translation> <translation id="3341058695485821946">Veja a quantidade de dados que você salvou</translation> <translation id="3350687908700087792">Fechar todas as guias anônimas</translation> -<translation id="3361477720586884778">As <ph name="BEGIN_LINK1" />configurações<ph name="END_LINK1" /> podem ser personalizadas a qualquer momento. O Google pode usar o conteúdo dos sites que você visita, as interações do navegador e as atividades para personalizar o Chrome e os serviços do Google, como o Tradutor, a Pesquisa e os anúncios.</translation> <translation id="3365671512111106261">Indisponível quando a extensão Economia de dados está ativada</translation> <translation id="3367813778245106622">Faça login novamente para começar a sincronizar</translation> <translation id="3384347053049321195">Compartilhar imagem</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Ajude a melhorar a experiência de realidade virtual no Chrome</translation> <translation id="3616113530831147358">Áudio</translation> <translation id="3620176948598597475">A redefinição limpa o histórico da Economia de dados, incluindo a lista de sites visitados.</translation> +<translation id="3630011985153972676">Permitir que o Chrome faça o download de artigos para você quando conectado ao Wi-Fi nas configurações.</translation> <translation id="3632295766818638029">Reautenticar para ver senha</translation> <translation id="363596933471559332">Faça login automaticamente nos websites usando as credenciais armazenadas. Se o recurso estiver desativado, será preciso fazer a verificação sempre antes de fazer login em um website.</translation> <translation id="3661699943263275414">Websites de terceiros podem ler e armazenar os arquivos "cookies".</translation> @@ -519,6 +522,7 @@ <translation id="5335288049665977812">Permitir que sites executem o JavaScript (recomendado)</translation> <translation id="5345040418939504969"><ph name="BOOKMARK_TITLE" /> excluído</translation> <translation id="5372829067651257087">URL copiado.</translation> +<translation id="5391532827096253100">Sua conexão com este site não é segura. Informações do site</translation> <translation id="5400569084694353794">Ao usar este aplicativo, você concorda com os <ph name="BEGIN_LINK1" />Termos de Serviço<ph name="END_LINK1" /> e com o <ph name="BEGIN_LINK2" />Aviso de Privacidade<ph name="END_LINK2" />.</translation> <translation id="5403644198645076998">Permitir apenas determinados sites</translation> <translation id="5414836363063783498">Verificando...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# hora atrás}one{# horas atrás}other{# horas atrás}}</translation> <translation id="5817918615728894473">Parear</translation> <translation id="583281660410589416">Desconhecido</translation> +<translation id="5833397272224757657">Usa o conteúdo dos sites que você visita, além das interações e atividades do navegador, para personalização</translation> <translation id="5833984609253377421">Compartilhar link</translation> <translation id="5854790677617711513">Com mais de 30 dias</translation> <translation id="5858741533101922242">O Chrome não pôde ativar o adaptador Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Painel de navegação aberto no tamanho máximo</translation> <translation id="6192333916571137726">Fazer o download do arquivo</translation> <translation id="6192792657125177640">Exceções</translation> +<translation id="6206551242102657620">A conexão é segura. Informações do site</translation> <translation id="6210748933810148297">Não é <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Opções de <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Desbloqueie para exportar suas senhas</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Suas senhas ficarão visíveis para qualquer pessoa que tiver acesso ao arquivo exportado.</translation> <translation id="6942665639005891494">Altere o local padrão de download a qualquer momento usando a opção do menu "Configurações"</translation> <translation id="6945221475159498467">Selecionar</translation> +<translation id="6963642900430330478">Esta página é perigosa. Informações do site</translation> <translation id="6963766334940102469">Excluir favoritos</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Redefinir configurações do Google Tradutor</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Informar incidentes de segurança ao Google automaticamente.</translation> <translation id="6992289844737586249">Perguntar antes de permitir que sites usem o microfone (recomendado)</translation> <translation id="7016516562562142042">Permitido para o mecanismo de pesquisa atual</translation> -<translation id="7017968314960951695">Usa o conteúdo dos sites que você visita e as atividades e interações do navegador para personalização.</translation> <translation id="7021515813996758557">O download de <ph name="FILE_NAME" /> foi concluído</translation> <translation id="7022756207310403729">Abrir no navegador</translation> <translation id="7029809446516969842">Senhas</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb index 853c3a9e..b665e2b7 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_pt-PT.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Informações do site</translation> <translation id="3341058695485821946">Veja a quantidade de dados que poupou.</translation> <translation id="3350687908700087792">Fechar todos os separadores de navegação anónima</translation> -<translation id="3361477720586884778">Pode personalizar as <ph name="BEGIN_LINK1" />Definições<ph name="END_LINK1" /> a qualquer momento. A Google pode utilizar conteúdos nos sites que visita, assim como as interações e a atividade com o navegador, para personalizar o Chrome e outros serviços Google, como o Tradutor, a Pesquisa e os anúncios.</translation> <translation id="3365671512111106261">Não disponível quando a Poupança de dados está ativada</translation> <translation id="3367813778245106622">Iniciar sessão novamente para iniciar a sincronização</translation> <translation id="3384347053049321195">Partilhar imagem</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Há # hora}other{Há # horas}}</translation> <translation id="5817918615728894473">Sincronizar</translation> <translation id="583281660410589416">Desconhecido</translation> +<translation id="5833397272224757657">Utiliza conteúdo nos sites que visita e interações e atividades do navegador para personalização.</translation> <translation id="5833984609253377421">Partilhar link</translation> <translation id="5854790677617711513">Com mais de 30 dias</translation> <translation id="5858741533101922242">O Chrome não consegue ativar o adaptador Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Comunicar automaticamente detalhes de possíveis incidentes de segurança à Google</translation> <translation id="6992289844737586249">Perguntar antes de permitir que os sites utilizem o microfone (recomendado)</translation> <translation id="7016516562562142042">Permitido para o motor de pesquisa atual</translation> -<translation id="7017968314960951695">Utiliza conteúdo nos sites que visita e interações e atividades do navegador para personalização.</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> transferido</translation> <translation id="7022756207310403729">Abrir no navegador</translation> <translation id="7029809446516969842">Palavras-passe</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb index e55263a..22327934 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Răsfoiește</translation> <translation id="1993768208584545658"><ph name="SITE" /> dorește să se asocieze</translation> <translation id="1994173015038366702">Adresa URL a site-ului</translation> +<translation id="2000419248597011803">Trimite anumite cookie-uri și căutări din bara de adrese și din caseta de căutare în motorul de căutare prestabilit</translation> <translation id="2002537628803770967">Carduri de credit și adrese care folosesc Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB pentru alte aplicații</translation> <translation id="2017836877785168846">Șterge istoricul și completările automate din bara de adrese.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Scalarea textului</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Alege un cont</translation> +<translation id="2414672073755873541">Nu există conținut aici</translation> <translation id="2414886740292270097">Întunecat</translation> <translation id="2416359993254398973">Chrome are nevoie de permisiune ca să acceseze camera foto pentru acest site.</translation> <translation id="2426805022920575512">Alege alt cont</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389"><ph name="SECONDS" /> sec. rămase</translation> <translation id="2781151931089541271">1 sec. rămasă</translation> <translation id="2810645512293415242">Pagină simplificată pentru economie de date și încărcare mai rapidă.</translation> +<translation id="281504910091592009">Vezi și gestionează parolele salvate în <ph name="BEGIN_LINK" />Contul Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Pentru a accesa marcajele pe toate dispozitivele, conectează-te și activează sincronizarea</translation> <translation id="2836148919159985482">Atinge butonul Înapoi pentru a ieși din ecranul complet.</translation> <translation id="2842985007712546952">Dosar părinte</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informații despre site</translation> <translation id="3341058695485821946">Vezi ce volum de date ai economisit</translation> <translation id="3350687908700087792">Închide toate filele incognito</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Setările<ph name="END_LINK1" /> pot fi personalizate oricând. Google poate folosi conținutul de pe site-urile pe care le accesezi, interacțiunile cu browserul și activitatea pentru a personaliza Chrome și servicii Google precum Traducere, Căutare și anunțuri.</translation> <translation id="3365671512111106261">Nu este disponibilă când Economizorul de date este activat</translation> <translation id="3367813778245106622">Conectează-te din nou pentru a începe sincronizarea</translation> <translation id="3384347053049321195">Trimite imaginea</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Ajută la îmbunătățirea experienței RV în Chrome</translation> <translation id="3616113530831147358">Audio</translation> <translation id="3620176948598597475">Prin resetare se șterge istoricul Economizorului de date, inclusiv lista site-urilor accesate.</translation> +<translation id="3630011985153972676">Permite serviciului Chrome să descarce articole pentru tine după conectarea la Wi-Fi în setări.</translation> <translation id="3632295766818638029">Afișează parola</translation> <translation id="363596933471559332">Te conectezi automat la site-uri folosind datele de conectare stocate. Când funcția este dezactivată, ți se va solicita verificarea de fiecare dată înainte de a te conecta la un site.</translation> <translation id="3661699943263275414">Site-urile terță parte pot să salveze și să citească datele asociate cookie-urilor</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Permite site-urilor să ruleze JavaScript (recomandat)</translation> <translation id="5345040418939504969"><ph name="BOOKMARK_TITLE" /> a fost șters</translation> <translation id="5372829067651257087">Adresa URL a fost copiată.</translation> +<translation id="5391532827096253100">Conexiunea la acest site nu este sigură. Informații despre site</translation> <translation id="5400569084694353794">Folosind această aplicație, accepți <ph name="BEGIN_LINK1" />Termenii și condițiile<ph name="END_LINK1" /> și <ph name="BEGIN_LINK2" />Notificarea privind confidențialitatea<ph name="END_LINK2" /> Chrome.</translation> <translation id="5403644198645076998">Permite numai anumite site-uri</translation> <translation id="5414836363063783498">Se verifică...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Acum # oră}few{Acum # ore}other{Acum # de ore}}</translation> <translation id="5817918615728894473">Asociază</translation> <translation id="583281660410589416">Necunoscut</translation> +<translation id="5833397272224757657">Folosește conținutul de pe site-urile pe care le accesezi, activitatea browserului și interacțiunile pentru personalizare</translation> <translation id="5833984609253377421">Trimite linkul</translation> <translation id="5854790677617711513">Mai vechi de 30 de zile</translation> <translation id="5858741533101922242">Chrome nu poate activa adaptorul Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Panoul de navigare este deschis la înălțimea completă</translation> <translation id="6192333916571137726">Descarcă fișierul</translation> <translation id="6192792657125177640">Excepții</translation> +<translation id="6206551242102657620">Conexiunea este sigură. Informații despre site</translation> <translation id="6210748933810148297">Nu ești <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Opțiuni pentru <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Deblochează pentru a-ți exporta parolele.</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Parolele vor fi vizibile pentru toți cei care pot vedea fișierul exportat.</translation> <translation id="6942665639005891494">Schimbă oricând locația de descărcare prestabilită folosind opțiunea din meniul Setări</translation> <translation id="6945221475159498467">Selectează</translation> +<translation id="6963642900430330478">Această pagină este periculoasă. Informații despre site</translation> <translation id="6963766334940102469">Șterge marcaje</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Resetează setările pentru traducere</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Raportează automat la Google detaliile eventualelor incidente privind securitatea</translation> <translation id="6992289844737586249">Întreabă înainte de a permite site-urilor să folosească microfonul (recomandat)</translation> <translation id="7016516562562142042">Permisă pentru motorul de căutare actual</translation> -<translation id="7017968314960951695">Folosește conținutul de pe site-urile pe care le accesezi, activitatea browserului și interacțiunile pentru personalizare</translation> <translation id="7021515813996758557">Fișierul <ph name="FILE_NAME" /> a fost descărcat</translation> <translation id="7022756207310403729">Deschide în browser</translation> <translation id="7029809446516969842">Parole</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb index e7a58d5a..05f41e0 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_ru.xtb
@@ -283,7 +283,6 @@ <translation id="3328801116991980348">Информация о сайте</translation> <translation id="3341058695485821946">Узнайте, сколько трафика вы сэкономили</translation> <translation id="3350687908700087792">Закрыть все вкладки инкогнито</translation> -<translation id="3361477720586884778">Для персонализации рекламы, Chrome и таких сервисов Google, как Переводчик и Поиск, могут использоваться данные с сайтов, которые вы посещаете, а также история просмотров и действий в браузере. Вы можете изменить <ph name="BEGIN_LINK1" />Настройки<ph name="END_LINK1" /> в любой момент.</translation> <translation id="3365671512111106261">Недоступно, если включена функция "Экономия трафика"</translation> <translation id="3367813778245106622">Чтобы начать синхронизацию, снова войдите в аккаунт</translation> <translation id="3384347053049321195">Поделиться изображением</translation> @@ -732,7 +731,6 @@ <translation id="699220179437400583">Автоматически отправлять в Google информацию о возможных проблемах безопасности</translation> <translation id="6992289844737586249">Запрашивать разрешение на доступ к микрофону (рекомендуется)</translation> <translation id="7016516562562142042">Открыт доступ для текущей поисковой системы</translation> -<translation id="7017968314960951695">Использовать для персонализации информацию с посещенных вами сайтов и данные о действиях в браузере.</translation> <translation id="7021515813996758557">Файл <ph name="FILE_NAME" /> скачан</translation> <translation id="7022756207310403729">Открыть в браузере</translation> <translation id="7029809446516969842">Пароли</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb index 012c534..5a19165 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sk.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Prehliadať</translation> <translation id="1993768208584545658"><ph name="SITE" /> žiada o spárovanie</translation> <translation id="1994173015038366702">Webová adresa stránok</translation> +<translation id="2000419248597011803">Odošle niektoré súbory cookie a vyhľadávania z panela s adresou a vyhľadávacieho poľa do vášho predvoleného vyhľadávača</translation> <translation id="2002537628803770967">Kreditné karty a adresy pomocou služby Google Pay</translation> <translation id="200815880754187296">Ďalšie aplikácie: <ph name="KILOBYTES" /> KB</translation> <translation id="2017836877785168846">Vymaže históriu a automaticky doplňované výrazy v paneli s adresou.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Mierka textu</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Výber účtu</translation> +<translation id="2414672073755873541">Nie je tu žiadny obsah</translation> <translation id="2414886740292270097">Tmavý režim</translation> <translation id="2416359993254398973">Chrome potrebuje povolenie pre tento web na prístup k vášmu fotoaparátu.</translation> <translation id="2426805022920575512">Vybrať iný účet</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Zostáva: <ph name="SECONDS" /> s</translation> <translation id="2781151931089541271">Zostáva: 1 s</translation> <translation id="2810645512293415242">Zjednodušená stránka vám pomôže ušetriť dáta a zrýchliť načítavanie.</translation> +<translation id="281504910091592009">Zobrazenie a správa uložených hesiel v <ph name="BEGIN_LINK" />účte Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Ak chcete získať záložky vo všetkých zariadeniach, prihláste sa a zapnite synchronizáciu</translation> <translation id="2836148919159985482">Ukončite režim celej obrazovky klepnutím na tlačidlo Späť.</translation> <translation id="2842985007712546952">Nadradený priečinok</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Informácie o stránkach</translation> <translation id="3341058695485821946">Zistite, koľko dát ste ušetrili</translation> <translation id="3350687908700087792">Zavrieť všetky karty inkognito</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Nastavenia<ph name="END_LINK1" /> si môžete kedykoľvek prispôsobiť. Google môže použiť obsah na weboch, ktoré navštívite, interakcie a aktivitu v prehliadači na prispôsobenie Chromu a služieb Googlu, ako sú Prekladač, Vyhľadávanie a reklamy.</translation> <translation id="3365671512111106261">Keď je zapnutý Šetrič dát, nie je táto možnosť k dispozícii</translation> <translation id="3367813778245106622">Ak chcete spustiť synchronizáciu, znova sa prihláste</translation> <translation id="3384347053049321195">Zdieľať obrázok</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Pomôžte zlepšiť prostredie VR v Chrome</translation> <translation id="3616113530831147358">Zvuk</translation> <translation id="3620176948598597475">Resetovaním vymažete históriu Šetriča dát vrátane zoznamu navštívených webov.</translation> +<translation id="3630011985153972676">V nastaveniach povoľte Chromu sťahovať články počas pripojenia k sieti Wi‑Fi.</translation> <translation id="3632295766818638029">Odhaliť heslo</translation> <translation id="363596933471559332">Povolí automatické prihlasovanie na webové stránky pomocou uložených poverení. Keď je funkcia vypnutá, zobrazí sa výzva na overenie vždy pred prihlásením na web.</translation> <translation id="3661699943263275414">Webové stránky tretej strany môžu ukladať a čítať údaje súborov cookie</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Povoliť webom spúšťať JavaScript (odporúča sa)</translation> <translation id="5345040418939504969">Záložka <ph name="BOOKMARK_TITLE" /> bola odstránená</translation> <translation id="5372829067651257087">Webová adresa bola skopírovaná.</translation> +<translation id="5391532827096253100">Vaše pripojenie k tomuto webu nie je zabezpečené. Informácie o webe</translation> <translation id="5400569084694353794">Používaním tejto aplikácie vyjadrujete súhlas so <ph name="BEGIN_LINK1" />zmluvnými podmienkami<ph name="END_LINK1" /> a <ph name="BEGIN_LINK2" />upozornením o ochrane osobných údajov<ph name="END_LINK2" /> prehliadača Chrome.</translation> <translation id="5403644198645076998">Povoliť len určité weby</translation> <translation id="5414836363063783498">Overuje sa...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{pred # hodinou}few{pred # hodinami}many{pred # hodinou}other{pred # hodinami}}</translation> <translation id="5817918615728894473">Párovať</translation> <translation id="583281660410589416">Neznáme</translation> +<translation id="5833397272224757657">Používa obsah z navštívených webov, aktivitu prehliadača a interakcie s ním na prispôsobenie</translation> <translation id="5833984609253377421">Zdieľať odkaz</translation> <translation id="5854790677617711513">Staršie ako 30 dní</translation> <translation id="5858741533101922242">Chrome nedokáže zapnúť adaptér Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Navigačný panel bol otvorený na celú výšku</translation> <translation id="6192333916571137726">Sťahovanie súboru</translation> <translation id="6192792657125177640">Výnimky</translation> +<translation id="6206551242102657620">Pripojenie je zabezpečné. Informácie o webe</translation> <translation id="6210748933810148297">Nie som <ph name="EMAIL" /></translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" /> – možnosti</translation> <translation id="6221633008163990886">Heslá budete môcť exportovať po odomknutí</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Vaše heslá uvidí každý, kto si môže zobraziť exportovaný súbor.</translation> <translation id="6942665639005891494">Kedykoľvek zmeniť predvolené umiestnenie stiahnutých súborov pomocou možnosti ponuky Nastavenia</translation> <translation id="6945221475159498467">Vybrať</translation> +<translation id="6963642900430330478">Táto stránka je nebezpečná. Informácie o webe</translation> <translation id="6963766334940102469">Odstrániť záložky</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Obnoviť nastavenia prekladov</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Automaticky hlásiť Googlu podrobnosti možných bezpečnostných incidentov</translation> <translation id="6992289844737586249">Opýtať sa pred povolením webu používať váš mikrofón (odporúčané)</translation> <translation id="7016516562562142042">Povolené v aktuálnom vyhľadávači</translation> -<translation id="7017968314960951695">Používa obsah z navštívených webov, aktivitu prehliadača a interakcie s ním na prispôsobenie</translation> <translation id="7021515813996758557">Súbor <ph name="FILE_NAME" /> je stiahnutý</translation> <translation id="7022756207310403729">Otvoriť v prehliadači</translation> <translation id="7029809446516969842">Heslá</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb index bb3cdb8..e042dc24 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sl.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Brskanje</translation> <translation id="1993768208584545658"><ph name="SITE" /> želi opraviti seznanitev</translation> <translation id="1994173015038366702">URL spletnega mesta</translation> +<translation id="2000419248597011803">Pošilja nekatere piškotke in iskanja iz naslovne vrstice ter iskalnega polja privzetemu iskalniku</translation> <translation id="2002537628803770967">Kreditne kartice in naslovi z Googlom Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> KB drugih aplikacij</translation> <translation id="2017836877785168846">Izbriše zgodovino in samodokončanja v naslovni vrstici.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Prilagajanje besedila</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Izbira računa</translation> +<translation id="2414672073755873541">Tu ni vsebine</translation> <translation id="2414886740292270097">Temno</translation> <translation id="2416359993254398973">Chrome potrebuje dovoljenje za dostop do fotoaparata za to spletno mesto.</translation> <translation id="2426805022920575512">Izberi drug račun</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Še <ph name="SECONDS" /> s</translation> <translation id="2781151931089541271">Še 1 s</translation> <translation id="2810645512293415242">Poenostavljena stran zaradi prihranka pri prenosu podatkov in hitrejšega nalaganja.</translation> +<translation id="281504910091592009">Ogled in upravljanje shranjenih gesel v <ph name="BEGIN_LINK" />Google Računu<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Če želite dostopati do zaznamkov v vseh napravah, se prijavite in vklopite sinhronizacijo</translation> <translation id="2836148919159985482">Dotaknite se gumba za nazaj, če želite zapreti celozaslonski način.</translation> <translation id="2842985007712546952">Nadrejena mapa</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Podatki o mestu</translation> <translation id="3341058695485821946">Oglejte si, koliko prenosa podatkov ste prihranili</translation> <translation id="3350687908700087792">Zapri vse zavihke brez beleženja zgodovine</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Nastavitve<ph name="END_LINK1" /> je mogoče kadar koli prilagoditi. Google lahko vsebino na spletnih mestih, ki jih obiščete, interakcije z brskalnikom in dejavnost v brskalniku uporabi za prilagajanje Chroma in Googlovih storitev, kot so Prevajalnik, Iskanje Google in oglasi.</translation> <translation id="3365671512111106261">Ni na voljo, ko je vklopljeno varčevanje s podatki</translation> <translation id="3367813778245106622">Prijavite se znova, če želite začeti sinhronizacijo</translation> <translation id="3384347053049321195">Skupna raba slike</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Pomagajte izboljšati uporabo navidezne resničnosti v Chromu</translation> <translation id="3616113530831147358">Zvok</translation> <translation id="3620176948598597475">Ponastavitev izbriše zgodovino varčevanja s podatki, vključno s seznamom obiskanih spletnih mest.</translation> +<translation id="3630011985153972676">Omogočanje Chromu, da prenese članke, ko je v nastavitvah omogočeno omrežje Wi-Fi.</translation> <translation id="3632295766818638029">Razkritje gesla</translation> <translation id="363596933471559332">Samodejna prijava v spletna mesta s shranjenimi poverilnicami. Ko je ta funkcija izklopljena, bo pri vsaki prijavi v spletno mesto potrebno preverjanje.</translation> <translation id="3661699943263275414">Druga spletna mesta lahko shranjujejo in berejo podatke piškotkov</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Spletnim mestom dovoli izvajanje JavaScripta (priporočeno)</translation> <translation id="5345040418939504969">Izbrisano: <ph name="BOOKMARK_TITLE" /></translation> <translation id="5372829067651257087">URL je kopiran.</translation> +<translation id="5391532827096253100">Povezava s tem spletnim mestom ni varna. Podatki o spletnem mestu.</translation> <translation id="5400569084694353794">Če uporabljate to aplikacijo, se strinjate s <ph name="BEGIN_LINK1" />pogoji storitve<ph name="END_LINK1" /> in <ph name="BEGIN_LINK2" />pravilnikom o zasebnosti<ph name="END_LINK2" /> za Chrome.</translation> <translation id="5403644198645076998">Dovoli samo nekatera spletna mesta</translation> <translation id="5414836363063783498">Preverjanje …</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Pred # uro}one{Pred # uro}two{Pred # urama}few{Pred # urami}other{Pred # urami}}</translation> <translation id="5817918615728894473">Seznani</translation> <translation id="583281660410589416">Neznano</translation> +<translation id="5833397272224757657">Uporablja vsebino na spletnih mestih, ki jih obiščete, ter dejavnost v brskalniku in interakcijo zaradi prilagajanja</translation> <translation id="5833984609253377421">Deli povezavo z drugimi</translation> <translation id="5854790677617711513">Starejše od 30 dni</translation> <translation id="5858741533101922242">Chrome ne more vklopiti vmesnika za Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Podokno za krmarjenje je odprto pri polni višini</translation> <translation id="6192333916571137726">Datoteka Odjemanje</translation> <translation id="6192792657125177640">Izjeme</translation> +<translation id="6206551242102657620">Povezava je varna. Podatki o spletnem mestu.</translation> <translation id="6210748933810148297">Niste <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Možnosti za <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Odklenite, če želite izvoziti gesla</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Gesla bodo vidna vsakomur, ki si lahko ogleda izvoženo datoteko z gesli.</translation> <translation id="6942665639005891494">Z možnostjo v meniju z nastavitvami lahko kadar koli spremenite privzeto mesto za prenose</translation> <translation id="6945221475159498467">Izberi</translation> +<translation id="6963642900430330478">Ta stran je nevarna. Podatki o spletnem mestu.</translation> <translation id="6963766334940102469">Izbriši zaznamke</translation> <translation id="6965382102122355670">V redu</translation> <translation id="6978479750597523876">Ponastavljanje nastavitev za prevajanje</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Samodejno poročanje podrobnosti morebitnih varnostnih dogodkov Googlu</translation> <translation id="6992289844737586249">Poziv, preden se spletnim mestom dovoli uporaba mikrofona (priporočeno)</translation> <translation id="7016516562562142042">Dovoljeno za trenutni iskalnik</translation> -<translation id="7017968314960951695">Uporablja vsebino na spletnih mestih, ki jih obiščete, ter dejavnost v brskalniku in interakcijo zaradi prilagajanja</translation> <translation id="7021515813996758557">Datoteka <ph name="FILE_NAME" /> je prenesena</translation> <translation id="7022756207310403729">Odpiranje v brskalniku</translation> <translation id="7029809446516969842">Gesla</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb index 604d520..2b6c972 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sr.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Прегледај</translation> <translation id="1993768208584545658"><ph name="SITE" /> жели да се упари</translation> <translation id="1994173015038366702">URL сајта</translation> +<translation id="2000419248597011803">Подразумеваном претраживачу шаље неке колачиће и претраге из траке за адресу и оквира за претрагу</translation> <translation id="2002537628803770967">Кредитне картице и адресе из Google Pay-а</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> kB – друге апликације</translation> <translation id="2017836877785168846">Брише историју и аутоматска довршавања у траци за адресу.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Промена величине текста</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> MB</translation> <translation id="2410754283952462441">Изаберите налог</translation> +<translation id="2414672073755873541">Овде нема садржаја</translation> <translation id="2414886740292270097">Тамнa</translation> <translation id="2416359993254398973">Chrome тражи дозволу да приступи камери за овај сајт.</translation> <translation id="2426805022920575512">Изаберите други налог</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Још <ph name="SECONDS" /> сек</translation> <translation id="2781151931089541271">Још 1 сек</translation> <translation id="2810645512293415242">Страница је поједностављена ради уштеде на подацима и бржег учитавања.</translation> +<translation id="281504910091592009">Прегледајте сачуване лозинке и управљајте њима на <ph name="BEGIN_LINK" />Google налогу<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Да би вам обележивачи били доступни на свим уређајима, пријавите се и укључите синхронизацију</translation> <translation id="2836148919159985482">Додирните дугме Назад да бисте изашли из режима целог екрана.</translation> <translation id="2842985007712546952">Надређени директоријум</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Информације о сајту</translation> <translation id="3341058695485821946">Погледајте колико сте података уштедели</translation> <translation id="3350687908700087792">Затвори све картице без архивирања</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Подешавања<ph name="END_LINK1" /> увек можете да прилагодите. Google може да користи садржај на сајтовима које посећујете, интеракције са прегледачима и активности у њима да би персонализовао Chrome и Google услуге као што су Преводилац, Претрага и огласи.</translation> <translation id="3365671512111106261">Није доступно када је Уштеда података укључена</translation> <translation id="3367813778245106622">Пријавите се поново да бисте започели синхронизацију</translation> <translation id="3384347053049321195">Дели слику</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Помозите нам да побољшамо доживљај виртуалне реалности у Chrome-у</translation> <translation id="3616113530831147358">Аудио</translation> <translation id="3620176948598597475">Ресетовањем се брише историја Уштеде података, укључујући листу сајтова које сте посетили.</translation> +<translation id="3630011985153972676">У подешавањима дозволите Chrome-у да преузима чланке за вас када користите Wi-Fi.</translation> <translation id="3632295766818638029">Откриј лозинку</translation> <translation id="363596933471559332">Аутоматски се пријављујте на веб-сајтове помоћу сачуваних акредитива. Када је ова функција искључена, тражићемо вам да се верификујете пре сваког пријављивања на веб-сајт.</translation> <translation id="3661699943263275414">Веб-сајтови треће стране могу да чувају и читају податке колачића</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Дозволи сајтовима да покрећу JavaScript (препоручено)</translation> <translation id="5345040418939504969">Обележивач <ph name="BOOKMARK_TITLE" /> је избрисан</translation> <translation id="5372829067651257087">URL је копиран.</translation> +<translation id="5391532827096253100">Веза са овим сајтом није безбедна. Информације о сајту</translation> <translation id="5400569084694353794">Коришћењем ове апликације прихватате <ph name="BEGIN_LINK1" />Услове коришћења услуге<ph name="END_LINK1" /> и <ph name="BEGIN_LINK2" />Обавештење о приватности<ph name="END_LINK2" /> за Chrome.</translation> <translation id="5403644198645076998">Дозволи само одређене сајтове</translation> <translation id="5414836363063783498">Верификују се...</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Пре # сата}one{Пре # сата}few{Пре # сата}other{Пре # сати}}</translation> <translation id="5817918615728894473">Упари</translation> <translation id="583281660410589416">Непознато</translation> +<translation id="5833397272224757657">Користи садржај на сајтовима које посећујете, као и активности и интеракције у прегледачу ради персонализације</translation> <translation id="5833984609253377421">Дели линк</translation> <translation id="5854790677617711513">Старије од 30 дана</translation> <translation id="5858741533101922242">Chrome не може да укључи Bluetooth адаптер</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Окно за навигацију је отворено у целини</translation> <translation id="6192333916571137726">Преузмите датотеку</translation> <translation id="6192792657125177640">Изузеци</translation> +<translation id="6206551242102657620">Веза је безбедна. Информације о сајту</translation> <translation id="6210748933810148297">Нисте <ph name="EMAIL" />?</translation> <translation id="6216432067784365534">Опције ставке <ph name="NAME_OF_LIST_ITEM" /></translation> <translation id="6221633008163990886">Откључајте да бисте извезли лозинке</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Лозинке ће бити видљиве свима који могу да виде извезену датотеку.</translation> <translation id="6942665639005891494">Промените подразумевану локацију за преузимање у било ком тренутку помоћи опције у менију Подешавања</translation> <translation id="6945221475159498467">Изабери</translation> +<translation id="6963642900430330478">Ова страница је опасна. Информације о сајту</translation> <translation id="6963766334940102469">Избриши обележиваче</translation> <translation id="6965382102122355670">Потврди</translation> <translation id="6978479750597523876">Ресетуј подешавања за превођење</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Аутоматски пријави Google-у детаље о могућим безбедносним инцидентима</translation> <translation id="6992289844737586249">Питај пре него што дозволиш сајтовима да користе микрофон (препоручено)</translation> <translation id="7016516562562142042">Дозвољено је за актуелни претраживач</translation> -<translation id="7017968314960951695">Користи садржај на сајтовима које посећујете, као и активности и интеракције у прегледачу ради персонализације</translation> <translation id="7021515813996758557">Преузели сте <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Отвори у прегледачу</translation> <translation id="7029809446516969842">Лозинке</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb index eafd924..42d2edc 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sv.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Platsinformation</translation> <translation id="3341058695485821946">Se hur mycket data du har sparat</translation> <translation id="3350687908700087792">Stäng alla inkognitoflikar</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Inställningarna<ph name="END_LINK1" /> kan anpassas när som helst. Google kan anpassa Chrome och tjänster från Google som Översätt, Sök och annonser utifrån innehållet på webbplatser du besöker, vad du interagerar med i webbläsaren och annan aktivitet.</translation> <translation id="3365671512111106261">Inte tillgängligt när Databesparing är aktiverat</translation> <translation id="3367813778245106622">Logga in igen om du vill påbörja synkroniseringen</translation> <translation id="3384347053049321195">Dela bild</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{för # timme sedan}other{för # timmar sedan}}</translation> <translation id="5817918615728894473">Koppla</translation> <translation id="583281660410589416">Okänd</translation> +<translation id="5833397272224757657">Använder innehåll på webbplatser du besöker, samt aktivitet i och interaktion med webbläsaren, i anpassningssyfte</translation> <translation id="5833984609253377421">Dela länk</translation> <translation id="5854790677617711513">Äldre än 30 dagar</translation> <translation id="5858741533101922242">Det gick inte att aktivera Bluetooth-adaptern i Chrome</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Rapportera uppgifter om möjliga säkerhetsincidenter till Google automatiskt</translation> <translation id="6992289844737586249">Fråga innan webbplatser tillåts att använda mikrofonen (rekommenderas)</translation> <translation id="7016516562562142042">Tillåt för den nuvarande sökmotorn</translation> -<translation id="7017968314960951695">Använder innehåll på webbplatser du besöker, samt aktivitet i och interaktion med webbläsaren, i anpassningssyfte</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> har laddats ned</translation> <translation id="7022756207310403729">Öppna i webbläsaren</translation> <translation id="7029809446516969842">Lösenord</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb index 1ab1fee..b093ce4 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_sw.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Maelezo ya tovuti</translation> <translation id="3341058695485821946">Ona kiasi cha data ulichookoa</translation> <translation id="3350687908700087792">Funga vichupo vyote fiche</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Mipangilio<ph name="END_LINK1" /> inaweza kubadilishwa wakati wowote. Google inaweza kutumia maudhui kwenye tovuti unazotembelea, matumizi ya kivinjari na shughuli ili kuweka mapendeleo kwenye huduma za Chrome and Google kama vile Tafsiri, Tafuta na Google na matangazo.</translation> <translation id="3365671512111106261">Haipatikani Kiokoa Data kinapowashwa</translation> <translation id="3367813778245106622">Ingia tena katika akaunti ili uanze kusawazisha</translation> <translation id="3384347053049321195">Shiriki picha</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{Saa # iliyopita}other{Saa # zilizopita}}</translation> <translation id="5817918615728894473">Oanisha</translation> <translation id="583281660410589416">Haijulikani</translation> +<translation id="5833397272224757657">Hutumia maudhui kwenye tovuti unazotembelea pamoja na shughuli na vitendo vya kivinjari ili kuweka mapendeleo</translation> <translation id="5833984609253377421">Shiriki kiungo</translation> <translation id="5854790677617711513">Iliyohifadhiwa kwa zaidi ya siku 30</translation> <translation id="5858741533101922242">Chrome imeshindwa kuwasha adapta ya Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Tumia Google ripoti ya matukio yanayotishia usalama mtandaoni, kiotomatiki</translation> <translation id="6992289844737586249">Uliza kwanza kabla ya kuruhusu tovuti zitumie maikrofoni yako (inapendekezwa)</translation> <translation id="7016516562562142042">Imeruhusiwa kwa mtambo wa sasa wa kutafuta</translation> -<translation id="7017968314960951695">Hutumia maudhui kwenye tovuti unazotembelea na shughuli na vitendo vya kivinjari ili kuweka mapendeleo</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> imepakuliwa</translation> <translation id="7022756207310403729">Fungua katika kivinjari</translation> <translation id="7029809446516969842">Manenosiri</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb index c63ef38..890faa3a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_th.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_th.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">ข้อมูลไซต์</translation> <translation id="3341058695485821946">ดูปริมาณอินเทอร์เน็ตที่คุณประหยัดไปได้</translation> <translation id="3350687908700087792">ปิดแท็บไม่ระบุตัวตนทั้งหมด</translation> -<translation id="3361477720586884778">คุณปรับแต่ง<ph name="BEGIN_LINK1" />การตั้งค่า<ph name="END_LINK1" />ได้ทุกเมื่อ Google อาจใช้เนื้อหาในเว็บไซต์ที่คุณเข้าชม รวมถึงการโต้ตอบและกิจกรรมในเบราว์เซอร์เพื่อปรับ Chrome และบริการของ Google อย่างเช่น แปลภาษา, Search และโฆษณาให้เหมาะกับคุณ</translation> <translation id="3365671512111106261">ใช้งานไม่ได้เมื่อเปิดโปรแกรมประหยัดอินเทอร์เน็ต</translation> <translation id="3367813778245106622">ลงชื่อเข้าใช้อีกครั้งเพื่อเริ่มซิงค์</translation> <translation id="3384347053049321195">แชร์รูปภาพ</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# ชั่วโมงที่ผ่านมา}other{# ชั่วโมงที่ผ่านมา}}</translation> <translation id="5817918615728894473">จับคู่</translation> <translation id="583281660410589416">ไม่รู้จัก</translation> +<translation id="5833397272224757657">ใช้เนื้อหาในเว็บไซต์ที่คุณเข้าชม รวมถึงกิจกรรมและการโต้ตอบในเบราว์เซอร์เพื่อการปรับเปลี่ยนในแบบของคุณ</translation> <translation id="5833984609253377421">แชร์ลิงก์</translation> <translation id="5854790677617711513">เกิน 30 วัน</translation> <translation id="5858741533101922242">Chrome ไม่สามารถเปิดอะแดปเตอร์บลูทูธ</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">รายงานรายละเอียดของเหตุการณ์ด้านความปลอดภัยที่อาจจะเกิดขึ้นต่อ Google โดยอัตโนมัติ</translation> <translation id="6992289844737586249">ถามก่อน ก่อนที่จะอนุญาตให้เว็บไซต์ใช้ไมโครโฟน (แนะนำ)</translation> <translation id="7016516562562142042">อนุญาตสำหรับเครื่องมือค้นหาปัจจุบัน</translation> -<translation id="7017968314960951695">ใช้เนื้อหาในเว็บไซต์ที่คุณเข้าชม รวมถึงกิจกรรมและการโต้ตอบในเบราว์เซอร์เพื่อการปรับเปลี่ยนในแบบของคุณ</translation> <translation id="7021515813996758557">ดาวน์โหลด <ph name="FILE_NAME" /> แล้ว</translation> <translation id="7022756207310403729">เปิดในเบราว์เซอร์</translation> <translation id="7029809446516969842">รหัสผ่าน</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb index 2de406e6..09167d3 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_tr.xtb
@@ -18,7 +18,7 @@ <translation id="1141800923049248244">{FILE_COUNT,plural, =1{1 indirme işlemi beklemede.}other{# indirme işlemi beklemede.}}</translation> <translation id="1145536944570833626">Mevcut verileri silin.</translation> <translation id="1146678959555564648">VR'ye Gir</translation> -<translation id="114721135501989771">Chrome'da Google'ın akıllı yaklaşımını elde edin</translation> +<translation id="114721135501989771">Google zekası Chrome'da</translation> <translation id="1157102636231978136">Google Hesabınızla senkronize edilen tarama verileriniz ve etkinliğiniz</translation> <translation id="116280672541001035">Kullanılan</translation> <translation id="1172593791219290334">Başlangıç Sayfası</translation> @@ -286,7 +286,6 @@ <translation id="3328801116991980348">Site bilgileri</translation> <translation id="3341058695485821946">Ne kadar veri tasarrufu sağladığınıza bakın</translation> <translation id="3350687908700087792">Tüm gizli sekmeleri kapatın.</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Ayarlar<ph name="END_LINK1" />'ı istediğiniz zaman özelleştirebilirsiniz. Google; Chrome'u ve Çeviri, Arama, reklamlar gibi diğer Google hizmetlerini kişiselleştirmek için ziyaret ettiğiniz sitelerdeki içeriği, tarayıcı etkileşimlerini ve etkinlikleri kullanabilir.</translation> <translation id="3365671512111106261">Veri Tasarrufu açık olduğunda kullanılamaz</translation> <translation id="3367813778245106622">Senkronizasyonu başlatmak için tekrar oturum açın</translation> <translation id="3384347053049321195">Resmi paylaş</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# saat önce}other{# saat önce}}</translation> <translation id="5817918615728894473">Eşle</translation> <translation id="583281660410589416">Bilinmiyor</translation> +<translation id="5833397272224757657">Kişiselleştirme için ziyaret ettiğiniz sitelerin içeriğinin yanı sıra tarayıcı etkinliğini ve etkileşimlerini kullanır</translation> <translation id="5833984609253377421">Bağlantıyı paylaş</translation> <translation id="5854790677617711513">30 günden daha eski</translation> <translation id="5858741533101922242">Chrome, Bluetooth adaptörünü açamıyor</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Olası güvenlik olaylarının ayrıntılarını Google'a otomatik olarak bildir</translation> <translation id="6992289844737586249">Sitelerin, mikrofonunuzu kullanmasına izin verilmeden önce size sorulsun (önerilen)</translation> <translation id="7016516562562142042">Geçerli arama motoru için izin verildi</translation> -<translation id="7017968314960951695">Kişiselleştirme için ziyaret ettiğiniz sitelerin içeriğini, tarayıcı etkinliğini ve etkileşimlerini kullanır</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> dosyası indirildi</translation> <translation id="7022756207310403729">Tarayıcıda aç</translation> <translation id="7029809446516969842">Şifreler</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb index d1fbe01..d86638e 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_uk.xtb
@@ -130,6 +130,7 @@ <translation id="1989112275319619282">Переглянути</translation> <translation id="1993768208584545658">Сайт <ph name="SITE" /> хоче підключитися до пристрою</translation> <translation id="1994173015038366702">URL-адреса сайту</translation> +<translation id="2000419248597011803">Надсилає деякі файли cookie й пошукові запити з адресного рядка та вікна пошуку в пошукову систему за умовчанням</translation> <translation id="2002537628803770967">Кредитні картки й адреси, додані в Google Pay</translation> <translation id="200815880754187296"><ph name="KILOBYTES" /> КБ використовується іншими додатками</translation> <translation id="2017836877785168846">Очищує історію й автозавершення в адресному рядку.</translation> @@ -181,6 +182,7 @@ <translation id="2387895666653383613">Масштаб тексту</translation> <translation id="2402980924095424747"><ph name="MEGABYTES" /> МБ</translation> <translation id="2410754283952462441">Виберіть обліковий запис</translation> +<translation id="2414672073755873541">Немає вмісту</translation> <translation id="2414886740292270097">Темна</translation> <translation id="2416359993254398973">Chrome потрібні дозволи, щоб використовувати камеру на цьому сайті.</translation> <translation id="2426805022920575512">Вибрати інший обліковий запис</translation> @@ -227,6 +229,7 @@ <translation id="2777555524387840389">Залишилося <ph name="SECONDS" /> с</translation> <translation id="2781151931089541271">Залишилась 1 с</translation> <translation id="2810645512293415242">Спрощена сторінка для заощадження трафіку та швидшого завантаження.</translation> +<translation id="281504910091592009">Переглядайте збережені паролі й керуйте ними в <ph name="BEGIN_LINK" />обліковому записі Google<ph name="END_LINK" /></translation> <translation id="2818669890320396765">Щоб мати доступ до закладок на всіх своїх пристроях, увійдіть в обліковий запис і ввімкніть синхронізацію</translation> <translation id="2836148919159985482">Щоб вийти з повноекранного режиму, торкніться кнопки "Назад".</translation> <translation id="2842985007712546952">Батьківська папка</translation> @@ -283,7 +286,6 @@ <translation id="3328801116991980348">Інформація про сайт</translation> <translation id="3341058695485821946">Перевірте обсяг збережених даних</translation> <translation id="3350687908700087792">Закрити всі анонімні вікна</translation> -<translation id="3361477720586884778"><ph name="BEGIN_LINK1" />Налаштування<ph name="END_LINK1" /> можна будь-коли змінювати. Google може використовувати вміст відвіданих сайтів, дані веб-перегляду й інші дії, щоб персоналізувати Chrome та інші сервіси Google, як-от Перекладач, Пошук і оголошення.</translation> <translation id="3365671512111106261">Недоступно, коли ввімкнено Заощадження трафіку</translation> <translation id="3367813778245106622">Увійдіть знову, щоб почати синхронізацію</translation> <translation id="3384347053049321195">Поділитися зображенням</translation> @@ -314,6 +316,7 @@ <translation id="360207483134687714">Допоможіть покращити віртуальну реальність у Chrome</translation> <translation id="3616113530831147358">Звук</translation> <translation id="3620176948598597475">Буде скинуто історію функції Заощадження трафіку, зокрема список відвіданих сайтів.</translation> +<translation id="3630011985153972676">Дозвольте Chrome завантажувати статті через Wi-Fi у налаштуваннях.</translation> <translation id="3632295766818638029">Показати пароль</translation> <translation id="363596933471559332">Автоматично входити в облікові записи на веб-сайтах за допомогою збережених даних. Якщо цю функцію вимкнено, потрібно вводити облікові дані під час кожного входу на сайтах.</translation> <translation id="3661699943263275414">Сторонні веб-сайти можуть зберігати та розпізнавати дані файлів cookie</translation> @@ -518,6 +521,7 @@ <translation id="5335288049665977812">Дозволити сайтам запускати Javascript (рекомендується)</translation> <translation id="5345040418939504969">Закладку "<ph name="BOOKMARK_TITLE" />" видалено</translation> <translation id="5372829067651257087">URL-адресу скопійовано.</translation> +<translation id="5391532827096253100">Ваше з’єднання з цим сайтом незахищене. Інформація про сайт</translation> <translation id="5400569084694353794">Користуючись цим додатком, ви приймаєте <ph name="BEGIN_LINK1" />Умови використання<ph name="END_LINK1" /> та <ph name="BEGIN_LINK2" />Примітку про конфіденційність<ph name="END_LINK2" /> Chrome.</translation> <translation id="5403644198645076998">Дозволити лише певні сайти</translation> <translation id="5414836363063783498">Підтвердження…</translation> @@ -586,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# годину тому}one{# годину тому}few{# години тому}many{# годин тому}other{# години тому}}</translation> <translation id="5817918615728894473">Підключити</translation> <translation id="583281660410589416">Невідомий</translation> +<translation id="5833397272224757657">Використовує вміст відвіданих сайтів, активність у веб-переглядачі та взаємодії для персоналізації</translation> <translation id="5833984609253377421">Поділитися посиланням</translation> <translation id="5854790677617711513">Понад 30 днів тому</translation> <translation id="5858741533101922242">Chrome не може ввімкнути адаптер Bluetooth</translation> @@ -631,6 +636,7 @@ <translation id="618555311922999635">Панель навігації відкрито на весь екран</translation> <translation id="6192333916571137726">Завантажити файл</translation> <translation id="6192792657125177640">Винятки</translation> +<translation id="6206551242102657620">З’єднання безпечне. Інформація про сайт</translation> <translation id="6210748933810148297">Не <ph name="EMAIL" />?</translation> <translation id="6216432067784365534"><ph name="NAME_OF_LIST_ITEM" />: опції</translation> <translation id="6221633008163990886">Розблокуйте, щоб експортувати паролі</translation> @@ -722,6 +728,7 @@ <translation id="6914783257214138813">Ваші паролі бачитимуть усі, хто може переглядати експортований файл.</translation> <translation id="6942665639005891494">Будь-коли змінюйте папку для завантажень за умовчанням, використовуючи відповідну опцію в меню "Налаштування"</translation> <translation id="6945221475159498467">Вибрати</translation> +<translation id="6963642900430330478">Ця сторінка небезпечна. Інформація про сайт</translation> <translation id="6963766334940102469">Видалити закладки</translation> <translation id="6965382102122355670">OK</translation> <translation id="6978479750597523876">Скинути налаштування перекладу</translation> @@ -732,7 +739,6 @@ <translation id="699220179437400583">Автоматично повідомляти Google деталі щодо можливих порушень безпеки</translation> <translation id="6992289844737586249">Запитувати, перш ніж дозволити сайтам використовувати мікрофон (рекомендується)</translation> <translation id="7016516562562142042">Дозволено для поточної пошукової системи</translation> -<translation id="7017968314960951695">Використовує вміст відвіданих сайтів, активність у веб-переглядачі та взаємодії для персоналізації</translation> <translation id="7021515813996758557">Файл "<ph name="FILE_NAME" />" завантажено</translation> <translation id="7022756207310403729">Відкрити у веб-переглядачі</translation> <translation id="7029809446516969842">Паролі</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb index 49ae04b9..5fe3725f 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">Thông tin về trang web</translation> <translation id="3341058695485821946">Xem lượng dữ liệu bạn đã tiết kiệm được</translation> <translation id="3350687908700087792">Đóng tất cả các tab ẩn danh</translation> -<translation id="3361477720586884778">Bạn có thể tùy chỉnh mục <ph name="BEGIN_LINK1" />Cài đặt<ph name="END_LINK1" /> bất cứ lúc nào. Google có thể sử dụng nội dung trên các trang web bạn truy cập, hoạt động và các tương tác trên trình duyệt để cá nhân hóa Chrome và các dịch vụ của Google, chẳng hạn như Dịch, Tìm kiếm và quảng cáo.</translation> <translation id="3365671512111106261">Không khả dụng khi Trình tiết kiệm dữ liệu được bật</translation> <translation id="3367813778245106622">Đăng nhập lại để bắt đầu đồng bộ hóa</translation> <translation id="3384347053049321195">Chia sẻ hình ảnh</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# giờ trước}other{# giờ trước}}</translation> <translation id="5817918615728894473">Ghép nối</translation> <translation id="583281660410589416">Không xác định</translation> +<translation id="5833397272224757657">Dùng nội dung trên trang web bạn truy cập cũng như các tương tác và hoạt động trên trình duyệt để cá nhân hóa</translation> <translation id="5833984609253377421">Chia sẻ liên kết</translation> <translation id="5854790677617711513">Đã tồn tại hơn 30 ngày</translation> <translation id="5858741533101922242">Chrome không thể bật bộ điều hợp Bluetooth</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">Tự động báo cáo với Google chi tiết về sự cố bảo mật có thể xảy ra</translation> <translation id="6992289844737586249">Hỏi trước trước khi cho phép các trang web sử dụng micrô của bạn (được đề xuất)</translation> <translation id="7016516562562142042">Được cho phép đối với công cụ tìm kiếm hiện tại</translation> -<translation id="7017968314960951695">Sử dụng nội dung trên trang web bạn truy cập cũng như hoạt động và sự tương tác trên trình duyệt để cá nhân hóa</translation> <translation id="7021515813996758557">Đã tải xuống <ph name="FILE_NAME" /></translation> <translation id="7022756207310403729">Mở trong trình duyệt</translation> <translation id="7029809446516969842">Mật khẩu</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb index 3a6ab90a..1552960a 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">网站信息</translation> <translation id="3341058695485821946">查看您已节省多少数据流量</translation> <translation id="3350687908700087792">关闭所有隐身标签页</translation> -<translation id="3361477720586884778">您随时可以自定义<ph name="BEGIN_LINK1" />设置<ph name="END_LINK1" />。Google 可能会根据您访问的网站上的内容、您在浏览器中的互动行为和活动,为您提供个性化的 Chrome 体验和其他 Google 服务体验(例如翻译、搜索和广告)。</translation> <translation id="3365671512111106261">在流量节省程序处于开启状态时不可用</translation> <translation id="3367813778245106622">重新登录以开始同步</translation> <translation id="3384347053049321195">分享图片</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# 小时前}other{# 小时前}}</translation> <translation id="5817918615728894473">配对</translation> <translation id="583281660410589416">未知</translation> +<translation id="5833397272224757657">根据您访问的网站上的内容以及您在浏览器中的活动和互动行为,提供个性化的使用体验</translation> <translation id="5833984609253377421">分享链接</translation> <translation id="5854790677617711513">30 天之前的</translation> <translation id="5858741533101922242">Chrome 无法开启蓝牙适配器</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">自动向 Google 报告可能出现的安全事件详情</translation> <translation id="6992289844737586249">在允许网站使用您的麦克风前先询问(推荐)</translation> <translation id="7016516562562142042">已设为可供当前的搜索引擎使用</translation> -<translation id="7017968314960951695">根据您访问的网站上的内容以及您在浏览器中的活动和互动行为,提供个性化的使用体验</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> 已下载完毕</translation> <translation id="7022756207310403729">在浏览器中打开</translation> <translation id="7029809446516969842">密码</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb index f9b51c7..1ed44c7f 100644 --- a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb +++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -286,7 +286,6 @@ <translation id="3328801116991980348">網站資訊</translation> <translation id="3341058695485821946">查看節省的數據用量</translation> <translation id="3350687908700087792">關閉所有無痕式分頁</translation> -<translation id="3361477720586884778">你隨時可以調整<ph name="BEGIN_LINK1" />設定<ph name="END_LINK1" />。Google 可能會根據你所造訪網站的內容、瀏覽器互動行為和瀏覽活動,提供個人化的 Chrome 體驗和 Google 服務體驗,例如翻譯、搜尋和廣告。</translation> <translation id="3365671512111106261">開啟 Data Saver 時無法使用這項設定</translation> <translation id="3367813778245106622">如要開始同步處理,請重新登入</translation> <translation id="3384347053049321195">分享圖片</translation> @@ -591,6 +590,7 @@ <translation id="5809361687334836369">{HOURS,plural, =1{# 小時前}other{# 小時前}}</translation> <translation id="5817918615728894473">配對</translation> <translation id="583281660410589416">未知</translation> +<translation id="5833397272224757657">使用你所造訪網站的內容、瀏覽器活動和瀏覽器互動行為,提供個人化的使用體驗</translation> <translation id="5833984609253377421">分享連結</translation> <translation id="5854790677617711513">超過 30 天前</translation> <translation id="5858741533101922242">Chrome 無法開啟藍牙轉接器</translation> @@ -739,7 +739,6 @@ <translation id="699220179437400583">自動將疑似安全性事件的詳細資料回報給 Google</translation> <translation id="6992289844737586249">允許網站使用您的麥克風前,必須先詢問您 (建議)</translation> <translation id="7016516562562142042">允許目前的搜尋引擎存取位置資訊</translation> -<translation id="7017968314960951695">使用你所造訪網站的內容、瀏覽器活動和瀏覽器互動行為,提供個人化的使用體驗</translation> <translation id="7021515813996758557"><ph name="FILE_NAME" /> 下載完成</translation> <translation id="7022756207310403729">在瀏覽器中開啟</translation> <translation id="7029809446516969842">密碼</translation>
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java index 8e38d569..119b455 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/autofill/keyboard_accessory/KeyboardAccessoryControllerTest.java
@@ -204,6 +204,17 @@ } @Test + public void testActionsRemovedWhenNotVisible() { + // Make the accessory visible and add an action to it. + mMediator.keyboardVisibilityChanged(true); + mModel.getActionList().add(new Action(null, null)); + + // Hiding the accessory should also remove actions. + mMediator.keyboardVisibilityChanged(false); + assertThat(mModel.getActionList().size(), is(0)); + } + + @Test public void testIsVisibleWithTabs() { // Without any actions, the accessory should remain invisible. assertThat(mModel.getActionList().size(), is(0));
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd index df8b3cd..b0cab76 100644 --- a/chrome/app/generated_resources.grd +++ b/chrome/app/generated_resources.grd
@@ -4792,6 +4792,9 @@ <message name="IDS_NTP_CUSTOM_BG_GOOGLE_PHOTO_LABEL" desc="Accessibility label for a Google Photos image tile. (On the New Tab Page)"> Photo </message> + <message name="IDS_NTP_CUSTOM_BG_PHOTO_SELECTED" desc="Label to indicate that a photo has been selected. (On the New Tab Page)"> + selected + </message> <!--Tooltip strings--> <message name="IDS_TOOLTIP_BACK" desc="The tooltip for back button"> @@ -7448,9 +7451,6 @@ <message name="IDS_EMAIL_LINK_MAC" desc="The Mac menu item to email a link to the current page in the share submenu"> Email Link </message> - <message name="IDS_EMAIL_PAGE_LOCATION_MAC" desc="The Mac menu item to email the page location in the file menu."> - Email Page Location - </message> <message name="IDS_SHARING_MORE_MAC" desc="The Mac menu item to see more macOS share extensions in the share menu."> More... </message>
diff --git a/chrome/app/generated_resources_grd/IDS_NTP_CUSTOM_BG_PHOTO_SELECTED.png.sha1 b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOM_BG_PHOTO_SELECTED.png.sha1 new file mode 100644 index 0000000..ea7c9c9 --- /dev/null +++ b/chrome/app/generated_resources_grd/IDS_NTP_CUSTOM_BG_PHOTO_SELECTED.png.sha1
@@ -0,0 +1 @@ +96471032cdaa48350474e0e527b5aa23e191d898 \ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb index 5ff80b2..98e327d1 100644 --- a/chrome/app/resources/chromium_strings_ar.xtb +++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">بادِر بتثبيت Chromium على هاتفك. سنرسل رسالة قصيرة SMS إلى رقم هاتف استرداد حسابك.</translation> <translation id="1174473354587728743">هل تشارك جهاز كمبيوتر؟ يمكنك الآن إعداد Chromium بالطريقة التي تعجبك تمامًا.</translation> <translation id="1185134272377778587">حول Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{ستتم إعادة تشغيل Chromium الآن}=1{ستتم إعادة تشغيل Chromium خلال ثانية واحدة}two{ستتم إعادة تشغيل Chromium خلال ثانيتين (#)}few{ستتم إعادة تشغيل Chromium خلال # ثوانٍ}many{ستتم إعادة تشغيل Chromium خلال # ثانيةً}other{ستتم إعادة تشغيل Chromium خلال # ثانية}}</translation> +<translation id="1267419686153937460">{0,plural, =1{إعادة تشغيل Chromium خلال يوم واحد}zero{إعادة تشغيل Chromium خلال # يوم}two{إعادة تشغيل Chromium خلال يومين (#)}few{إعادة تشغيل Chromium خلال # أيام}many{إعادة تشغيل Chromium خلال # يومًا}other{إعادة تشغيل Chromium خلال # يوم}}</translation> <translation id="1298199220304005244">الحصول على مساعدة بشأن استخدام نظام التشغيل Chromium</translation> <translation id="1396446129537741364">يحاول Chromium إظهار كلمات المرور.</translation> <translation id="1414495520565016063">تم تسجيل دخولك إلى Chromium!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">إعادة تثبيت Chromium</translation> <translation id="1869480248812203386">يمكنك المساعدة في جعل Chromium أكثر أمانًا وأسهل استخدامًا بإبلاغ Google تلقائيًا بتفاصيل أي مخاطر أمنية محتملة.</translation> <translation id="1881322772814446296">أنت تسجل الدخول باستخدام حساب يخضع للإدارة وتتيح للمشرف إمكانية التحكم في ملفك الشخصي على Chromium. وستكون بياناتك في Chromium مثل تطبيقاتك وإشاراتك المرجعية وسجلك وكلمات المرور التابعة لك والإعدادات الأخرى مرتبطة دائمًا بالمستخدم <ph name="USER_NAME" />. ستتمكن من حذف هذه البيانات عبر لوحة تحكم حسابات Google، ولكنك لن تتمكن من إقران هذه البيانات بحساب آخر. ويُمكنك اختيار إنشاء ملف شخصي جديد للإبقاء على بياناتك الحالية في Chromium بشكل مستقل. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{هناك تحديث متاح لـ Chromium}=1{هناك تحديث واحد متاح لـ Chromium}two{هناك تحديث متاح لـ Chromium منذ يومين (#)}few{هناك تحديث متاح لـ Chromium منذ # أيام}many{هناك تحديث متاح لـ Chromium منذ # يومًا}other{هناك تحديث متاح لـ Chromium منذ # يوم}}</translation> <translation id="1929939181775079593">لا يستجيب Chromium. هل تريد إعادة التشغيل الآن؟</translation> <translation id="1966382378801805537">يتعذَّر على Chromium تحديد المتصفح التلقائي أو تعيينه</translation> <translation id="2008474315282236005">سيعمل هذا على حذف عنصر واحد من هذا الجهاز. لاسترداد بياناتك لاحقًا، سجّل الدخول إلى Chromium كـ <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium محدّث</translation> <translation id="3032787606318309379">جارٍ الإضافة إلى Chromium...</translation> <translation id="3046695367536568084">يجب أن تسجّل الدخول إلى Chromium لاستخدام التطبيقات. ويتيح هذا مزامنة Chromium لتطبيقاتك وإشاراتك المرجعية وسجلك وكلمات المرور التابعة لك، فضلاً عن الإعدادات الأخرى على جميع الأجهزة.</translation> +<translation id="3052899382720782935">{0,plural, =1{ستتم إعادة تشغيل Chromium خلال دقيقة واحدة}zero{ستتم إعادة تشغيل Chromium خلال # دقيقة}two{ستتم إعادة تشغيل Chromium خلال دقيقتين (#)}few{ستتم إعادة تشغيل Chromium خلال # دقائق}many{ستتم إعادة تشغيل Chromium خلال # دقيقةً}other{ستتم إعادة تشغيل Chromium خلال # دقيقة}}</translation> <translation id="3068515742935458733">يمكنك المساعدة في تحسين Chromium عن طريق إرسال تقارير الأعطال و<ph name="UMA_LINK" /> إلى Google</translation> <translation id="3103660991484857065">تعذّرت أداة التثبيت في فك ضغط الأرشيف. يُرجى إعادة تنزيل Chromium.</translation> <translation id="3130323860337406239">يستخدم Chromium الميكروفون.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">جارٍ تحديث Chromium...</translation> <translation id="358997566136285270">شعار Chromium</translation> <translation id="3713809861844741608">فتح الرابط في علامة تبويب جديدة في Chromium</translation> +<translation id="3728336900324680424">سيصل Chromium إلى Drive لإنشاء الاقتراحات في شريط العناوين.</translation> <translation id="3762167353400286894">يتم عرض نظام تشغيل Chromium بهذه اللغة</translation> <translation id="378917192836375108">يتيح لك Chromium النقر على رقم هاتف على الويب والاتصال به باستخدام Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">تثبيت Chromium على شريط المهام</translation> <translation id="3889543394854987837">انقر على اسمك لفتح Chromium وبدء التصفح.</translation> <translation id="3898493977366060150">تصفُح الويب من خلال ميزات Google الذكية</translation> +<translation id="3965668104013180445">{0,plural, =1{ستتم إعادة تشغيل نظام التشغيل Chromium خلال ساعة واحدة}zero{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ساعة}two{ستتم إعادة تشغيل نظام التشغيل Chromium خلال ساعتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ساعات}many{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ساعةً}other{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ساعة}}</translation> <translation id="4036079820698952681">ساعد في تحسين Chromium بالإبلاغ عن <ph name="BEGIN_LINK" />الإعدادات الحالية<ph name="END_LINK" /></translation> <translation id="4050175100176540509">تحسينات الأمان المهمة والميزات الجديدة متاحة في أحدث إصدار.</translation> <translation id="407254336480250557">تحديد <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium في وضع الخلفية.</translation> <translation id="4987820182225656817">يمكن للضيف استخدام Chromium بدون أن يترك أي أثر وراءه.</translation> <translation id="4994636714258228724">إضافة نفسك إلى Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{هناك تحديث متاح لنظام التشغيل Chromium}=1{هناك تحديث متاح لنظام التشغيل Chromium}two{هناك تحديث متاح لنظام التشغيل Chromium منذ يومين (#)}few{هناك تحديث متاح لنظام التشغيل Chromium منذ # أيام}many{هناك تحديث متاح لنظام التشغيل Chromium منذ # يومًا}other{هناك تحديث متاح لنظام التشغيل Chromium منذ # يوم}}</translation> <translation id="5032989939245619637">حفظ التفاصيل في Chromium</translation> <translation id="5045248521775609809">إمكانية استخدام Chromium في كل مكان</translation> <translation id="5116586539350239523">سيخزّن Chromium معلوماتك الشخصية بشكلٍ آمن حتى لا تُضطر إلى كتابتها مرةً أخرى.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">يتعذر على نظام التشغيل Chromium فتح هذه الصفحة.</translation> <translation id="5480860683791598150">يحتاج Chromium للوصول إلى موقعك الجغرافي لمشاركته مع هذا الموقع.</translation> <translation id="549669000822060376">يُرجى الانتظار أثناء تثبيت Chromium لآخر تحديثات النظام.</translation> +<translation id="5514308096618405748">أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" /> إضافي، كما في نظام التشغيل Linux (إصدار تجريبي).</translation> +<translation id="5529843986978123325">{0,plural, =1{ستتم إعادة تشغيل نظام التشغيل Chromium خلال دقيقة واحدة}zero{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # دقيقة}two{ستتم إعادة تشغيل نظام التشغيل Chromium خلال دقيقتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # دقائق}many{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # دقيقةً}other{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # دقيقة}}</translation> <translation id="5631814766731275228">الاسم والصورة على Chromium</translation> <translation id="5634636535844844681">يتطلب Chromium نظام التشغيل Windows 7 أو إصدارًا أحدث.</translation> <translation id="5680901439334282664">تسجيل الدخول إلى Chromium</translation> <translation id="5698481217667032250">عرض Chromium بهذه اللغة</translation> +<translation id="5712253116097046984">يطلب المشرف إعادة تشغيل نظام التشغيل Chromium لتطبيق هذا التحديث.</translation> <translation id="5726838626470692954">يجب على مديرك إزالتك وإضافتك مرة أخرى إلى Chromium.</translation> <translation id="5768914737813585044">عرض نظام التشغيل Chromium بهذه اللغة</translation> <translation id="5796460469508169315">Chromium جاهز تقريبًا.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923">تمت إضافة <ph name="EXTENSION_NAME" /> إلى Chromium</translation> <translation id="608189560609172163">تعذر على Chromium مزامنة البيانات نظرًا لحدوث خطأ أثناء تسجيل الدخول.</translation> <translation id="6096348254544841612">تخصيص Chromium والتحكُّم فيه. هناك تحديث متوفر.</translation> +<translation id="6120345080069858279">سيحفظ Chromium كلمة المرور هذه في حسابك على Google. ولن تحتاج تذكّرها.</translation> <translation id="6129621093834146363">ملف <ph name="FILE_NAME" /> ضار، لذلك فقد حظره Chromium.</translation> +<translation id="620022061217911843">يتطلَّب المُشرف إعادة تشغيل نظام التشغيل Chromium لتطبيق تحديث.</translation> <translation id="6212496753309875659">يحتوي هذا الكمبيوتر فعلاً على إصدار أحدث من Chromium. إذا كان البرنامج لا يعمل، فالرجاء إزالة Chromium وإعادة المحاولة.</translation> <translation id="6248213926982192922">جعل Chromium المتصفح التلقائي</translation> <translation id="6268381023930128611">هل تريد الخروج من Chromium؟</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />مزيد من المعلومات<ph name="END_LINK_2" /> يُرجى التحقق من بريدك الإلكتروني على <ph name="ACCOUNT_EMAIL" /> للحصول على مزيد من التعليمات.</translation> +<translation id="7448255348454382571">إعادة تشغيل نظام التشغيل Chromium</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - إصدار قناة مطوري البرامج من Chromium</translation> <translation id="7451052299415159299">يحتاج Chromium إلى إذن للوصول إلى الكاميرا من أجل موقع الويب هذا.</translation> +<translation id="7471302858145901434">{0,plural, =1{إعادة تشغيل نظام التشغيل Chromium خلال يوم واحد}zero{إعادة تشغيل نظام التشغيل Chromium خلال # يوم}two{إعادة تشغيل نظام التشغيل Chromium خلال يومين (#)}few{إعادة تشغيل نظام التشغيل Chromium خلال # أيام}many{إعادة تشغيل نظام التشغيل Chromium خلال # يومًا}other{إعادة تشغيل نظام التشغيل Chromium خلال # يوم}}</translation> <translation id="7483335560992089831">لا يمكن تثبيت إصدار Chromium ذاته الذي يتم تشغيله حاليًا. يُرجى إغلاق Chromium وإعادة المحاولة.</translation> <translation id="7549178288319965365">حول نظام التشغيل Chromium</translation> <translation id="7577193603922410712">تم الآن تطبيق تحديث أمان خاص لـ Chromium؛ تجب إعادة التشغيل الآن لتسري التغييرات التي أجريتها (ستتم استعادة علامات التبويب).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">قد يكون هذا الملف ضارًا، لذلك فقد حظره Chromium.</translation> <translation id="8330519371938183845">يمكنك تسجيل الدخول لمزامنة Chromium وتخصيصه على جميع أجهزتك.</translation> <translation id="8340674089072921962">كان <ph name="USER_EMAIL_ADDRESS" /> يستخدم Chromium مسبقًا</translation> +<translation id="8375950122744241554">لن تصبح الملفات الشخصية للمستخدمين تحت الإشراف متاحة بعد الآن بدءًا من إصدار Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{ستتم إعادة تشغيل Chromium خلال ساعة واحدة}zero{ستتم إعادة تشغيل Chromium خلال # ساعة}two{ستتم إعادة تشغيل Chromium خلال ساعتين (#)}few{ستتم إعادة تشغيل Chromium خلال # ساعات}many{ستتم إعادة تشغيل Chromium خلال # ساعةً}other{ستتم إعادة تشغيل Chromium خلال # ساعة}}</translation> <translation id="8453117565092476964">أرشيف أداة التثبيت تالف أو غير صالح. يُرجى إعادة تنزيل Chromium.</translation> <translation id="8493179195440786826">إصدار Chromium قديم</translation> <translation id="85843667276690461">الحصول على مساعدة بشأن استخدام Chromium</translation> <translation id="8586442755830160949">حقوق الطبع والنشر لعام <ph name="YEAR" /> لصالح The Chromium Authors. جميع الحقوق محفوظة.</translation> +<translation id="8599548569518771270">{0,plural, =0{ستتم إعادة تشغيل نظام التشغيل Chromium الآن}=1{ستتم إعادة تشغيل نظام التشغيل Chromium خلال ثانية واحدة}two{ستتم إعادة تشغيل نظام التشغيل Chromium خلال ثانيتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ثوانٍ}many{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ثانيةً}other{ستتم إعادة تشغيل نظام التشغيل Chromium خلال # ثانية}}</translation> <translation id="8619360774459241877">جارٍ إطلاق Chromium...</translation> <translation id="8621669128220841554">تعذّر التثبيت نظرًا لحدوث خطأ غير محدد. يُرجى إعادة تنزيل Chromium.</translation> <translation id="8628626585870903697">لا يتضمن Chromium عارض PDF المطلوب لإجراء معاينة الطباعة.</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb index ef9fe888..47de047 100644 --- a/chrome/app/resources/chromium_strings_bn.xtb +++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -211,7 +211,7 @@ <translation id="7962572577636132072">Chromium স্বয়ংক্রিয়ভাবে আপডেট হয় তাই আপনি সবসময় নবীনতম সংস্করণটি পান৷</translation> <translation id="7975919845073681630">এটা Chromium এর অপ্রধান ইনস্টলেশন এবং একে আপনার ডিফল্ট ব্রাউজার করা যাবে না।</translation> <translation id="7979877361127045932">Chromium মেনুর মধ্যে লুকান</translation> -<translation id="8013436988911883588">একবার Chromium অ্যাক্সেস করার পরে, ওয়েবসাইটগুলি অ্যাক্সেস চাইতে পারে।</translation> +<translation id="8013436988911883588">Chromium অ্যাক্সেস পেলেই, ওয়েবসাইটগুলি আপনাকে অ্যাক্সেসের অনুরোধ করতে পারবে।</translation> <translation id="8030318113982266900">আপনার ডিভাইস <ph name="CHANNEL_NAME" /> চ্যানেলে আপডেট করা হচ্ছে...</translation> <translation id="8157153840442649507">এই ভাষায় Chromium প্রদর্শিত হচ্ছে</translation> <translation id="81770708095080097">এই ফাইলটি বিপজ্জনক, তাই Chromium এটিকে অবরুদ্ধ করেছে।</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb index f0945b5..6cc1eb4 100644 --- a/chrome/app/resources/chromium_strings_cs.xtb +++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">Nainstalujte si Chromium do telefonu. Zašleme vám SMS na telefonní číslo pro obnovení účtu.</translation> <translation id="1174473354587728743">Sdílíte počítač s dalšími uživateli? Nyní si Chromium můžete nastavit podle svých představ.</translation> <translation id="1185134272377778587">O prohlížeči Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium se nyní restartuje}=1{Chromium se za 1 sekundu restartuje}few{Chromium se za # sekundy restartuje}many{Chromium se za # sekundy restartuje}other{Chromium se za # sekund restartuje}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Do jednoho dne Chromium restartujte}few{Do # dnů Chromium restartujte}many{Do # dne Chromium restartujte}other{Do # dnů Chromium restartujte}}</translation> <translation id="1298199220304005244">Pomoc s používáním operačního systému Chromium OS</translation> <translation id="1396446129537741364">Chromium se pokouší zobrazit hesla.</translation> <translation id="1414495520565016063">Jste přihlášeni do prohlížeče Chromium.</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Přeinstalovat Chromium</translation> <translation id="1869480248812203386">Automatickým hlášením podrobností o možných bezpečnostních incidentech do Googlu můžete pomoci zrychlit projekt Chromium a usnadnit jeho používání.</translation> <translation id="1881322772814446296">Přihlašujete se pomocí spravovaného účtu a poskytujete jeho správci kontrolu nad vaším profilem prohlížeče Chromium. Vaše údaje prohlížeče Chromium, například aplikace, záložky, historie, hesla a jiná nastavení, budou trvale přidružena k účtu <ph name="USER_NAME" />. Tyto údaje budete moci smazat pomocí stránky Dashboard služby Účty Google, ale nebudete je moci přidružit k jinému účtu. Pokud chcete uchovat existující údaje prohlížeče Chromium odděleně, můžete vytvořit nový profil. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Je k dispozici aktualizace prohlížeče Chromium}=1{Je k dispozici aktualizace prohlížeče Chromium}few{Již # dny je k dispozici aktualizace prohlížeče Chromium}many{Již # dne je k dispozici aktualizace prohlížeče Chromium}other{Již # dní je k dispozici aktualizace prohlížeče Chromium}}</translation> <translation id="1929939181775079593">Prohlížeč Chromium neodpovídá. Chcete jej znovu načíst?</translation> <translation id="1966382378801805537">Chromium nemůže určit ani nastavit výchozí prohlížeč</translation> <translation id="2008474315282236005">Z tohoto zařízení bude smazána 1 položka. Budete-li chtít své údaje později načíst, přihlaste se do prohlížeče Chromium jako <ph name="USER_EMAIL" />.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Chromium je aktuální</translation> <translation id="3032787606318309379">Přidávání do prohlížeče Chromium...</translation> <translation id="3046695367536568084">Chcete-li používat aplikace, musíte být do prohlížeče Chromium přihlášeni. Přihlášení umožňuje prohlížeči Chromium synchronizovat vaše aplikace, záložky, historii, hesla a další nastavení mezi zařízeními.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium se za 1 minutu restartuje}few{Chromium se za # minuty restartuje}many{Chromium se za # minuty restartuje}other{Chromium se za # minut restartuje}}</translation> <translation id="3068515742935458733">Pomozte aplikaci Chromium zlepšovat tím, že budete společnosti Google zasílat zprávy o selhání a <ph name="UMA_LINK" />.</translation> <translation id="3103660991484857065">Instalačnímu programu se nepodařilo rozbalit archiv. Stáhněte prosím Chromium znovu.</translation> <translation id="3130323860337406239">Chromium používá váš mikrofon.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Aktualizace prohlížeče Chromium...</translation> <translation id="358997566136285270">Logo Chromium</translation> <translation id="3713809861844741608">Otevřít odkaz na nové kar&tě prohlížeče Chromium</translation> +<translation id="3728336900324680424">Chromium bude za účelem zobrazování návrhů v adresním řádku číst váš obsah na Disku</translation> <translation id="3762167353400286894">Chromium OS se zobrazuje v tomto jazyce</translation> <translation id="378917192836375108">Chromium umožňuje kliknout na telefonní číslo na webu a volat na něj prostřednictvím aplikace Skype.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Připněte si Chromium na hlavní panel</translation> <translation id="3889543394854987837">Chcete-li otevřít Chromium a začít procházet Internet, klikněte na svoje jméno.</translation> <translation id="3898493977366060150">Procházení webu s chytrými funkcemi Google</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS se za hodinu restartuje}few{Chromium OS se za # hodiny restartuje}many{Chromium OS se za # hodiny restartuje}other{Chromium OS se za # hodin restartuje}}</translation> <translation id="4036079820698952681">Pomozte s vylepšováním prohlížeče Chromium tím, že nahlásíte <ph name="BEGIN_LINK" />aktuální nastavení<ph name="END_LINK" /></translation> <translation id="4050175100176540509">V nejnovější verzi jsou k dispozici důležitá vylepšení zabezpečení a nové funkce.</translation> <translation id="407254336480250557">Vyberte <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" />.</translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Chromium je v režimu na pozadí.</translation> <translation id="4987820182225656817">Hosté mohou Chromium používat, aniž by po nich zůstaly jakékoliv stopy.</translation> <translation id="4994636714258228724">Přidejte do prohlížeče Chromium svůj účet</translation> +<translation id="5021854341188256296">{0,plural, =0{Je k dispozici aktualizace systému Chromium OS}=1{Je k dispozici aktualizace systému Chromium OS}few{Již # dny je k dispozici aktualizace systému Chromium OS}many{Již # dne je k dispozici aktualizace prohlížeče Chromium OS}other{Již # dní je k dispozici aktualizace prohlížeče Chromium OS}}</translation> <translation id="5032989939245619637">Ukládat údaje do prohlížeče Chromium</translation> <translation id="5045248521775609809">Vezměte si Chromium všude s sebou</translation> <translation id="5116586539350239523">Chromium vaše osobní údaje bezpečně uloží, abyste je nemuseli zadávat znovu.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Chromium OS tuto stránku nedokáže otevřít</translation> <translation id="5480860683791598150">Prohlížeč Chromium potřebuje přístup k vaší poloze, aby ji mohl sdílet s tímto webem</translation> <translation id="549669000822060376">Počkejte prosím, než Chromium nainstaluje nejnovější aktualizace systému.</translation> +<translation id="5514308096618405748">Chrome OS by nemohl existovat bez dalšího <ph name="BEGIN_LINK_CROS_OSS" />softwaru s otevřeným zdrojovým kódem<ph name="END_LINK_CROS_OSS" />, jako je Linux (beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS se za 1 minutu restartuje}few{Chromium OS se za # minuty restartuje}many{Chromium OS se za # minuty restartuje}other{Chromium OS se za # minut restartuje}}</translation> <translation id="5631814766731275228">Jméno a fotka v profilu Chromium</translation> <translation id="5634636535844844681">Chromium vyžaduje systém Windows 7 nebo vyšší.</translation> <translation id="5680901439334282664">přihlaste se do prohlížeče Chromium</translation> <translation id="5698481217667032250">Zobrazit Chromium v tomto jazyce</translation> +<translation id="5712253116097046984">Váš administrátor vás žádá, abyste kvůli použití této aktualizace Chromium OS restartovali</translation> <translation id="5726838626470692954">Správce vás musí odebrat a poté vás do prohlížeče Chromium znovu přidat.</translation> <translation id="5768914737813585044">Zobrazit Chromium OS v tomto jazyce</translation> <translation id="5796460469508169315">Prohlížeč Chromium je téměř připraven.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923">Do prohlížeče Chromium bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation> <translation id="608189560609172163">Přihlížeč Chromium vaše data nemohl synchronizovat, protože při přihlašování došlo k chybě.</translation> <translation id="6096348254544841612">Přizpůsobte si prohlížeč Chromium a ovládejte jej. Je k dispozici aktualizace.</translation> +<translation id="6120345080069858279">Chromium vám toto heslo uloží do účtu Google. Nebudete si ho muset pamatovat.</translation> <translation id="6129621093834146363">Soubor <ph name="FILE_NAME" /> je nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation> +<translation id="620022061217911843">Váš administrátor vyžaduje, abyste kvůli použití aktualizace restartovali Chromium OS</translation> <translation id="6212496753309875659">V tomto počítači je již nainstalována novější verze prohlížeče Chromium. Jestliže tento software nefunguje, odinstalujte Chromium a zkuste to znovu.</translation> <translation id="6248213926982192922">Nastavit Chromium jako výchozí prohlížeč</translation> <translation id="6268381023930128611">Odhlásit se z prohlížeče Chromium?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />Další informace<ph name="END_LINK_2" /> Další pokyny naleznete v e-mailu ve svém účtu <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Restartujte Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Dev</translation> <translation id="7451052299415159299">Chromium pro tento web potřebuje oprávnění k přístupu k fotoaparátu</translation> +<translation id="7471302858145901434">{0,plural, =1{Do jednoho dne Chromium OS restartujte}few{Do # dní Chromium OS restartujte}many{Do # dne Chromium OS restartujte}other{Do # dní Chromium OS restartujte}}</translation> <translation id="7483335560992089831">Nelze nainstalovat verzi prohlížeče Chromium, která je právě spuštěná. Ukončete prohlížeč Chromium a zkuste to znovu.</translation> <translation id="7549178288319965365">O systému Chromium OS</translation> <translation id="7577193603922410712">Právě byla nainstalována mimořádná bezpečnostní aktualizace prohlížeče Chromium. Aby se projevila, měli byste prohlížeč teď restartovat (otevřené karty se automaticky obnoví).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">Tento soubor může být nebezpečný, proto jej prohlížeč Chromium zablokoval.</translation> <translation id="8330519371938183845">Po přihlášení si budete moci Chromium synchronizovat a upravit na různých zařízeních</translation> <translation id="8340674089072921962">Před vámi prohlížeč Chromium používal uživatel <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="8375950122744241554">Profily dozorovaných uživatelů již od verze Chromium 70 nebudou k dispozici.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium se za hodinu restartuje}few{Chromium se za # hodiny restartuje}many{Chromium se za # hodiny restartuje}other{Chromium se za # hodin restartuje}}</translation> <translation id="8453117565092476964">Archiv instalačního programu je poškozený nebo neplatný. Stáhněte prosím Chromium znovu.</translation> <translation id="8493179195440786826">Prohlížeč Chromium je zastaralý</translation> <translation id="85843667276690461">Pomoc s používáním prohlížeče Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Autoři prohlížeče Chromium. Všechna práva vyhrazena.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chrome OS se teď restartuje}=1{Chromium OS se za 1 sekundu restartuje}few{Chromium OS se za # sekundy restartuje}many{Chromium OS se za # sekundy restartuje}other{Chromium OS se za # sekund restartuje}}</translation> <translation id="8619360774459241877">Spouštění prohlížeče Chromium...</translation> <translation id="8621669128220841554">Instalace se z neznámého důvodu nezdařila. Stáhněte prosím Chromium znovu.</translation> <translation id="8628626585870903697">Chromium neobsahuje prohlížeč PDF, který je požadován ke správnému fungování Náhledu tisku.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb index fb34c70..d085606 100644 --- a/chrome/app/resources/chromium_strings_da.xtb +++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Installer Chromium på din telefon. Vi sender en sms til telefonnummeret til gendannelse for din konto.</translation> <translation id="1174473354587728743">Deler du computer med andre? Nu kan du konfigurere Chromium, præcist som du vil.</translation> <translation id="1185134272377778587">Om Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium genstarter nu}=1{Chromium genstarter om 1 sekund}one{Chromium genstarter om # sekund}other{Chromium genstarter om # sekunder}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Genstart Chromium inden for en dag}one{Genstart Chromium inden for # dag}other{Genstart Chromium inden for # dage}}</translation> <translation id="1298199220304005244">Få hjælp til at bruge Chromium OS</translation> <translation id="1396446129537741364">Chromium forsøger at vise adgangskoder.</translation> <translation id="1414495520565016063">Du er logget ind på Chromium.</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Geninstaller Chromium</translation> <translation id="1869480248812203386">Du kan hjælpe med at gøre Chromium sikrere og nemmere at bruge ved automatisk at rapportere oplysninger om mulige sikkerhedshændelser til Google.</translation> <translation id="1881322772814446296">Du er ved at logge ind med en administreret konto og give dens administrator kontrol over din profil i Chromium. Dine Chromium-data, f.eks. dine apps, bogmærker, historikdata, adgangskoder og andre indstillinger, knyttes permanent til <ph name="USER_NAME" />. Du kan slette disse data via betjeningspanelet for Google Konti, men du kan ikke knytte disse data til en anden konto. Du kan eventuelt oprette en ny profil for at holde dine Chromium-data adskilt. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Der er en tilgængelig Chromium-opdatering}=1{Der er en tilgængelig Chromium-opdatering}one{En Chromium-opdatering har været tilgængelig i # dag}other{En Chromium-opdatering har været tilgængelig i # dage}}</translation> <translation id="1929939181775079593">Chromium svarer ikke. Vil du genstarte nu?</translation> <translation id="1966382378801805537">Chromium kan ikke fastlægge eller angive standardbrowseren</translation> <translation id="2008474315282236005">Denne handling sletter ét element på denne enhed. Hvis du senere vil hente dine data igen, skal du logge ind på Chromium som <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium er opdateret</translation> <translation id="3032787606318309379">Føjer til Chromium...</translation> <translation id="3046695367536568084">Du skal være logget ind på Chromium, før du kan bruge apps. Det gør det muligt for Chromium at synkronisere dine apps, bogmærker, historik, adgangskoder og andre indstillinger på alle enheder.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium genstarter om 1 minut}one{Chromium genstarter om # minut}other{Chromium genstarter om # minutter}}</translation> <translation id="3068515742935458733">Hjælp med at gøre Chromium bedre ved at sende fejlrapporter og <ph name="UMA_LINK" /> til Google</translation> <translation id="3103660991484857065">Installationsprogrammet kunne ikke pakke arkivet ud. Download Chromium igen.</translation> <translation id="3130323860337406239">Chromium bruger din mikrofon.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Opdaterer Chromium...</translation> <translation id="358997566136285270">Chromium-logo</translation> <translation id="3713809861844741608">Åbn linket på en ny Chromium-&fane</translation> +<translation id="3728336900324680424">Chromium har adgang til Drev, så der kan vises forslag i adresselinjen</translation> <translation id="3762167353400286894">Chromium OS vises på dette sprog</translation> <translation id="378917192836375108">Med Chromium kan du klikke på et telefonnummer på nettet og ringe op til det via Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Fastgør Chromium til proceslinjen</translation> <translation id="3889543394854987837">Klik på dit navn for at åbne Chromium og gå i gang med at browse.</translation> <translation id="3898493977366060150">Webbrowsing med Googles smarte funktioner</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS genstarter om en time}one{Chromium OS genstarter om # time}other{Chromium OS genstarter om # timer}}</translation> <translation id="4036079820698952681">Hjælp med at gøre Chromium bedre ved at rapportere de <ph name="BEGIN_LINK" />aktuelle indstillinger<ph name="END_LINK" />.</translation> <translation id="4050175100176540509">Vigtige sikkerhedsforbedringer og nye funktioner er tilgængelige i den seneste version.</translation> <translation id="407254336480250557">Vælg <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium kører i baggrunden.</translation> <translation id="4987820182225656817">Gæster kan bruge Chromium uden at efterlade noget.</translation> <translation id="4994636714258228724">Tilføj dig selv i Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Der er en tilgængelig Chromium OS-opdatering}=1{Der er en tilgængelig Chromium OS-opdatering}one{En Chromium OS-opdatering har været tilgængelig i # dag}other{En Chromium OS-opdatering har været tilgængelig i # dage}}</translation> <translation id="5032989939245619637">Gem oplysninger i Chromium</translation> <translation id="5045248521775609809">Tag Chromium med overalt</translation> <translation id="5116586539350239523">Chromium gemmer dine personlige oplysninger på sikker vis, så du ikke behøver at angive dem igen.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">Chromium OS kan ikke åbne denne side.</translation> <translation id="5480860683791598150">Chromium skal have adgang til din placering for at dele din placering med dette website</translation> <translation id="549669000822060376">Vent, mens Chromium installerer de nyeste systemopdateringer.</translation> +<translation id="5514308096618405748">Chrome OS realiseres ved hjælp af yderligere <ph name="BEGIN_LINK_CROS_OSS" />open source-software<ph name="END_LINK_CROS_OSS" />, og det samme gælder for Linux (beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS genstarter om 1 minut}one{Chromium OS genstarter om # minut}other{Chromium OS genstarter om # minutter}}</translation> <translation id="5631814766731275228">Chromium-navn og -billede</translation> <translation id="5634636535844844681">Chromium kræver Windows 7 eller nyere.</translation> <translation id="5680901439334282664">log ind på Chromium</translation> <translation id="5698481217667032250">Vis Chromium på dette sprog</translation> +<translation id="5712253116097046984">Din administrator anmoder om, at du genstarter Chromium OS for at anvende denne opdatering</translation> <translation id="5726838626470692954">Din administrator skal fjerne dig fra Chromium og tilføje dig igen.</translation> <translation id="5768914737813585044">Vis Chromium OS på dette sprog</translation> <translation id="5796460469508169315">Chromium er næsten klar.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> er føjet til Chromium</translation> <translation id="608189560609172163">Chromium kunne ikke synkronisere dine data på grund af en loginfejl.</translation> <translation id="6096348254544841612">Tilpas og administrer Chromium. Der er en tilgængelig opdatering.</translation> +<translation id="6120345080069858279">Chromium gemmer denne adgangskode på din Google-konto. Du behøver ikke at huske den.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> er skadelig, så Chromium har blokeret den.</translation> +<translation id="620022061217911843">Din administrator kræver, at du genstarter Chromium OS for at anvende en opdatering</translation> <translation id="6212496753309875659">Computeren har allerede en nyere version af Chromium. Hvis softwaren ikke virker, skal du afinstallere Chromium og prøve igen.</translation> <translation id="6248213926982192922">Gør Chromium til din standardbrowser</translation> <translation id="6268381023930128611">Vil du logge ud af Chromium?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />Få flere oplysninger<ph name="END_LINK_2" /> Gå til din mail på <ph name="ACCOUNT_EMAIL" /> for at få yderligere vejledning.</translation> +<translation id="7448255348454382571">Genstart Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium for udviklere</translation> <translation id="7451052299415159299">Chromium skal have tilladelse til at bruge dit kamera på dette website</translation> +<translation id="7471302858145901434">{0,plural, =1{Genstart Chromium OS inden for en dag}one{Genstart Chromium OS inden for # dag}other{Genstart Chromium OS inden for # dage}}</translation> <translation id="7483335560992089831">Kan ikke installere den samme version af Chromium som den, der kører i øjeblikket. Luk Chromium, og prøv igen.</translation> <translation id="7549178288319965365">Om Chromium OS</translation> <translation id="7577193603922410712">En særlig sikkerhedsopdatering til Chromium blev netop anvendt. Du bør genstarte nu, så den kan træde i kraft (dine faner gendannes).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">Denne fil kan være farlig, så Chromium har blokeret den.</translation> <translation id="8330519371938183845">Log ind for at synkronisere og tilpasse Chromium på alle dine enheder</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> brugte tidligere Chromium</translation> +<translation id="8375950122744241554">Administrerede brugerprofiler vil ikke længere være tilgængelige fra og med Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium genstarter om en time}one{Chromium genstarter om # time}other{Chromium genstarter om # timer}}</translation> <translation id="8453117565092476964">Installationsarkivet er beskadiget eller ugyldigt. Download Chromium igen.</translation> <translation id="8493179195440786826">Chromium er forældet</translation> <translation id="85843667276690461">Få hjælp til at bruge Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Forfatterne bag Chromium. Alle rettigheder forbeholdes.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS genstarter nu}=1{Chromium OS genstarter om 1 sekund}one{Chromium OS genstarter om # sekund}other{Chromium OS genstarter om # sekunder}}</translation> <translation id="8619360774459241877">Starter Chromium...</translation> <translation id="8621669128220841554">Installationen mislykkedes på grund af en uspecificeret fejl. Download Chromium igen.</translation> <translation id="8628626585870903697">Chromium inkluderer ikke PDF-fremviseren, som er påkrævet, for at Vis udskrift kan fungere.</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb index f84277e..24a44b9 100644 --- a/chrome/app/resources/chromium_strings_de.xtb +++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Installieren Sie Chromium auf Ihrem Smartphone. Wir senden Ihnen eine SMS an die Telefonnummer zur Kontowiederherstellung.</translation> <translation id="1174473354587728743">Sie nutzen einen Computer gemeinsam mit anderen? Jetzt können Sie Chromium nach Ihren Wünschen einrichten.</translation> <translation id="1185134272377778587">Über Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium wird jetzt neu gestartet}=1{Chromium wird in 1 Sekunde neu gestartet}other{Chromium wird in # Sekunden neu gestartet}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Chromium innerhalb eines Tages neu starten}other{Chromium innerhalb von # Tagen neu starten}}</translation> <translation id="1298199220304005244">Hilfe für Chromium OS aufrufen</translation> <translation id="1396446129537741364">Chromium versucht, Passwörter anzuzeigen.</translation> <translation id="1414495520565016063">Sie sind in Chromium angemeldet.</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Chromium neu installieren</translation> <translation id="1869480248812203386">Helfen Sie mit, Chromium sicherer und nutzerfreundlicher zu machen, indem Sie Details zu möglichen sicherheitsrelevanten Zwischenfällen automatisch an Google senden.</translation> <translation id="1881322772814446296">Sie melden sich mit einem verwalteten Konto an und ermöglichen dessen Administrator Zugriff auf Ihr Chromium-Profil. Ihre Chromium-Daten, wie Apps, Lesezeichen, Verlauf, Passwörter und andere Einstellungen, werden dauerhaft mit <ph name="USER_NAME" /> verknüpft. Sie können diese Daten über das Google Konten-Dashboard löschen, aber nicht mit einem anderen Konto verknüpfen. Wenn Sie Ihre bestehenden Chromium-Daten getrennt verwenden möchten, können Sie ein neues Profil erstellen. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Ein Chromium-Update ist verfügbar}=1{Ein Chromium-Update ist verfügbar}other{Ein Chromium-Update steht seit # Tagen zur Verfügung}}</translation> <translation id="1929939181775079593">Chromium reagiert nicht. Jetzt neu starten?</translation> <translation id="1966382378801805537">Chromium kann den Standardbrowser nicht bestimmen oder festlegen</translation> <translation id="2008474315282236005">Dadurch wird 1 Element von diesem Gerät gelöscht. Wenn Sie Ihre Daten später abrufen möchten, melden Sie sich als <ph name="USER_EMAIL" /> in Chromium an.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium ist auf dem neuesten Stand</translation> <translation id="3032787606318309379">Wird zu Chromium hinzugefügt...</translation> <translation id="3046695367536568084">Sie können Apps verwenden, wenn Sie in Chromium angemeldet sind. Chromium kann dann Ihre Apps, Lesezeichen, Passwörter, Ihren Verlauf und andere Einstellungen auf Ihren Geräten synchronisieren.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium wird in 1 Minute neu gestartet}other{Chromium wird in # Minuten neu gestartet}}</translation> <translation id="3068515742935458733">Absturzberichte und <ph name="UMA_LINK" /> zur Verbesserung von Chromium an Google senden</translation> <translation id="3103660991484857065">Das Installationsprogramm konnte das Archiv nicht dekomprimieren. Bitte laden Sie Chromium erneut herunter.</translation> <translation id="3130323860337406239">Chromium verwendet Ihr Mikrofon.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Chromium wird aktualisiert...</translation> <translation id="358997566136285270">Chromium-Logo</translation> <translation id="3713809861844741608">Link in neuem Chromium-Tab öffnen</translation> +<translation id="3728336900324680424">Chromium greift auf Google Drive zu, um in der Adressleiste Vorschläge zu machen</translation> <translation id="3762167353400286894">Chromium OS wird in dieser Sprache angezeigt</translation> <translation id="378917192836375108">In Chromium können Sie auf eine Telefonnummer im Web klicken und diese mit Skype anrufen.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">Chromium an Ihre Taskleiste anheften</translation> <translation id="3889543394854987837">Klicken Sie auf Ihren Namen, um Chromium zu öffnen und im Web zu surfen.</translation> <translation id="3898493977366060150">Smart surfen mit Google</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS wird in einer Stunde neu gestartet}other{Chromium OS wird in # Stunden neu gestartet}}</translation> <translation id="4036079820698952681">Helfen Sie uns mit Ihrem Feedback zu den <ph name="BEGIN_LINK" />aktuellen Einstellungen<ph name="END_LINK" /> bei der Verbesserung von Chromium</translation> <translation id="4050175100176540509">Wichtige Sicherheitsverbesserungen und neue Funktionen sind in der aktuellen Version verfügbar.</translation> <translation id="407254336480250557">Wählen Sie <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> aus</translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium wird im Hintergrundmodus ausgeführt.</translation> <translation id="4987820182225656817">Gastnutzer können Chromium verwenden, ohne Daten zu hinterlassen.</translation> <translation id="4994636714258228724">Mich zu Chromium hinzufügen</translation> +<translation id="5021854341188256296">{0,plural, =0{Ein Chromium OS-Update ist verfügbar}=1{Ein Chromium OS-Update ist verfügbar}other{Ein Chromium OS-Update steht seit # Tagen zur Verfügung}}</translation> <translation id="5032989939245619637">Details in Chromium speichern</translation> <translation id="5045248521775609809">Chromium überall mitnehmen</translation> <translation id="5116586539350239523">Ihre personenbezogenen Daten werden von Chromium sicher gespeichert. Dadurch brauchen Sie sie nicht noch einmal einzugeben.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">Chromium OS kann diese Seite nicht öffnen.</translation> <translation id="5480860683791598150">Chromium benötigt Zugriff auf Ihren Standort, um ihn mit dieser Website zu teilen</translation> <translation id="549669000822060376">Bitte warten Sie, bis die aktuellen Systemupdates von Chromium installiert wurden.</translation> +<translation id="5514308096618405748">Chrome OS wird durch zusätzliche <ph name="BEGIN_LINK_CROS_OSS" />Open-Source-Software<ph name="END_LINK_CROS_OSS" /> möglich gemacht, ebenso wie Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS wird in 1 Minute neu gestartet}other{Chromium OS wird in # Minuten neu gestartet}}</translation> <translation id="5631814766731275228">Chromium-Name und -Bild</translation> <translation id="5634636535844844681">Für Chromium ist Windows 7 oder höher erforderlich.</translation> <translation id="5680901439334282664">In Chromium anmelden</translation> <translation id="5698481217667032250">Chromium in dieser Sprache anzeigen</translation> +<translation id="5712253116097046984">Laut Ihrem Administrator müssen Sie Chromium OS neu starten, um dieses Update durchzuführen</translation> <translation id="5726838626470692954">Ihr Administrator muss Sie aus Chromium entfernen und dann wieder hinzufügen.</translation> <translation id="5768914737813585044">Chromium OS in dieser Sprache anzeigen</translation> <translation id="5796460469508169315">Chromium ist gleich bereit.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> wurde zu Chromium hinzugefügt</translation> <translation id="608189560609172163">Chromium konnte Ihre Daten aufgrund eines Fehlers bei der Anmeldung nicht synchronisieren.</translation> <translation id="6096348254544841612">Chromium anpassen und Einstellungen festlegen. Ein Update ist verfügbar.</translation> +<translation id="6120345080069858279">Chromium speichert dieses Passwort in Ihrem Google-Konto. Sie müssen es sich also nicht merken.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> ist schädlich und wurde daher von Chromium blockiert.</translation> +<translation id="620022061217911843">Laut Ihrem Administrator müssen Sie Chromium OS neu starten, um ein Update durchzuführen</translation> <translation id="6212496753309875659">Auf diesem Computer befindet sich bereits eine neuere Version von Chromium. Falls die Software nicht funktioniert, deinstallieren Sie Chromium bitte und versuchen Sie es erneut.</translation> <translation id="6248213926982192922">Chromium als Standardbrowser verwenden</translation> <translation id="6268381023930128611">Von Chromium abmelden?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />Weitere Infos<ph name="END_LINK_2" /> Weitere Informationen wurden per E-Mail an <ph name="ACCOUNT_EMAIL" /> gesendet.</translation> +<translation id="7448255348454382571">Chromium OS neu starten</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Dev</translation> <translation id="7451052299415159299">Chromium benötigt für diese Website die Berechtigung, auf Ihre Kamera zuzugreifen</translation> +<translation id="7471302858145901434">{0,plural, =1{Chromium OS innerhalb eines Tages neu starten}other{Chromium OS innerhalb von # Tagen neu starten}}</translation> <translation id="7483335560992089831">Die Chromium-Version kann nicht installiert werden, da sie aktuell ausgeführt wird. Schließen Sie Chromium bitte und versuchen Sie es erneut.</translation> <translation id="7549178288319965365">Über Chromium OS</translation> <translation id="7577193603922410712">Soeben wurde ein spezielles Sicherheitsupdate für Chromium installiert. Führen Sie einen Neustart durch, damit es wirksam wird. Ihre Tabs werden automatisch wiederhergestellt.</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">Diese Datei ist eventuell schädlich und wurde von Chromium blockiert.</translation> <translation id="8330519371938183845">Wenn Sie sich anmelden, wird Chromium auf allen Ihren Geräten synchronisiert und personalisiert</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> hat zuvor Chromium verwendet</translation> +<translation id="8375950122744241554">Die betreuten Nutzerprofile sind ab Chromium 70 nicht mehr verfügbar.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium wird in einer Stunde neu gestartet}other{Chromium wird in # Stunden neu gestartet}}</translation> <translation id="8453117565092476964">Das Installationsarchiv ist beschädigt oder ungültig. Bitte laden Sie Chromium erneut herunter.</translation> <translation id="8493179195440786826">Chromium ist veraltet.</translation> <translation id="85843667276690461">Hilfe für Chromium aufrufen</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Die Chromium-Autoren. Alle Rechte vorbehalten.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS wird jetzt neu gestartet}=1{Chromium OS wird in 1 Sekunde neu gestartet}other{Chromium OS wird in # Sekunden neu gestartet}}</translation> <translation id="8619360774459241877">Chromium wird gestartet…</translation> <translation id="8621669128220841554">Die Installation konnte aufgrund eines undefinierten Fehlers nicht abgeschlossen werden. Bitte laden Sie Chromium erneut herunter.</translation> <translation id="8628626585870903697">Chromium verfügt nicht über den PDF-Viewer, der für die Druckvorschau erforderlich ist.</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb index 466b79ca..711a2ab7 100644 --- a/chrome/app/resources/chromium_strings_fil.xtb +++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">I-install ang Chromium sa telepono mo. Magpapadala kami ng SMS sa iyong numero ng telepono para sa pag-recover ng account.</translation> <translation id="1174473354587728743">Magbabahagi ng computer? Ngayon, maaari mong i-set up ang Chromium sa paraang gusto mo.</translation> <translation id="1185134272377778587">Tungkol sa Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Muli nang ilulunsad ang Chromium}=1{Muling ilulunsad ang Chromium sa loob ng 1 segundo}one{Muling ilulunsad ang Chromium sa loob ng # segundo}other{Muling ilulunsad ang Chromium sa loob ng # na segundo}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Muling ilunsad ang Chromium sa loob ng isang araw}one{Muling ilunsad ang Chromium sa loob ng # araw}other{Muling ilunsad ang Chromium sa loob ng # na araw}}</translation> <translation id="1298199220304005244">Kumuha ng tulong sa paggamit ng Chromium OS</translation> <translation id="1396446129537741364">Sinusubukan ng Chromium na magpakita ng mga password.</translation> <translation id="1414495520565016063">Naka-sign in ka sa Chromium!</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Muling i-install ang Chromium</translation> <translation id="1869480248812203386">Makakatulong ka na gawing mas ligtas at mas madaling gamitin ang Chrome sa pamamagitan ng awtomatikong pag-uulat sa Google ng mga detalye ng mga posibleng isyu sa seguridad.</translation> <translation id="1881322772814446296">Nagsa-sign in ka gamit ang isang pinamamahalaang account at nagbibigay sa administrator nito ng kontrol sa iyong profile sa Chromium. Permanenteng mauugnay ang iyong data sa Chromium, gaya ng iyong apps, mga bookmark, kasaysayan, password, at iba pang mga setting sa <ph name="USER_NAME" />. Matatanggal mo ang data na ito sa Google Accounts Dashboard, ngunit hindi mo maiuugnay ang data na ito sa isa pang account. Maaari ka ring gumawa ng bagong profile upang ihiwalay ang iyong umiiral na data sa Chromium. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{May available na update sa Chromium}=1{May available na update sa Chromium}one{# araw nang may available na update sa Chromium}other{# na araw nang may available na update sa Chromium}}</translation> <translation id="1929939181775079593">Hindi gumagana ang Chromium. Muling ilunsad ngayon?</translation> <translation id="1966382378801805537">Hindi matukoy o maitakda ng Chromium ang default na browser</translation> <translation id="2008474315282236005">Magde-delete ito ng 1 item sa device na ito. Upang makuha ang iyong data sa ibang pagkakataon, mag-sign in sa Chromium bilang <ph name="USER_EMAIL" />.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Napapanahon ang Chromium</translation> <translation id="3032787606318309379">Idinaragdag sa Chromium...</translation> <translation id="3046695367536568084">Kailangang naka-sign in ka sa Chromium upang makagamit ng mga app. Nagbibigay-daan ito sa Chromium na i-sync ang iyong mga app, bookmark, kasaysayan, password at iba pang mga setting sa mga device.</translation> +<translation id="3052899382720782935">{0,plural, =1{Muling ilulunsad ang Chromium sa loob ng 1 minuto}one{Muling ilulunsad ang Chromium sa loob ng # minuto}other{Muling ilulunsad ang Chromium sa loob ng # na minuto}}</translation> <translation id="3068515742935458733">Tumulong na gawing mas mahusay ang Chromium sa pamamagitan ng pagpapadala ng mga ulat ng pag-crash at <ph name="UMA_LINK" /> sa Google</translation> <translation id="3103660991484857065">Nabigong i-uncompress ng installer ang archive. Mangyaring i-download muli ang Chromium.</translation> <translation id="3130323860337406239">Ginagamit ng Chromium ang iyong mikropono.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Ina-update ang Chromium...</translation> <translation id="358997566136285270">Logo ng Chromium</translation> <translation id="3713809861844741608">Buksan ang link sa bagong &tab ng Chromium</translation> +<translation id="3728336900324680424">Ia-access ng Chromium ang iyong Drive para makapagmungkahi sa address bar</translation> <translation id="3762167353400286894">Ipinapakita ang Chromium OS sa wikang ito</translation> <translation id="378917192836375108">Pinapayagan ka ng Google Chrome na mag-click sa isang numero ng telepono sa web at tawagan ito gamit ang Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">I-pin ang Chromium sa iyong taskbar</translation> <translation id="3889543394854987837">I-click ang iyong pangalan upang buksan ang Chromium at simulan ang pagba-browse.</translation> <translation id="3898493977366060150">Pag-browse sa web gamit ang mga smart na feature ng Google</translation> +<translation id="3965668104013180445">{0,plural, =1{Magre-restart ang Chromium OS sa loob ng isang oras}one{Magre-restart ang Chromium OS sa loob ng # oras}other{Magre-restart ang Chromium OS sa loob ng # na oras}}</translation> <translation id="4036079820698952681">Tulungang pahusayin ang Chromium sa pamamagitan ng pag-ulat sa <ph name="BEGIN_LINK" />mga kasalukuyang setting<ph name="END_LINK" /></translation> <translation id="4050175100176540509">May available na mahahalagang pagpapahusay sa seguridad at mga bagong feature sa pinakabagong bersyon.</translation> <translation id="407254336480250557">Piliin ang <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Nasa background mode ang Chromium.</translation> <translation id="4987820182225656817">Makakagamit ng Chromium ang mga bisita nang hindi nag-iiwan ng anumang bakas.</translation> <translation id="4994636714258228724">Idagdag ang iyong sarili sa Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{May available na update sa Chromium OS}=1{May available na update sa Chromium OS}one{# araw nang may available na update sa Chromium OS}other{# na araw nang may available na update sa Chromium OS}}</translation> <translation id="5032989939245619637">I-save ang mga detalye sa Chromium</translation> <translation id="5045248521775609809">Dalhin ang Chromium sa lahat ng lugar</translation> <translation id="5116586539350239523">Secure na iiimbak ng Chromium ang iyong mga personal na detalye nang sa gayon ay hindi mo na kailangang i-type muli ang mga ito.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Hindi mabuksan ng Chromium OS ang page na ito.</translation> <translation id="5480860683791598150">Kailangan ng Chromium ng access sa iyong lokasyon upang maibahagi ang lokasyon mo sa site na ito</translation> <translation id="549669000822060376">Mangyaring maghintay habang ini-install ng Chromium ang mga pinakabagong update sa system.</translation> +<translation id="5514308096618405748">Naging posible ang Chrome OS, gaya ng Linux (Beta), dahil sa karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="5529843986978123325">{0,plural, =1{Magre-restart ang Chromium OS sa loob ng 1 minuto}one{Magre-restart ang Chromium OS sa loob ng # minuto}other{Magre-restart ang Chromium OS sa loob ng # na minuto}}</translation> <translation id="5631814766731275228">pangalan at larawan sa Chromium</translation> <translation id="5634636535844844681">Kailangan ng Chromium ng Windows 7 o mas bago.</translation> <translation id="5680901439334282664">mag-sign in sa Chromium</translation> <translation id="5698481217667032250">Ipakita ang Chromium sa wikang ito</translation> +<translation id="5712253116097046984">Hinihiling sa iyo ng administrator mo na i-restart ang Chromium OS para mailapat ang update na ito</translation> <translation id="5726838626470692954">Maaaring inalis at idinagdag kang muli ng iyong manager sa Chromium.</translation> <translation id="5768914737813585044">Ipakita ang Chromium OS sa wikang ito</translation> <translation id="5796460469508169315">Halos handa na ang Chromium.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923">Naidagdag na ang <ph name="EXTENSION_NAME" /> sa Chromium</translation> <translation id="608189560609172163">Hindi mai-sync ng Chromium ang iyong data dahil sa isang error sa pagsa-sign in.</translation> <translation id="6096348254544841612">I-customize at kontrolin ang Chromium. May available na update.</translation> +<translation id="6120345080069858279">Ise-save ng Chromium ang password na ito sa iyong Google Account. Hindi mo na ito kailangang tandaan.</translation> <translation id="6129621093834146363">Mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chromium.</translation> +<translation id="620022061217911843">Inaatasan ka ng iyong administrator na i-restart ang Chromium OS para maglapat ng update</translation> <translation id="6212496753309875659">May mas bagong bersyon ng Chromium na ang computer na ito. Kung hindi gumagana ang software, mangyaring i-uninstall ang Chromium at subukang muli.</translation> <translation id="6248213926982192922">Gawing default na browser ang Chromium</translation> <translation id="6268381023930128611">Mag-sign out sa Chromium?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />Matuto nang higit pa<ph name="END_LINK_2" /> Pakitingnan ang iyong email sa <ph name="ACCOUNT_EMAIL" /> para sa mga karagdagang tagubilin.</translation> +<translation id="7448255348454382571">I-restart ang Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium Dev</translation> <translation id="7451052299415159299">Kailangan ng Chromium ng pahintulot na i-access ang iyong camera para sa site na ito</translation> +<translation id="7471302858145901434">{0,plural, =1{I-restart ang Chromium OS sa loob ng isang araw}one{I-restart ang Chromium OS sa loob ng # araw}other{I-restart ang Chromium OS sa loob ng # na araw}}</translation> <translation id="7483335560992089831">Hindi ma-install ang parehong Bersyon ng Chromium na kasalukuyang tumatakbo. Pakisara ang Chromium at subukang muli.</translation> <translation id="7549178288319965365">Tungkol sa Chromium OS</translation> <translation id="7577193603922410712">May kakalapat lang na espesyal na update sa seguridad para sa Chromium; dapat ka nang mag-restart ngayon upang magkabisa ito (ire-restore namin ang iyong mga tab).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">Maaaring mapanganib ang file na ito, kaya na-block ito ng Chromium.</translation> <translation id="8330519371938183845">Mag-sign in para i-sync at i-personalize ang Chromium sa lahat ng iyong device</translation> <translation id="8340674089072921962">Chromium ang dating ginagamit ng <ph name="USER_EMAIL_ADDRESS" /></translation> +<translation id="8375950122744241554">Mawawala na ang mga profile ng pinangangasiwaang user simula sa Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Muling ilulunsad ang Chromium sa loob ng isang oras}one{Muling ilulunsad ang Chromium sa loob ng # oras}other{Muling ilulunsad ang Chromium sa loob ng # na oras}}</translation> <translation id="8453117565092476964">Sira o di-wasto ang archive ng installer. Mangyaring i-download muli ang Chromium.</translation> <translation id="8493179195440786826">Luma na ang Chromium</translation> <translation id="85843667276690461">Kumuha ng tulong sa paggamit ng Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Ang Mga May-akda ng Chromium. Nakalaan ang lahat ng karapatan.</translation> +<translation id="8599548569518771270">{0,plural, =0{Magre-restart na ang Chromium OS}=1{Magre-restart ang Chromium OS sa loob ng 1 segundo}one{Magre-restart ang Chromium OS sa loob ng # segundo}other{Magre-restart ang Chromium OS sa loob ng # na segundo}}</translation> <translation id="8619360774459241877">Inilulunsad ang Chromium...</translation> <translation id="8621669128220841554">Nabigo ang pag-install dahil sa hindi natukoy na error. Mangyaring i-download muli ang Chromium.</translation> <translation id="8628626585870903697">Hindi isinasama ng Chromium ang PDF viewer na kinakailangan upang gumana ang Preview ng Pag-print.</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb index 76a5bd7..15ed3ce2 100644 --- a/chrome/app/resources/chromium_strings_gu.xtb +++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">તમારા ફોન પર Chromium ઇન્સ્ટૉલ કરો. અમે તમારા એકાઉન્ટ પુનઃપ્રાપ્તિ ફોન નંબર પર એક SMS મોકલીશું.</translation> <translation id="1174473354587728743">કમ્પ્યુટર શેર કરીએ? હવે તમે તમને ગમે તે રીતે Chromium ને સેટ કરી શકો છો.</translation> <translation id="1185134272377778587">Chromium વિશે</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium હમણાં ફરીથી લૉન્ચ થશે}=1{Chromium 1 સેકન્ડમાં ફરીથી લૉન્ચ થશે}one{Chromium # સેકન્ડમાં ફરીથી લૉન્ચ થશે}other{Chromium # સેકન્ડમાં ફરીથી લૉન્ચ થશે}}</translation> +<translation id="1267419686153937460">{0,plural, =1{એક દિવસની અંદર Chromiumને ફરીથી લૉન્ચ કરો}one{# દિવસની અંદર Chromiumને ફરીથી લૉન્ચ કરો}other{# દિવસની અંદર Chromiumને ફરીથી લૉન્ચ કરો}}</translation> <translation id="1298199220304005244">Chromium OS નો ઉપયોગ કરવા સહાય મેળવો</translation> <translation id="1396446129537741364">Chromium પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> <translation id="1414495520565016063">તમે Chromium માં સાઇન ઇન કર્યું છે!</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Chromium ફરીથી ઇન્સ્ટોલ કરો</translation> <translation id="1869480248812203386">તમે Google ને સંભવિત સુરક્ષા ઘટનાઓની વિગતોની જાણ આપમેળે કરીને Chromium ને વધુ સલામત અને ઉપયોગમાં વધુ સરળ બનાવવામાં સહાય કરી શકો છો.</translation> <translation id="1881322772814446296">તમે સંચાલિત કરેલ એકાઉન્ટ સાથે સાઇન ઇન કરી રહ્યાં છો અને તમારી Chromium પ્રોફાઇલ પર તેનું વ્યવસ્થાપક નિયંત્રણ આપી રહ્યાં છો. તમારો Chromium ડેટા, જેમ કે ઍપ્લિકેશનો, બુકમાર્ક્સ, ઇતિહાસ, પાસવર્ડ્સ અને અન્ય સેટિંગ્સ, કાયમ માટે <ph name="USER_NAME" /> થી બંધાયેલ રહેશે. તમે Google એકાઉન્ટ્સ ડેશબોર્ડથી આ ડેટાને કાઢી શકશો, પરંતુ તમે આ ડેટાને અન્ય એકાઉન્ટ સાથે સાંકળી શકશો નહીં. તમે અસ્તિત્વમાં છે તે Chromium ડેટાને અલગ રાખવા માટે વૈકલ્પિક રૂપે એક નવી પ્રોફાઇલ બનાવી શકો છો. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Chromium અપડેટ ઉપલબ્ધ છે}=1{Chromium અપડેટ ઉપલબ્ધ છે}one{Chromium અપડેટ # દિવસ માટે ઉપલબ્ધ છે}other{Chromium અપડેટ # દિવસ માટે ઉપલબ્ધ છે}}</translation> <translation id="1929939181775079593">Chromium પ્રતિસાદ આપતું નથી. હવે ફરીથી લોંચ કરીએ?</translation> <translation id="1966382378801805537">Chromium ડિફૉલ્ટ બ્રાઉઝરને નિર્ધારિત અથવા સેટ કરી શકતું નથી</translation> <translation id="2008474315282236005">આ, 1 આઇટમને આ ઉપકરણમાંથી કાઢી નાખશે. પછીથી તમારો ડેટા પુનઃપ્રાપ્ત કરવા માટે, Chromium માં <ph name="USER_EMAIL" /> તરીકે સાઇન ઇન કરો.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Chromium અપ ટૂ ડેટ છે</translation> <translation id="3032787606318309379">Chromium માં ઉમેરી રહ્યું છે...</translation> <translation id="3046695367536568084">ઍપ્લિકેશનોનો ઉપયોગ કરવા માટે તમારે Chromium માં સાઇન ઇન કરવાની જરૂર છે. આ Chromium ને તમારી ઍપ્લિકેશનો, બુકમાર્ક્સ, ઇતિહાસ, પાસવર્ડ્સ અને સમગ્ર ઉપકરણો પર અન્ય સેટિંગ્સને સમન્વયિત કરવાની મંજૂરી આપે છે.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium 1 મિનિટમાં ફરીથી લૉન્ચ થશે}one{Chromium # મિનિટમાં ફરીથી લૉન્ચ થશે}other{Chromium # મિનિટમાં ફરીથી લૉન્ચ થશે}}</translation> <translation id="3068515742935458733">ક્રેશ રિપોર્ટ્સ અને <ph name="UMA_LINK" /> Google ને મોકલીને Chromium ને વધુ સારું બનાવવામાં સહાય કરો.</translation> <translation id="3103660991484857065">ઇન્સ્ટોલર આર્કાઇવને અસંકુચિત કરવામાં કરવામાં નિષ્ફળ થયું. કૃપા કરીને Chromium ફરીથી ડાઉનલોડ કરો.</translation> <translation id="3130323860337406239">Chromium તમારા માઇક્રોફોનનો ઉપયોગ કરી રહ્યું છે.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Chromium ને અપડેટ કરી રહ્યું છે...</translation> <translation id="358997566136285270">Chromium લોગો</translation> <translation id="3713809861844741608">નવા Chromium &ટૅબમાં લિંક ખોલો</translation> +<translation id="3728336900324680424">ઍડ્રેસ બારમાં સૂચનો કરવા માટે, Chromium તમારી ડ્રાઇવને ઍક્સેસ કરશે</translation> <translation id="3762167353400286894">આ ભાષામાં Chromium OS પ્રદર્શિત થાય છે</translation> <translation id="378917192836375108">Chromium થી તમે વેબ પર એક ફોન નંબર પર ક્લિક કરી શકો છો અને તેને Skype થી કૉલ કરી શકો છો!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">તમારા ટાસ્કબારમાં Chromium ને પિન કરો</translation> <translation id="3889543394854987837">Chromium ને ખોલવા માટે તમારા નામને ક્લિક કરો અને બ્રાઉઝ કરવાનું પ્રારંભ કરો.</translation> <translation id="3898493977366060150">Google સ્માર્ટ સાથે વેબ બ્રાઉઝ કરો</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS એક કલાકમાં ફરી શરૂ થશે}one{Chromium OS # કલાકમાં ફરી શરૂ થશે}other{Chromium OS # કલાકમાં ફરી શરૂ થશે}}</translation> <translation id="4036079820698952681"><ph name="BEGIN_LINK" />વર્તમાન સેટિંગ્સ<ph name="END_LINK" />ની જાણ કરીને Chromium ને બહેતર બનાવવામાં સહાય કરો</translation> <translation id="4050175100176540509">નવીનતમ સંસ્કરણમાં મહત્વપૂર્ણ સુરક્ષા સુધારણાઓ અને નવી સુવિધાઓ ઉપલબ્ધ છે.</translation> <translation id="407254336480250557"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> પસંદ કરો</translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Chromium પૃષ્ઠભૂમિ મોડમાં છે.</translation> <translation id="4987820182225656817">અતિથિઓ કંઈપણ પાછળ છોડ્યાં વિના Chromium નો ઉપયોગ કરી શકે છે.</translation> <translation id="4994636714258228724">સ્વયંને Chromium માં ઉમેરો</translation> +<translation id="5021854341188256296">{0,plural, =0{Chromium OS અપડેટ ઉપલબ્ધ છે}=1{Chromium OS અપડેટ ઉપલબ્ધ છે}one{Chromium OS અપડેટ # દિવસ માટે ઉપલબ્ધ છે}other{Chromium OS અપડેટ # દિવસ માટે ઉપલબ્ધ છે}}</translation> <translation id="5032989939245619637">Chromium માં વિગતો સાચવો</translation> <translation id="5045248521775609809">Chromium ને સર્વત્ર લઈ જાઓ</translation> <translation id="5116586539350239523">Chromium તમારી વ્યક્તિગત માહિતીને સુરક્ષિત રીતે સંગ્રહિત કરશે જેથી તમારે તેમને ફરીથી ટાઇપ કરવાની જરૂર નથી.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Chromium OS, આ પૃષ્ઠને ખોલી શકતું નથી.</translation> <translation id="5480860683791598150">Chromiumને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે</translation> <translation id="549669000822060376">કૃપા કરીને Chromium, નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation> +<translation id="5514308096618405748">Linux (બીટા)ની જેમ, Chrome OS વધારાના <ph name="BEGIN_LINK_CROS_OSS" />ઓપન સૉર્સ સૉફ્ટવેર<ph name="END_LINK_CROS_OSS" /> દ્વારા શક્ય બનાવવામાં આવ્યું છે.</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS 1 મિનિટમાં ફરી શરૂ થશે}one{Chromium OS # મિનિટમાં ફરી શરૂ થશે}other{Chromium OS # મિનિટમાં ફરી શરૂ થશે}}</translation> <translation id="5631814766731275228">Chromiumમાંનું નામ અને ફોટો</translation> <translation id="5634636535844844681">Chromium માટે Windows 7 અથવા તે પછીનું સંસ્કરણ આવશ્યક છે.</translation> <translation id="5680901439334282664">Chromium માં સાઇન ઇન કરો</translation> <translation id="5698481217667032250">આ ભાષામાં Chromium પ્રદર્શિત કરો</translation> +<translation id="5712253116097046984">તમારા વ્યવસ્થાપક કહે છે કે આ અપડેટ લાગુ કરવા માટે Chromium OS ફરી શરૂ કરો</translation> <translation id="5726838626470692954">તમારા સંચાલકે તમને Chromium માંથી દૂર કરી અને તેના પર પાછા ઉમેરવા આવશ્યક છે.</translation> <translation id="5768914737813585044">આ ભાષામાં Chromium OS પ્રદર્શિત કરો</translation> <translation id="5796460469508169315">Chromium લગભગ તૈયાર છે.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" />ને Chromiumમાં ઉમેરવામાં આવ્યું છે</translation> <translation id="608189560609172163">સાઇન ઇનમાં ભૂલ આવવાને કારણે Chromium તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation> <translation id="6096348254544841612">Chromiumને કસ્ટમાઇઝ અને નિયંત્રિત કરો. અપડેટ ઉપલબ્ધ છે.</translation> +<translation id="6120345080069858279">Chromium આ પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવશે. તમારે તેને યાદ રાખવો જરૂરી નથી.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> જોખમી છે, તેથી Chromium એ તેને અવરોધિત કરેલ છે.</translation> +<translation id="620022061217911843">અપડેટ લાગુ કરવા માટે તમે Chromium OS ફરી શરૂ કરો તે તમારા વ્યવસ્થાપક માટે જરૂરી છે</translation> <translation id="6212496753309875659">આ કમ્પ્યુટર પર પહેલાથી જ Chromium નું સૌથી તાજેતરનું સંસ્કરણ છે. જો સૉફ્ટવેર કાર્ય કરી રહ્યું નથી, તો કૃપા કરીને Chromium ને અનઇન્સ્ટોલ કરો અને ફરીથી પ્રયાસ કરો.</translation> <translation id="6248213926982192922">Chromium ને ડિફોલ્ટ બ્રાઉઝર બનાવો</translation> <translation id="6268381023930128611">Chromium માંથી સાઇન આઉટ કરીએ?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />વધુ જાણો<ph name="END_LINK_2" /> વધુ સૂચનો માટે કૃપા કરીને <ph name="ACCOUNT_EMAIL" /> પર તમારી ઇમેઇલને તપાસો.</translation> +<translation id="7448255348454382571">Chromium OS ફરી શરૂ કરો</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium Dev</translation> <translation id="7451052299415159299">Chromiumને આ સાઇટ માટે તમારા કૅમેરાના ઍક્સેસની પરવાનગીની જરૂર પડે છે</translation> +<translation id="7471302858145901434">{0,plural, =1{એક દિવસની અંદર Chromium OS ફરી શરૂ કરો}one{# દિવસની અંદર Chromium OS ફરી શરૂ કરો}other{# દિવસની અંદર Chromium OS ફરી શરૂ કરો}}</translation> <translation id="7483335560992089831">હાલમાં ચાલી રહ્યું છે તેના જેવું સમાન Chromium સંસ્કરણ ઇન્સ્ટોલ કરી શકાતું નથી. કૃપા કરીને Chromium ને બંધ કરો અને ફરી પ્રયાસ કરો.</translation> <translation id="7549178288319965365">Chromium OS વિશે</translation> <translation id="7577193603922410712">Chromium માટેનું વિશિષ્ટ સુરક્ષા અપડેટ હમણાં જ લાગુ થયું; તેને પ્રભાવિત કરવા માટે તમારે અત્યારે પુનઃપ્રારંભ કરવું જોઈએ (અમે તમારા ટૅબ્સ પુનઃસ્થાપિત કરીશું).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">આ ફાઇલ જોખમી હોઈ શકે છે, તેથી Chromium એ તેને અવરોધિત કરેલ છે.</translation> <translation id="8330519371938183845">તમારા બધા ઉપકરણો પર Chromiumને સિંક અને વ્યક્તિગત કરવા માટે સાઇન ઇન કરો</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" />, પહેલાં Chromium નો ઉપયોગ કરી રહ્યાં હતાં</translation> +<translation id="8375950122744241554">Chromium 70 શરૂ થવાથી, નિરીક્ષિત વપરાશકર્તા પ્રોફાઇલો હવેથી ઉપલબ્ધ નહીં રહે.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium એક કલાકમાં ફરીથી લૉન્ચ થશે}one{Chromium # કલાકમાં ફરીથી લૉન્ચ થશે}other{Chromium # કલાકમાં ફરીથી લૉન્ચ થશે}}</translation> <translation id="8453117565092476964">ઇન્સ્ટોલર આર્કાઇવ દૂષિત અથવા અમાન્ય છે. કૃપા કરીને Chromium ફરીથી ડાઉનલોડ કરો.</translation> <translation id="8493179195440786826">Chromium જૂનું થઈ ગયું છે</translation> <translation id="85843667276690461">Chromium નો ઉપયોગ કરવા સહાય મેળવો</translation> <translation id="8586442755830160949">કોપિરાઇટ <ph name="YEAR" /> The Chromium Authors. સર્વાધિકાર સુરક્ષિત.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS હવે ફરી શરૂ થશે}=1{Chromium OS 1 સેકન્ડમાં ફરી શરૂ થશે}one{Chromium OS # સેકન્ડમાં ફરી શરૂ થશે}other{Chromium OS # સેકન્ડમાં ફરી શરૂ થશે}}</translation> <translation id="8619360774459241877">Chromium લૉન્ચ કરી રહ્યાં છીએ…</translation> <translation id="8621669128220841554">અનુલ્લેખિત ભૂલને કારણે ઇન્સ્ટોલેશન નિષ્ફળ રહ્યું. કૃપા કરીને Chromium ફરીથી ડાઉનલોડ કરો.</translation> <translation id="8628626585870903697">Chromium માં PDF વ્યૂઅર સામેલ કરતું નથી, જે પ્રિંટ પૂર્વાવલોકનને કાર્ય કરવા માટે જરૂરી છે.</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb index c802458..5a6e4bf 100644 --- a/chrome/app/resources/chromium_strings_hi.xtb +++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">अपने फ़ोन पर क्रोमियम इंस्टॉल करें. हम आपके उस फ़ोन नंबर पर एक मैसेज (एसएमएस) भेजेंगे जिसे आपने अपना खाता वापस पाने के लिए सेट किया है.</translation> <translation id="1174473354587728743">कंप्यूटर शेयर करते हैं? अब आप क्रोमियम को जैसा चाहें वैसा सेट कर सकते हैं.</translation> <translation id="1185134272377778587">क्रोमियम के बारे में</translation> +<translation id="1209657686917656928">{0,plural, =0{अब क्रोमियम फिर से लॉन्च होगा}=1{क्रोमियम एक सेकंड में फिर से लॉन्च होगा}one{क्रोमियम # सेकंड में फिर से लॉन्च होगा}other{क्रोमियम # सेकंड में फिर से लॉन्च होगा}}</translation> +<translation id="1267419686153937460">{0,plural, =1{एक दिन के अंदर क्रोमियम को फिर से लॉन्च करें}one{# दिनों के अंदर क्रोमियम को फिर से लॉन्च करें}other{# दिनों के अंदर क्रोमियम को फिर से लॉन्च करें}}</translation> <translation id="1298199220304005244">क्रोमियम OS उपयोग करने के साथ सहायता प्राप्त करें</translation> <translation id="1396446129537741364">क्रोमियम पासवर्ड दिखाने का प्रयास कर रहा है.</translation> <translation id="1414495520565016063">आप क्रोमियम में प्रवेश हैं!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">क्रोमियम को फिर से इंस्टॉल करें</translation> <translation id="1869480248812203386">आप Google को संभावित सुरक्षा घटनाओं के विवरणों की अपने आप रिपोर्ट करके क्रोमियम को अधिक सुरक्षित और आसान बनाने में सहायता कर सकते हैं.</translation> <translation id="1881322772814446296">आप प्रबंधित खाते से प्रवेश कर रहे हैं और उसके व्यवस्थापक को अपनी क्रोमियम प्रोफ़ाइल पर नियंत्रण दे रहे हैं. आपका क्रोमियम डेटा, जैसे आपके ऐप्स , बुकमार्क, इतिहास, पासवर्ड, औऱ अन्य सेटिंग स्थायी रूप से <ph name="USER_NAME" /> से जुड़ जाएंगी. आप Google खाता डैशबोर्ड के माध्यम से इस डेटा को हटा सकेंगे, लेकिन अन्य किसी खाते से इस डेटा को संबद्ध नहीं कर सकेंगे. आप अपने मौजूदा क्रोमियम डेटा को अलग रखने के लिए वैकल्पिक रूप से एक नई प्रोफ़ाइल बना सकते हैं. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{क्रोमियम का एक अपडेट उपलब्ध है}=1{क्रोमियम का एक अपडेट उपलब्ध है}one{क्रोमियम का एक अपडेट # दिनों से उपलब्ध है}other{क्रोमियम का एक अपडेट # दिनों से उपलब्ध है}}</translation> <translation id="1929939181775079593">क्रोमियम अनुत्तरदायी है. अभी रीलॉन्च करें?</translation> <translation id="1966382378801805537">क्रोमियम, डिफ़ॉल्ट ब्राउज़र को निर्धारित या सेट नहीं कर सकता</translation> <translation id="2008474315282236005">ऐसा करने से इस डिवाइस से 1 आइटम हट जाएगा. बाद में अपना डेटा पाने के लिए, Chromium में <ph name="USER_EMAIL" /> के रूप में प्रवेश करें.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">क्रोमियम अप टू डेट है</translation> <translation id="3032787606318309379">क्रोमियम में जोड़ रहा है...</translation> <translation id="3046695367536568084">ऐप्स का उपयोग करने के लिए आपको क्रोमियम में प्रवेश किए हुए रहना होगा. इससे क्रोमियम सभी डिवाइस पर मौजूद आपके ऐप्स, बुकमार्क, इतिहास, पासवर्ड और अन्य सेटिंग समन्वयित कर सकेगा.</translation> +<translation id="3052899382720782935">{0,plural, =1{क्रोमियम एक मिनट में फिर से लॉन्च होगा}one{क्रोमियम # मिनटों में फिर से लॉन्च होगा}other{क्रोमियम # मिनटों में फिर से लॉन्च होगा}}</translation> <translation id="3068515742935458733">Google को क्रैश रिपोर्ट और <ph name="UMA_LINK" /> भेजकर क्रोमियम को बेहतर बनाने में सहायता करें</translation> <translation id="3103660991484857065">इंस्टॉलर संगह को असंकुचित करने में विफल हुआ. कृपया क्रोमियम पुन: डाउनलोड करें.</translation> <translation id="3130323860337406239">Chromium आपके माइक्रोफ़ोन का उपयोग कर रहा है.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">क्रोमियम अपडेट हो रहा है...</translation> <translation id="358997566136285270">क्रोमियम लोगो</translation> <translation id="3713809861844741608">नए क्रोमियम &टैब में लिंक खोलें</translation> +<translation id="3728336900324680424">क्रोमियम पता बार में सुझाव देने के लिए आपका 'डिस्क' एक्सेस करेगा</translation> <translation id="3762167353400286894">क्रोमियम OS इस भाषा में प्रदर्शित किया जा रहा है</translation> <translation id="378917192836375108">Google Chrome आपको वेब पर फ़ोन नंबर क्लिक करने और उसे Skype से कॉल करने की सुविधा देता है!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - क्रोमियम</translation> <translation id="3852700440713538496">क्रोमियम को अपने टास्कबार में पिन करें</translation> <translation id="3889543394854987837">क्रोमियम को खोलने और ब्राउज़ करना प्रारंभ करने के लिए अपना नाम क्लिक करें.</translation> <translation id="3898493977366060150">Google स्मार्ट के ज़रिए वेब ब्राउज़ करें</translation> +<translation id="3965668104013180445">{0,plural, =1{क्रोमियम OS एक घंटे में रीस्टार्ट होगा}one{क्रोमियम OS # घंटों में रीस्टार्ट होगा}other{क्रोमियम OS # घंटों में रीस्टार्ट होगा}}</translation> <translation id="4036079820698952681"><ph name="BEGIN_LINK" />अभी वाली सेटिंग<ph name="END_LINK" /> की रिपोर्ट करके क्रोमियम को बेहतर बनाने में सहायता करें</translation> <translation id="4050175100176540509">महत्वपूर्ण सुरक्षा सुधार और नई सुविधाएं नवीनतम वर्शन में उपलब्ध हैं.</translation> <translation id="407254336480250557"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />क्रोमियम<ph name="END_BOLD" /> चुनें</translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">क्रोमियम पृष्ठभूमि मोड में है.</translation> <translation id="4987820182225656817">अतिथि कुछ भी छोड़े बिना क्रोमियम का उपयोग कर सकते हैं.</translation> <translation id="4994636714258228724">स्वयं को क्रोमियम में जोड़ें</translation> +<translation id="5021854341188256296">{0,plural, =0{क्रोमियम OS का एक अपडेट उपलब्ध है}=1{क्रोमियम OS का एक अपडेट उपलब्ध है}one{क्रोमियम OS का एक अपडेट # दिनों से उपलब्ध है}other{क्रोमियम OS का एक अपडेट # दिनों से उपलब्ध है}}</translation> <translation id="5032989939245619637">क्रोमियम में विवरण सहेजें</translation> <translation id="5045248521775609809">क्रोमियम को हर जगह ले जाएं</translation> <translation id="5116586539350239523">क्रोमियम आपके व्यक्तिगत विवरण को सुरक्षित रूप से संग्रहित करेगा, इसलिए आपको इन्हें पुनः लिखने की आवश्यकता नहीं है.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">क्रोमियम OS यह पेज नहीं खोल सकता.</translation> <translation id="5480860683791598150">इस साइट से आपका स्थान शेयर करने के लिए क्रोमियम को आपके स्थान का एक्सेस चाहिए</translation> <translation id="549669000822060376">कृपया क्रोमियम द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation> +<translation id="5514308096618405748">Chrome OS को Linux (बीटा) की तरह ही ज़्यादा <ph name="BEGIN_LINK_CROS_OSS" />ओपन सोर्स सॉफ़्टवेयर<ph name="END_LINK_CROS_OSS" /> के ज़रिए कारगर बनाया गया है.</translation> +<translation id="5529843986978123325">{0,plural, =1{क्रोमियम OS एक मिनट में रीस्टार्ट होगा}one{क्रोमियम OS # मिनटों में रीस्टार्ट होगा}other{क्रोमियम OS # मिनटों में रीस्टार्ट होगा}}</translation> <translation id="5631814766731275228">क्रोमियम पर नाम और तस्वीर</translation> <translation id="5634636535844844681">क्रोमियम के लिए Windows 7 या उसके बाद के वर्शन की आवश्यकता होती है.</translation> <translation id="5680901439334282664">क्रोमियम में प्रवेश करें</translation> <translation id="5698481217667032250">क्रोमियम इस भाषा में दिखाएं</translation> +<translation id="5712253116097046984">आपके एडमिन का कहना है कि यह अपडेट लागू करने के लिए आप क्रोमियम OS को रीस्टार्ट करें</translation> <translation id="5726838626470692954">आपके प्रबंधक को आपको क्रोमियम से निकालना और वापस जोड़ना होगा.</translation> <translation id="5768914737813585044">क्रोमियम OS इस भाषा में दिखाएं</translation> <translation id="5796460469508169315">क्रोमियम लगभग तैयार है.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> को क्रोमियम में जोड़ा गया</translation> <translation id="608189560609172163">प्रवेश करने में किसी गड़बड़ी के कारण क्रोमियम आपका डेटा समन्वयित नहीं कर सका.</translation> <translation id="6096348254544841612">क्रोमियम को पसंद के मुताबिक बनाएं और नियंत्रित करें. अपडेट उपलब्ध है.</translation> +<translation id="6120345080069858279">क्रोमियम इस पासवर्ड को आपके Google खाते में सेव कर लेगा. आपके इसे याद रखने की ज़रूरत नहीं है.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> खतरनाक है, इसलिए क्रोमियम ने उसे अवरोधित कर दिया है.</translation> +<translation id="620022061217911843">आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए क्रोमियम OS को रीस्टार्ट करें</translation> <translation id="6212496753309875659">इस कंप्यूटर में पहले से क्रोमियम का अधिक नया वर्शन है. यदि सॉफ़्टवेयर कार्य नहीं कर रहा है, तो कृपया क्रोमियम अनइंस्टॉल करें और पुन: प्रयास करें.</translation> <translation id="6248213926982192922">क्रोमियम को डिफ़ॉल्ट ब्राउज़र बनाएं</translation> <translation id="6268381023930128611">क्रोमियम से प्रस्थान करें?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />अधिक जानें<ph name="END_LINK_2" /> कृपया अतिरिक्त निर्देशों के लिए <ph name="ACCOUNT_EMAIL" /> पर अपना ईमेल देखें.</translation> +<translation id="7448255348454382571">क्रोमियम OS को रीस्टार्ट करें</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - क्रोमियम डेवपलर</translation> <translation id="7451052299415159299">क्रोमियम को इस साइट के लिए आपका कैमरा एक्सेस करने की अनुमति चाहिए</translation> +<translation id="7471302858145901434">{0,plural, =1{एक दिन के अंदर क्रोमियम OS को रीस्टार्ट करें}one{# दिनों के अंदर क्रोमियम OS को रीस्टार्ट करें}other{# दिनों के अंदर क्रोमियम OS को रीस्टार्ट करें}}</translation> <translation id="7483335560992089831">वर्तमान में चल रहे समान क्रोमियम वर्शन को इंस्टॉल नहीं कर सकते. कृपया क्रोमियम बंद करें और पुन: प्रयास करें.</translation> <translation id="7549178288319965365">क्रोमियम OS के बारे में</translation> <translation id="7577193603922410712">क्रोमियम के लिए एक विशेष सुरक्षा अपडेट अभी-अभी लागू किया गया था; उसके प्रभावी होने के लिए आपको अभी पुन: प्रारंभ करना चाहिए (हम आपके टैब पुनर्स्थापित कर देंगे).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">यह फ़ाइल खतरनाक हो सकती है, इसलिए क्रोमियम ने इसे अवरुद्ध कर दिया है.</translation> <translation id="8330519371938183845">क्रोमियम को अपने सभी डिवाइस पर सिंक करने और मनमुताबिक बनाने के लिए साइन इन करें</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> पहले क्रोमियम का उपयोग कर रहा था</translation> +<translation id="8375950122744241554">क्रोमियम 70 शुरू होने के साथ ही निगरानी में रखे गए उपयोगकर्ता की प्रोफ़ाइल अब से उपलब्ध नहीं होंगी.</translation> +<translation id="8379713241968949941">{0,plural, =1{क्रोमियम एक घंटे के अंदर फिर से लॉन्च होगा}one{क्रोमियम # घंटों के अंदर फिर से लॉन्च होगा}other{क्रोमियम # घंटों के अंदर फिर से लॉन्च होगा}}</translation> <translation id="8453117565092476964">इंस्टॉलर संग्रह खराब या अमान्य है. कृपया क्रोमियम फिर से डाउनलोड करें.</translation> <translation id="8493179195440786826">क्रोमियम पुराना हो गया है</translation> <translation id="85843667276690461">क्रोमियम उपयोग करने के साथ सहायता प्राप्त करें</translation> <translation id="8586442755830160949">कॉपीराइट <ph name="YEAR" /> The Chromium Authors. सर्वाधिकार सुरक्षित.</translation> +<translation id="8599548569518771270">{0,plural, =0{अब क्रोमियम OS रीस्टार्ट होगा}=1{क्रोमियम OS एक सेकंड में रीस्टार्ट होगा}one{क्रोमियम OS # सेकंड में रीस्टार्ट होगा}other{क्रोमियम OS # सेकंड में रीस्टार्ट होगा}}</translation> <translation id="8619360774459241877">क्रोमियम लॉन्च हो रहा है...</translation> <translation id="8621669128220841554">अनिर्दिष्ट कारणों से इंस्टॉलेशन विफल हुआ. कृपया क्रोमियम पुन: डाउनलोड करें.</translation> <translation id="8628626585870903697">क्रोमियम में PDF व्यूअर शामिल नहीं है, जिसकी ज़रूरत प्रिंट करने से पहले दस्तावेज़ की झलक देखने के लिए पड़ती है.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb index dd2dd1e..d1634ff0 100644 --- a/chrome/app/resources/chromium_strings_hr.xtb +++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Instalirajte Chromium na telefon. Poslat ćemo vam SMS na telefonski broj za oporavak računa.</translation> <translation id="1174473354587728743">Dijelite računalo? Sada možete prilagoditi Chromium baš kako želite.</translation> <translation id="1185134272377778587">O pregledniku Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium će se sada ponovo pokrenuti}=1{Chromium će se ponovo pokrenuti za 1 sekundu}one{Chromium će se ponovo pokrenuti za # sekundu}few{Chromium će se ponovo pokrenuti za # sekunde}other{Chromium će se ponovo pokrenuti za # sekundi}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Ponovo pokrenite Chromium u roku od jednog dana}one{Ponovo pokrenite Chromium u roku od # dana}few{Ponovo pokrenite Chromium u roku od # dana}other{Ponovo pokrenite Chromium u roku od # dana}}</translation> <translation id="1298199220304005244">Pomoć za upotrebu OS-a Chromium</translation> <translation id="1396446129537741364">Chromium pokušava prikazati zaporke.</translation> <translation id="1414495520565016063">Prijavljeni ste na Chromium!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Ponovo instaliraj Chromium</translation> <translation id="1869480248812203386">Možete pomoći da Chromium bude sigurniji i jednostavniji za upotrebu tako što ćete omogućiti da se Googleu automatski prijavljuju pojedinosti o mogućim sigurnosnim incidentima.</translation> <translation id="1881322772814446296">Prijavljujete se upravljanim računom i dajete administratoru kontrolu nad svojim profilom u sustavu Chromium. Vaši podaci u sustavu Chromium, primjerice, aplikacije, oznake, povijest, zaporke i ostale postavke, trajno će se povezati s korisnikom <ph name="USER_NAME" />. Moći ćete izbrisati te podatke putem Nadzorne ploče Google računa, ali ih nećete moći povezati s nekim drugim računom. Ako želite, možete izraditi novi profil kako biste zadržali postojeće podatke u sustavu Chromium zasebno. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Dostupno je ažuriranje Chromiuma}=1{Dostupno je ažuriranje Chromiuma}one{Ažuriranje Chromiuma dostupno je # dan}few{Ažuriranje Chromiuma dostupno je # dana}other{Ažuriranje Chromiuma dostupno je # dana}}</translation> <translation id="1929939181775079593">Chromium ne reagira. Ponovo pokrenuti sada?</translation> <translation id="1966382378801805537">Chromium ne može utvrditi niti postaviti zadani preglednik</translation> <translation id="2008474315282236005">Time će se izbrisati jedna stavka s uređaja. Da biste kasnije dohvatili svoje podatke, prijavite se na Chromium kao <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium je ažuran</translation> <translation id="3032787606318309379">Dodavanje u preglednik Chromium...</translation> <translation id="3046695367536568084">Morate se prijaviti na Chromium da biste upotrebljavali aplikacije. To omogućuje Chromiumu sinkronizaciju vaših aplikacija, oznaka, povijesti, zaporki i ostalih postavki na različitim uređajima.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium će se ponovo pokrenuti za 1 minutu}one{Chromium će se ponovo pokrenuti za # minutu}few{Chromium će se ponovo pokrenuti za # minute}other{Chromium će se ponovo pokrenuti za # minuta}}</translation> <translation id="3068515742935458733">Pomognite nam poboljšati Chromium šaljući izvješća o rušenju programa i <ph name="UMA_LINK" /> Googleu</translation> <translation id="3103660991484857065">Program za instalaciju nije dekomprimirao arhivu. Ponovo preuzmite Chromium.</translation> <translation id="3130323860337406239">Chromium upotrebljava vaš mikrofon.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Ažuriranje Chromiuma...</translation> <translation id="358997566136285270">Logotip Chromiuma</translation> <translation id="3713809861844741608">Otvori vezu na novoj &kartici Chromiuma</translation> +<translation id="3728336900324680424">Chromium će pristupati vašem Disku radi prikazivanja prijedloga u adresnoj traci</translation> <translation id="3762167353400286894">OS Chromium prikazuje se na tom jeziku</translation> <translation id="378917192836375108">Chromium omogućuje da kliknete telefonski broj na webu i nazovete ga koristeći se Skypeom!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Prikvačite Chromium na programsku traku</translation> <translation id="3889543394854987837">Kliknite svoje ime da biste otvorili Chromium i počeli s pregledavanjem.</translation> <translation id="3898493977366060150">Pregledavanje weba uz pametne Googleove značajke</translation> +<translation id="3965668104013180445">{0,plural, =1{OS Chromium ponovo će se pokrenuti za sat vremena}one{OS Chromium ponovo će se pokrenuti za # sat}few{OS Chromium ponovo će se pokrenuti za # sata}other{OS Chromium ponovo će se pokrenuti za # sati}}</translation> <translation id="4036079820698952681">Pomognite poboljšati Chromium tako što ćete prijaviti <ph name="BEGIN_LINK" />trenutačne postavke<ph name="END_LINK" /></translation> <translation id="4050175100176540509">Najnovija verzija sadrži važna sigurnosna poboljšanja i nove značajke.</translation> <translation id="407254336480250557">Odaberite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium radi u pozadini.</translation> <translation id="4987820182225656817">Gosti mogu upotrebljavati Chromium bez ostavljanja tragova o upotrebi.</translation> <translation id="4994636714258228724">Dodajte sebe kao korisnika Chromiuma</translation> +<translation id="5021854341188256296">{0,plural, =0{Dostupno je ažuriranje OS-a Chromium}=1{Dostupno je ažuriranje OS-a Chromium}one{Ažuriranje OS-a Chromium dostupno je # dan}few{Ažuriranje OS-a Chromium dostupno je # dana}other{Ažuriranje OS-a Chromium dostupno je # dana}}</translation> <translation id="5032989939245619637">Spremi pojedinosti u sustavu Chromium</translation> <translation id="5045248521775609809">Ponesite Chromium svugdje</translation> <translation id="5116586539350239523">Chromium će pohraniti vaše osobne podatke na siguran način tako da ih ne morate ponovo upisivati.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">OS Chromium ne može otvoriti ovu stranicu.</translation> <translation id="5480860683791598150">Chromium treba dopuštenje za pristup vašoj lokaciji da bi je podijelio s ovom web-lokacijom</translation> <translation id="549669000822060376">Pričekajte da Chromium instalira najnovija ažuriranja sustava.</translation> +<translation id="5514308096618405748">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog izvornog koda<ph name="END_LINK_CROS_OSS" />, isto kao i Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{OS Chromium ponovo će se pokrenuti za 1 minutu}one{OS Chromium ponovo će se pokrenuti za # minutu}few{OS Chromium ponovo će se pokrenuti za # minute}other{OS Chromium ponovo će se pokrenuti za # minuta}}</translation> <translation id="5631814766731275228">Ime i slika Chromium profila</translation> <translation id="5634636535844844681">Chromium zahtijeva Windows 7 ili noviju verziju.</translation> <translation id="5680901439334282664">prijavite se na Chromium</translation> <translation id="5698481217667032250">Prikaži Chromium na tom jeziku</translation> +<translation id="5712253116097046984">Vaš administrator traži da ponovo pokrenete OS Chromium radi primjene tog ažuriranja</translation> <translation id="5726838626470692954">Upravitelj vas mora ukloniti i vratiti u Chromium.</translation> <translation id="5768914737813585044">Prikaži OS Chromium na tom jeziku</translation> <translation id="5796460469508169315">Chromium će uskoro biti spreman.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923">Proširenje <ph name="EXTENSION_NAME" /> dodano je u Chromium</translation> <translation id="608189560609172163">Chromium nije mogao sinkronizirati vaše podatke zbog pogreške prilikom prijave.</translation> <translation id="6096348254544841612">Prilagodite i kontrolirajte Chromium. Dostupno je ažuriranje.</translation> +<translation id="6120345080069858279">Chromium će spremiti tu zaporku na vaš Google račun. Ne morate je pamtiti.</translation> <translation id="6129621093834146363">Datoteka <ph name="FILE_NAME" /> opasna je, pa ju je Chromium blokirao.</translation> +<translation id="620022061217911843">Vaš administrator zahtijeva da ponovo pokrenete OS Chromium radi primjene ažuriranja</translation> <translation id="6212496753309875659">Ovo računalo već ima noviju verziju Chromiuma. Ako softver ne funkcionira, deinstalirajte Chromium i pokušajte ponovo.</translation> <translation id="6248213926982192922">Neka Chromium bude zadani preglednik</translation> <translation id="6268381023930128611">Želite li se odjaviti iz Chromiuma?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />Saznajte više<ph name="END_LINK_2" /> Daljnje upute poslali smo vam na e-adresu <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Ponovo pokrenite OS Chromium</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Dev</translation> <translation id="7451052299415159299">Chromium treba dopuštenje za pristup kameri za ovu web-lokaciju</translation> +<translation id="7471302858145901434">{0,plural, =1{Ponovo pokrenite OS Chromium u roku od jednog dana}one{Ponovo pokrenite OS Chromium u roku od # dana}few{Ponovo pokrenite OS Chromium u roku od # dana}other{Ponovo pokrenite OS Chromium u roku od # dana}}</translation> <translation id="7483335560992089831">Ne možete instalirati istu verziju Chromiuma koja se trenutačno izvršava. Zatvorite Chromium i pokušajte ponovo.</translation> <translation id="7549178288319965365">O OS-u Chromium</translation> <translation id="7577193603922410712">Upravo je primijenjeno posebno sigurnosno ažuriranje za Chromium i trebate ponovo pokrenuti sustav kako bi promjena stupila na snagu (vratit ćemo vaše kartice).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">Datoteka je možda opasna i Chromium ju je blokirao.</translation> <translation id="8330519371938183845">Prijavite se da biste sinkronizirali i prilagodili Chromium na svim svojim uređajima</translation> <translation id="8340674089072921962">E-adresa <ph name="USER_EMAIL_ADDRESS" /> prethodno je upotrebljavala Chromium</translation> +<translation id="8375950122744241554">Profili nadziranih korisnika više neće biti dostupni od Chromiuma 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium će se ponovo pokrenuti za sat vremena}one{Chromium će se ponovo pokrenuti za # sat}few{Chromium će se ponovo pokrenuti za # sata}other{Chromium će se ponovo pokrenuti za # sati}}</translation> <translation id="8453117565092476964">Arhiva programa za instalaciju oštećena je ili nevažeća. Ponovo preuzmite Chromium.</translation> <translation id="8493179195440786826">Chromium je zastario</translation> <translation id="85843667276690461">Pomoć za upotrebu Chromiuma</translation> <translation id="8586442755830160949">Autorska prava <ph name="YEAR" />. Autori Chromiuma. Sva prava pridržana.</translation> +<translation id="8599548569518771270">{0,plural, =0{OS Chromium sada će se ponovo pokrenuti}=1{OS Chromium ponovo će se pokrenuti za 1 sekundu}one{OS Chromium ponovo će se pokrenuti za # sekundu}few{OS Chromium ponovo će se pokrenuti za # sekunde}other{OS Chromium ponovo će se pokrenuti za # sekundi}}</translation> <translation id="8619360774459241877">Pokretanje Chromiuma...</translation> <translation id="8621669128220841554">Instalacija nije uspjela zbog nepoznate pogreške. Ponovo preuzmite Chromium.</translation> <translation id="8628626585870903697">Chromium ne uključuje pregledač PDF-a koji je potreban da bi pregled ispisa funkcionirao.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb index 739a912..1bce5b37 100644 --- a/chrome/app/resources/chromium_strings_iw.xtb +++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">התקן את Chromium בטלפון שלך, ונשלח הודעת SMS למספר שמוגדר לשחזור החשבון.</translation> <translation id="1174473354587728743">משתף את המחשב? עכשיו תוכל להגדיר את Chromium בדיוק כמו שאתה אוהב.</translation> <translation id="1185134272377778587">על Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium יופעל מחדש עכשיו}=1{Chromium יופעל מחדש בעוד שנייה אחת}two{Chromium יופעל מחדש בעוד 2 שניות}many{Chromium יופעל מחדש בעוד # שניות}other{Chromium יופעל מחדש בעוד # שניות}}</translation> +<translation id="1267419686153937460">{0,plural, =1{צריך להפעיל מחדש את Chromium תוך יום אחד}two{צריך להפעיל מחדש את Chromium תוך יומיים}many{צריך להפעיל מחדש את Chromium תוך # ימים}other{צריך להפעיל מחדש את Chromium תוך # ימים}}</translation> <translation id="1298199220304005244">עזרה באמצעות מערכת ההפעלה של Chromium</translation> <translation id="1396446129537741364">Chromium מנסה להציג סיסמאות.</translation> <translation id="1414495520565016063">נכנסת ל-Chromium!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">התקן מחדש את Chromium</translation> <translation id="1869480248812203386">אתה יכול לעזור לשפר את הבטיחות של Chromium ולהקל את השימוש בו על ידי דיווח ל-Google על פרטים של בעיות אבטחה אפשריות.</translation> <translation id="1881322772814446296">אתה נכנס עם חשבון מנוהל ונותן למנהל המערכת שלו שליטה על הפרופיל שלך ב-Chromium. הנתונים שלך ב-Chromium, כגון יישומים, סימניות, היסטוריה, סיסמאות והגדרות אחרות ייקשרו באופן קבוע ל-<ph name="USER_NAME" />. תוכל למחוק את הנתונים האלה באמצעות לוח הבקרה של חשבונות Google, אבל לא תוכל לשייך את הנתונים האלה לחשבון אחר. לחלופין, תוכל ליצור פרופיל חדש כדי לשמור את הנתונים הקיימים שלך ב-Chromium בנפרד.<ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{יש עדכון זמין של Chromium}=1{יש עדכון זמין של Chromium}two{עדכון של Chromium זמין כבר יומיים}many{עדכון של Chromium זמין כבר # ימים}other{עדכון של Chromium זמין כבר # ימים}}</translation> <translation id="1929939181775079593">Chromium אינו מגיב. להפעיל מחדש עכשיו?</translation> <translation id="1966382378801805537">ב-Chromium לא ניתן לקבוע או להגדיר את דפדפן ברירת המחדל</translation> <translation id="2008474315282236005">הפעולה הזו תמחק פריט אחד מהמכשיר. כדי לשחזר את הנתונים מאוחר יותר, היכנס אל Chromium עם <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium מעודכן</translation> <translation id="3032787606318309379">הוספה ל-Chromium</translation> <translation id="3046695367536568084">עליך להיות מחובר ל-Chromium כדי להשתמש ביישומים. כך Chromium יכול לסנכרן את היישומים, הסימניות, ההיסטוריה, הסיסמאות והגדרות נוספות בין מכשירים שונים.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium יופעל מחדש בעוד דקה}two{Chromium יופעל מחדש בעוד 2 דקות}many{Chromium יופעל מחדש בעוד # דקות}other{Chromium יופעל מחדש בעוד # דקות}}</translation> <translation id="3068515742935458733">עזור לשפר את Chromium על ידי שליחת דוחות קריסה ו-<ph name="UMA_LINK" /> אל Google</translation> <translation id="3103660991484857065">המתקין לא הצליח לבטל את דחיסת הארכיון. הורד שוב את Chromium.</translation> <translation id="3130323860337406239">Chromium משתמש במיקרופון שלך.</translation> @@ -71,12 +75,14 @@ <translation id="3582788516608077514">מעדכן את Chromium...</translation> <translation id="358997566136285270">לוגו של Chromium</translation> <translation id="3713809861844741608">פתח את הקישור ב&כרטיסיית Chromium חדשה</translation> +<translation id="3728336900324680424">Chromium ייגש ל-Drive שלך כדי להציג הצעות בסרגל הכתובות</translation> <translation id="3762167353400286894">Chromium OS מוצג בשפה זו</translation> <translation id="378917192836375108">Chromium מאפשר לך ללחוץ על מספר טלפון באינטרנט ולהתקשר אליו באמצעות Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">הצמד את Chromium לשורת המשימות</translation> <translation id="3889543394854987837">לחץ על השם שלך כדי לפתוח את Chromium ולהתחיל לגלוש.</translation> <translation id="3898493977366060150">גלישה באינטרנט עם Google Smarts</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS תופעל מחדש בעוד שעה אחת}two{Chromium OS תופעל מחדש בעוד שעתיים}many{Chromium OS תופעל מחדש בעוד # שעות}other{Chromium OS תופעל מחדש בעוד # שעות}}</translation> <translation id="4036079820698952681">דיווח על <ph name="BEGIN_LINK" />ההגדרות הנוכחיות<ph name="END_LINK" /> יעזור לשפר את Chromium</translation> <translation id="4050175100176540509">הגרסה החדשה כוללת שיפורי בטיחות חשובים ותכונות חדשות.</translation> <translation id="407254336480250557">בחר ב-<ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -103,6 +109,7 @@ <translation id="4943838377383847465">Chromium נמצא במצב רקע.</translation> <translation id="4987820182225656817">אורחים יכולים להשתמש ב-Chromium בלי להשאיר דבר מאחור.</translation> <translation id="4994636714258228724">הוסף את עצמך ל-Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{יש עדכון זמין של Chromium OS}=1{יש עדכון זמין של Chromium OS}two{עדכון של Chromium OS זמין כבר יומיים}many{עדכון של Chromium OS זמין כבר # ימים}other{עדכון של Chromium OS זמין כבר # ימים}}</translation> <translation id="5032989939245619637">שמור פרטים ב-Chromium</translation> <translation id="5045248521775609809">לוקחים את Chromium לכל מקום</translation> <translation id="5116586539350239523">Chromium יאחסן את הפרטים האישיים שלך באופן מאובטח כדי שלא תידרש להקליד אותם שוב.</translation> @@ -115,10 +122,13 @@ <translation id="5479196819031988440">מערכת ההפעלה של Chromium אינה יכול לפתוח את הדף הזה.</translation> <translation id="5480860683791598150">Chromium זקוק לגישה למיקום שלך כדי לשתף אותו עם האתר הזה</translation> <translation id="549669000822060376">המתן בזמן ש-Chromium מתקין את עדכוני המערכת האחרונים.</translation> +<translation id="5514308096618405748">הפיתוח של Chrome OS אפשרי בזכות <ph name="BEGIN_LINK_CROS_OSS" />תוכנות קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספות, כמו Linux (בטא).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS תופעל מחדש בעוד דקה אחת}two{Chromium OS תופעל מחדש בעוד 2 דקות}many{Chromium OS תופעל מחדש בעוד # דקות}other{Chromium OS תופעל מחדש בעוד # דקות}}</translation> <translation id="5631814766731275228">שם ותמונה ב-Chromium</translation> <translation id="5634636535844844681">כדי להשתמש ב-Chromium יש צורך ב-Windows מגירסה 7 ואילך.</translation> <translation id="5680901439334282664">היכנס אל Chromium</translation> <translation id="5698481217667032250">הצג את Chromium בשפה זו</translation> +<translation id="5712253116097046984">לפי הבקשה של מנהל המערכת, צריך להפעיל מחדש את Chromium OS כדי להחיל את העדכון</translation> <translation id="5726838626470692954">המנהל שלך צריך להסיר אותך מ-Chromium ולאחר מכן להוסיף אותך חזרה.</translation> <translation id="5768914737813585044">הצג את Chromium OS בשפה זו</translation> <translation id="5796460469508169315">Chromium כמעט מוכן.</translation> @@ -135,7 +145,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> נוסף ל-Chromium</translation> <translation id="608189560609172163">Chromium לא הצליח לסנכרן את הנתונים שלך בשל שגיאת כניסה.</translation> <translation id="6096348254544841612">כדי להתאים אישית את Google Chrome ולשלוט בו טוב יותר, כדאי להוריד את העדכון החדש.</translation> +<translation id="6120345080069858279">הסיסמה הזאת תישמר על ידי Chromium בחשבון Google שלך. אין צורך לזכור אותה.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> מסוכן, ולכן Chromium חסם אותו.</translation> +<translation id="620022061217911843">לפי הדרישה של מנהל המערכת, צריך להפעיל מחדש את Chromium OS כדי להחיל עדכון</translation> <translation id="6212496753309875659">במחשב זה קיימת כבר גרסה מתקדמת יותר של Chromium. אם התוכנה אינה פועלת, הסר את ההתקנה של Chromium ונסה שוב.</translation> <translation id="6248213926982192922">הפוך את Chromium לדפדפן ברירת המחדל</translation> <translation id="6268381023930128611">האם לצאת מ-Chromium?</translation> @@ -189,8 +201,10 @@ <ph name="BEGIN_LINK_2" />למידע נוסף<ph name="END_LINK_2" /> בדוק את האימייל בחשבון <ph name="ACCOUNT_EMAIL" /> לקבלת הנחיות נוספות.</translation> +<translation id="7448255348454382571">הפעלה מחדש של Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium בגירסת פיתוח</translation> <translation id="7451052299415159299">Chromium זקוק להרשאת גישה למצלמה בשביל האתר הזה</translation> +<translation id="7471302858145901434">{0,plural, =1{צריך להפעיל מחדש את Chromium OS תוך יום אחד}two{צריך להפעיל מחדש את Chromium OS תוך יומיים}many{צריך להפעיל מחדש את Chromium OS תוך # ימים}other{צריך להפעיל מחדש את Chromium OS תוך # ימים}}</translation> <translation id="7483335560992089831">לא ניתן להתקין את אותה גרסת Chromium שפועלת כרגע. סגור את Chromium ונסה שוב.</translation> <translation id="7549178288319965365">על מערכת ההפעלה של Chromium</translation> <translation id="7577193603922410712">בוצע עדכון אבטחה מיוחד של Chromium. עליך לאתחל עכשיו כדי שהעדכון יופעל (נשחזר את הכרטיסיות שלך).</translation> @@ -220,10 +234,13 @@ <translation id="8290862415967981663">Chromium חסם את הקובץ הזה כי הוא עלול להיות מסוכן.</translation> <translation id="8330519371938183845">כניסה לחשבון תסנכרן ותתאים אישית את Chromium בכל המכשירים שברשותך</translation> <translation id="8340674089072921962">בכתובת <ph name="USER_EMAIL_ADDRESS" /> השתמשו בעבר ב-Chromium</translation> +<translation id="8375950122744241554">פרופילים של משתמשים בפיקוח יפסיקו להיות זמינים החל מ-Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium יופעל מחדש בעוד שעה אחת}two{Chromium יופעל מחדש בעוד שעתיים}many{Chromium יופעל מחדש בעוד # שעות}other{Chromium יופעל מחדש בעוד # שעות}}</translation> <translation id="8453117565092476964">הארכיון של המתקין פגום או שאינו חוקי. הורד שוב את Chromium.</translation> <translation id="8493179195440786826">Chromium אינו מעודכן</translation> <translation id="85843667276690461">עזרה באמצעות Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> The Chromium Authors. כל הזכויות שמורות.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS תופעל מחדש עכשיו}=1{Chromium OS תופעל מחדש בעוד שנייה אחת}two{Chromium OS תופעל מחדש בעוד 2 שניות}many{Chromium OS תופעל מחדש בעוד # שניות}other{Chromium OS תופעל מחדש בעוד # שניות}}</translation> <translation id="8619360774459241877">הפעלת Chromium מתבצעת...</translation> <translation id="8621669128220841554">ההתקנה נכשלה בשל שגיאה לא מזוהה. הורד שוב את Chromium.</translation> <translation id="8628626585870903697">Chromium אינו כולל מציג PDF, הנדרש להפעלת תצוגה מקדימה של הדפסה.</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb index fa7a4c5..e34b31a 100644 --- a/chrome/app/resources/chromium_strings_kn.xtb +++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ Chromium ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಖಾತೆ ಮರುಪ್ರಾಪ್ತಿ ಫೋನ್ ಸಂಖ್ಯೆಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ.</translation> <translation id="1174473354587728743">ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದೇ? ಇದೀಗ ನೀವು ಇಷ್ಟಪಡುವ ರೀತಿಯಲ್ಲಿ ನೀವು Chromium ಹೊಂದಿಸಬಹುದು.</translation> <translation id="1185134272377778587">Chromium ಕುರಿತು</translation> +<translation id="1209657686917656928">{0,plural, =0{ಇದೀಗ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಕೆಂಡ್ನಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> +<translation id="1267419686153937460">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chromium ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chromium ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chromium ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="1298199220304005244">Chromium OS ಅನ್ನು ಬಳಸುತ್ತಿರುವುದರ ಜೊತೆಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation> <translation id="1396446129537741364">Chromium ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation> <translation id="1414495520565016063">ನೀವು Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Chromium ಅನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation> <translation id="1869480248812203386">Google ಗೆ ಸಂಭವನೀಯ ಭದ್ರತೆ ಘಟನೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವಿವರಗಳನ್ನು ವರದಿ ಮಾಡುವ ಮೂಲಕ Chromium ಅನ್ನು ಸುರಕ್ಷಿತ ಮತ್ತು ಸುಲಭಗೊಳಿಸಲು ನೀವು ಸಹಾಯ ಮಾಡಬಹುದು.</translation> <translation id="1881322772814446296">ನೀವು ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯೊಂದಿಗೆ ಸೈನ್ ಇನ್ ಮಾಡುತ್ತಿರುವಿರಿ ಮತ್ತು ನಿಮ್ಮ Chromium ಪ್ರೊಫೈಲ್ ಮೂಲಕ ಅದರ ನಿರ್ವಾಹಕ ನಿಯಂತ್ರಣವನ್ನು ನೀಡುತ್ತಿರುವಿರಿ. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್ವರ್ಡ್ಗಳು, ಹಾಗೂ ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳಂತಹ ನಿಮ್ಮ Chromium ಡೇಟಾವನ್ನು <ph name="USER_NAME" /> ಅವರಿಗೆ ಶಾಶ್ವತವಾಗಿ ಬಂಧಿಸಲಾಗುತ್ತದೆ. Google ಖಾತೆಗಳ ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಮೂಲಕ ಈ ಡೇಟಾವನ್ನು ಅಳಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯ, ಆದರೆ ಬೇರೊಂದು ಖಾತೆಯೊಂದಿಗೆ ಈ ಡೇಟಾವನ್ನು ಸಂಯೋಜಿಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ನಿಮ್ಮ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ Chromium ಡೇಟಾವನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಇರಿಸಿಕೊಳ್ಳಲು ನೀವು ಐಚ್ಛಿಕವಾಗಿ ಹೊಸ ಪ್ರೊಫೈಲ್ ಅನ್ನು ರಚಿಸಬಹುದು. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Chromium ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chromium ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳಿಗಾಗಿ Chromium ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳಿಗಾಗಿ Chromium ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation> <translation id="1929939181775079593">Chromium ಸ್ಪಂದಿಸುತ್ತಿಲ್ಲ. ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸುವುದೇ?</translation> <translation id="1966382378801805537">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation> <translation id="2008474315282236005">ಈ ಸಾಧನದಿಂದ 1 ಐಟಂ ಅನ್ನು ಇದು ಅಳಿಸುತ್ತದೆ. ನಂತರ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಮರುಪಡೆಯಲು, <ph name="USER_EMAIL" /> ನಂತೆ Chromium ಗೆ ಸೈನ್ಇನ್ ಮಾಡಿ.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium ಅಪ್ ಟು ಡೇಟ್ ಆಗಿದೆ</translation> <translation id="3032787606318309379">Chromium ಗೆ ಸೇರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="3046695367536568084">ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಬಳಸಲು ನೀವು Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ. ಇದು ಸಾಧನಗಳಾದ್ಯಂತ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್ವರ್ಡ್ಗಳು, ಹಾಗೂ ಇತರ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium ಗೆ ಅವಕಾಶ ಮಾಡಿಕೊಡುತ್ತದೆ.</translation> +<translation id="3052899382720782935">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ನಿಮಿಷಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ನಿಮಿಷಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="3068515742935458733">Google ಗೆ ಕ್ರ್ಯಾಶ್ ವರದಿಗಳನ್ನು ಮತ್ತು <ph name="UMA_LINK" /> ಕಳುಹಿಸುವುದರಿಂದ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation> <translation id="3103660991484857065">ಆರ್ಕೈವ್ ಅನ್ನು ಸಂಕ್ಷೇಪ ಮಾಡದಿರಲು ಸ್ಥಾಪಕ ವಿಫಲಗೊಂಡಿದೆ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಪುನಃ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.</translation> <translation id="3130323860337406239">Chromium ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಬಳಸುತ್ತಿದೆ.</translation> @@ -71,12 +75,14 @@ <translation id="3582788516608077514">Chromium ಅನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="358997566136285270">Chromium ಲೋಗೋ</translation> <translation id="3713809861844741608">ಹೊಸ Chromium &ಟ್ಯಾಬ್ನಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಿರಿ</translation> +<translation id="3728336900324680424">ವಿಳಾಸಪಟ್ಟಿಯಲ್ಲಿ ಸಲಹೆ ನೀಡಲು, Chromium ನಿಮ್ಮ ಡ್ರೈವ್ಗೆ ಪ್ರವೇಶಿಸುತ್ತದೆ</translation> <translation id="3762167353400286894">ಈ ಭಾಷೆಯಲ್ಲಿ Chromium OS ಪ್ರದರ್ಶನಗೊಂಡಿದೆ</translation> <translation id="378917192836375108">Chromium ನೀವು ವೆಬ್ನಲ್ಲಿ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ಕ್ಲಿಕ್ ಮಾಡಲು ಅವಕಾಶ ಮಾಡುತ್ತದೆ ಮತ್ತು Skype ನೊಂದಿಗೆ ಕರೆ ಮಾಡುತ್ತದೆ!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">ನಿಮ್ಮ ಕಾರ್ಯಪಟ್ಟಿಗೆ Chromium ಅನ್ನು ಪಿನ್ ಮಾಡಿ</translation> <translation id="3889543394854987837">Chromium ತೆರೆಯಲು ಮತ್ತು ಬ್ರೌಸ್ ಮಾಡುವುದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನಿಮ್ಮ ಹೆಸರನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="3898493977366060150">Google ಸ್ಮಾರ್ಟ್ಗಳ ಮೂಲಕ ವೆಬ್ ಬ್ರೌಸ್ ಮಾಡುವಿಕೆ</translation> +<translation id="3965668104013180445">{0,plural, =1{ಒಂದು ಗಂಟೆಯಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಗಂಟೆಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಗಂಟೆಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="4036079820698952681"><ph name="BEGIN_LINK" />ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು<ph name="END_LINK" /> ವರದಿ ಮಾಡುವ ಮೂಲಕ Chromium ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಿ</translation> <translation id="4050175100176540509">ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಯಲ್ಲಿ ಪ್ರಮುಖವಾದ ಭದ್ರತಾ ಸುಧಾರಣೆಗಳು ಮತ್ತು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿದೆ.</translation> <translation id="407254336480250557"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> ಆಯ್ಕೆಮಾಡಿ</translation> @@ -103,6 +109,7 @@ <translation id="4943838377383847465">Chromium ಹಿನ್ನೆಲೆ ಮೋಡ್ನಲ್ಲಿದೆ.</translation> <translation id="4987820182225656817">ಅತಿಥಿಗಳು ಏನನ್ನೂ ಉಳಿಸದೆಯೇ Chromium ಬಳಸಬಹುದು.</translation> <translation id="4994636714258228724">ನೀವಾಗಿಯೇ Chromium ಗೆ ಸೇರಿಕೊಳ್ಳಿ</translation> +<translation id="5021854341188256296">{0,plural, =0{Chromium OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chromium OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳಿಗಾಗಿ Chromium OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳಿಗಾಗಿ Chromium OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation> <translation id="5032989939245619637">Chromium ನಲ್ಲಿ ವಿವರಣೆಗಳನ್ನು ಉಳಿಸಿ</translation> <translation id="5045248521775609809">ಎಲ್ಲೆಡೆ Chromium ಅನ್ನು ಕೊಂಡೊಯ್ಯಿರಿ</translation> <translation id="5116586539350239523">Chromium ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ವಿವರಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಿಕೊಳ್ಳುತ್ತದೆ ಇದರಿಂದಾಗಿ ನೀವು ಅವುಗಳನ್ನು ಮತ್ತೆ ಟೈಪ್ ಮಾಡಬೇಕಾಗಿಲ್ಲ.</translation> @@ -115,10 +122,13 @@ <translation id="5479196819031988440">Chromium OS ಗೆ ಈ ಪುಟ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="5480860683791598150">ಈ ಸೈಟ್ ಜೊತೆಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chromium ಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ</translation> <translation id="549669000822060376">ದಯವಿಟ್ಟು ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chromium ಸ್ಥಾಪಿಸುವಾಗ ಕಾಯಿರಿ.</translation> +<translation id="5514308096618405748">ಹೆಚ್ಚುವರಿ <ph name="BEGIN_LINK_CROS_OSS" />ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್<ph name="END_LINK_CROS_OSS" /> ನಿಂದ Chrome OS ನ ರಚನೆ ಸಾಧ್ಯವಾಯಿತು. ಹಾಗೆಯೇ Linux (ಬೀಟಾ) ನದೂ ಸಹ.</translation> +<translation id="5529843986978123325">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{ # ನಿಮಿಷಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{ # ನಿಮಿಷಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="5631814766731275228">Chromium ಹೆಸರು ಮತ್ತು ಚಿತ್ರ</translation> <translation id="5634636535844844681">Chromium ಗೆ Windows 7 ಅಥವಾ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿ ಅಗತ್ಯವಿರುತ್ತದೆ.</translation> <translation id="5680901439334282664">Chromium ಗೆ ಸೈನ್ ಇನ್ ಆಗಿ</translation> <translation id="5698481217667032250">ಈ ಭಾಷೆಯಲ್ಲಿ Chromium ಪ್ರದರ್ಶಿಸು</translation> +<translation id="5712253116097046984">ಈ ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲು, ನೀವು Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೇಳಿಕೊಳ್ಳುತ್ತಾರೆ</translation> <translation id="5726838626470692954">ನಿಮ್ಮ ಮ್ಯಾನೇಜರ್ ನಿಮ್ಮನ್ನು ತೆಗೆದುಹಾಕಿ ಮತ್ತು ಮರಳಿ Chromium ಗೆ ಸೇರಿಸಬೇಕು.</translation> <translation id="5768914737813585044">ಈ ಭಾಷೆಯಲ್ಲಿ Chromium OS ಪ್ರದರ್ಶಿಸು</translation> <translation id="5796460469508169315">Chromium ಬಹುತೇಕ ಸಿದ್ಧಗೊಂಡಿದೆ.</translation> @@ -135,7 +145,9 @@ <translation id="6072279588547424923">Chromium ಗೆ <ph name="EXTENSION_NAME" /> ಅನ್ನು ಸೇರಿಸಲಾಗಿದೆ</translation> <translation id="608189560609172163">ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="6096348254544841612">Chromium ಅನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ ಮತ್ತು ನಿಯಂತ್ರಿಸಿ. ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ.</translation> +<translation id="6120345080069858279">Chromium, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಈ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಉಳಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ನೆನಪಿಡುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿದೆ, ಹಾಗಾಗಿ Chromium ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation> +<translation id="620022061217911843">ಅಪ್ಡೇಟ್ ಒಂದನ್ನು ಅನ್ವಯಿಸಬೇಕೆಂದರೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗಾಗಿ ನೀವು Chromium OS ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ</translation> <translation id="6212496753309875659">ಈ ಕಂಪ್ಯೂಟರ್ Chromium ನ ಇತ್ತೀಚಿನ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಕಾರ್ಯನಿರ್ವಹಿಸದಿದ್ದರೆ, ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="6248213926982192922">Chromium ಅನ್ನು ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಮಾಡಿ</translation> <translation id="6268381023930128611">Chromium ನಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡುವುದೇ?</translation> @@ -185,8 +197,10 @@ <ph name="BEGIN_LINK_2" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK_2" /> ಹೆಚ್ಚಿನ ಸೂಚನೆಗಳಿಗಾಗಿ ದಯವಿಟ್ಟು <ph name="ACCOUNT_EMAIL" /> ಗೆ ಬಂದಿರುವ ಇಮೇಲ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ.</translation> +<translation id="7448255348454382571">Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium Dev</translation> <translation id="7451052299415159299">ಈ ಸೈಟ್ಗಾಗಿ ನಿಮ್ಮ ಕ್ಯಾಮರಾವನ್ನು ಪ್ರವೇಶಿಸಲು Chromium ಗೆ ಅನುಮತಿಯ ಅಗತ್ಯವಿದೆ</translation> +<translation id="7471302858145901434">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chromium OS ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="7483335560992089831">ಪ್ರಸ್ತುತ ಚಾಲನೆಯಲ್ಲಿರುವ Chromium ನ ಅದೇ ಆವೃತ್ತಿಯನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಮುಚ್ಚಿರಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7549178288319965365">Chromium OS ಕುರಿತು</translation> <translation id="7577193603922410712">Chromium ಗೆ ವಿಶೇಷ ಸುರಕ್ಷತೆಯ ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲಾಗಿದೆ; ಇದನ್ನು ಪರಿಣಾಮಕಾರಿಯನ್ನಾಗಿಸಲು ಇದೀಗ ನೀವು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು (ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ನಾವು ಮರುಸ್ಥಾಪಿಸುತ್ತೇವೆ).</translation> @@ -216,10 +230,13 @@ <translation id="8290862415967981663">ಈ ಫೈಲ್ ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹೀಗಾಗಿ Chromium ಇದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation> <translation id="8330519371938183845">ನಿಮ್ಮ ಸಾಧನಗಳಲ್ಲಿ Chromium ಅನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಮತ್ತು ವೈಯಕ್ತೀಕರಿಸಲು ಸೈನ್ ಇನ್ ಮಾಡಿ</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> ಅವರು ಮೊದಲಿನಿಂದಲೆ Chromium ಬಳಸುತ್ತಿದ್ದರು</translation> +<translation id="8375950122744241554">Chromium 70 ರಿಂದ ಆರಂಭಗೊಂಡು, ಮೇಲ್ವಿಚಾರಣಾ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ಗಳು ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿರುವುದಿಲ್ಲ.</translation> +<translation id="8379713241968949941">{0,plural, =1{ಒಂದು ಗಂಟೆಯಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಗಂಟೆಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಗಂಟೆಗಳಲ್ಲಿ Chromium ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="8453117565092476964">ಸ್ಥಾಪಕ ಆರ್ಕೈವ್ ದೋಷಪೂರಿತವಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ. ದಯವಿಟ್ಟು Chromium ಅನ್ನು ಪುನಃ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.</translation> <translation id="8493179195440786826">Chromium ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation> <translation id="85843667276690461">Chromium ಅನ್ನು ಬಳಸುತ್ತಿರುವುದರ ಜೊತೆಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation> <translation id="8586442755830160949">ಹಕ್ಕುಸ್ವಾಮ್ಯ <ph name="YEAR" /> Chromium ಲೇಖಕರು. ಎಲ್ಲಾ ಹಕ್ಕುಗಳನ್ನು ಕಾಯ್ದಿರಿಸಲಾಗಿದೆ.</translation> +<translation id="8599548569518771270">{0,plural, =0{ಇದೀಗ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಕೆಂಡ್ನಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chromium OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="8619360774459241877">Chromium ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="8621669128220841554">ಅನಿರ್ದಿಷ್ಟ ದೋಷದಿಂದಾಗಿ ಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ. ದಯವಿಟ್ಟು ಮತ್ತೊಮ್ಮೆ Chromium ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ.</translation> <translation id="8628626585870903697">ಕಾರ್ಯಾಚರಣೆ ನಡೆಸಲು ಮುದ್ರಣ ಪೂರ್ವವೀಕ್ಷಣೆಗೆ ಅಗತ್ಯವಿರುವಂತಹ PDF ವೀಕ್ಷಕರನ್ನು Chromium ಒಳಗೊಂಡಿಲ್ಲ.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb index 75ad0470..9a23f67 100644 --- a/chrome/app/resources/chromium_strings_lt.xtb +++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">Įdiekite „Chromium“ telefone. Išsiųsime SMS pranešimą paskyros atkūrimo telefono numeriu.</translation> <translation id="1174473354587728743">Bendrinate kompiuterį? Dabar galite nustatyti „Chromium“ kaip tik norite.</translation> <translation id="1185134272377778587">Apie „Chromium“</translation> +<translation id="1209657686917656928">{0,plural, =0{„Chromium“ bus paleista iš naujo dabar}=1{„Chromium“ bus paleista iš naujo po 1 sekundės}one{„Chromium“ bus paleista iš naujo po # sekundės}few{„Chromium“ bus paleista iš naujo po # sekundžių}many{„Chromium“ bus paleista iš naujo po # sekundės}other{„Chromium“ bus paleista iš naujo po # sekundžių}}</translation> +<translation id="1267419686153937460">{0,plural, =1{„Chromium“ paleidimas iš naujo po dienos}one{„Chromium“ paleidimas iš naujo po # dienos}few{„Chromium“ paleidimas iš naujo po # dienų}many{„Chromium“ paleidimas iš naujo po # dienos}other{„Chromium“ paleidimas iš naujo po # dienų}}</translation> <translation id="1298199220304005244">Gauti su „Chromium“ OS naudojimu susijusios pagalbos</translation> <translation id="1396446129537741364">„Chromium“ bando parodyti slaptažodžius.</translation> <translation id="1414495520565016063">Esate prisijungę prie „Chromium“.</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Iš naujo įdiegti „Chromium“</translation> <translation id="1869480248812203386">Galite padėti sustiprinti „Chromium“ saugą ir palengvinti jos naudojimą automatiškai „Google“ pateikdami išsamią informaciją apie galimas saugos problemas.</translation> <translation id="1881322772814446296">Prisijungiate su valdoma paskyra ir leidžiate jos administratoriui valdyti jūsų „Chromium“ profilį. „Chromium“ duomenys, pvz., programos, žymės, istorija, slaptažodžiai ir kiti nustatymai, bus visam laikui susieti su <ph name="USER_NAME" />. Galėsite ištrinti šiuos duomenis naudodami „Google“ paskyrų informacijos suvestinę, bet negalėsite susieti šių duomenų su kita paskyra. Galite pasirinktinai sukurti naują profilį, kad esami „Chromium“ duomenys būtų saugomi atskirai. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Pasiekiamas „Chromium“ naujinys}=1{Pasiekiamas „Chromium“ naujinys}one{„Chromium“ naujinys pasiekiamas # dieną}few{„Chromium“ naujinys pasiekiamas # dienas}many{„Chromium“ naujinys pasiekiamas # dienos}other{„Chromium“ naujinys pasiekiamas # dienų}}</translation> <translation id="1929939181775079593">„Chromium“ neatsako. Paleisti iš naujo dabar?</translation> <translation id="1966382378801805537">„Chromium“ nepavyko aptikti arba nustatyti numatytosios naršyklės</translation> <translation id="2008474315282236005">Atlikus šį veiksmą iš šio įrenginio bus ištrintas 1 elementas. Jei vėliau norėsite gauti duomenis, prisijunkite prie „Chromium“ kaip <ph name="USER_EMAIL" />.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">„Chromium“ naujausios versijos</translation> <translation id="3032787606318309379">Pridedama prie „Chromium“...</translation> <translation id="3046695367536568084">Jei norite naudoti programas, turite būti prisijungę prie „Chromium“. Tada „Chromium“ galės sinchronizuoti jūsų programas, žymes, istoriją, slaptažodžius ir kitus nustatymus įrenginiuose.</translation> +<translation id="3052899382720782935">{0,plural, =1{„Chromium“ bus paleista iš naujo po 1 minutės}one{„Chromium“ bus paleista iš naujo po # minutės}few{„Chromium“ bus paleista iš naujo po # minučių}many{„Chromium“ bus paleista iš naujo po # minutės}other{„Chromium“ bus paleista iš naujo po # minučių}}</translation> <translation id="3068515742935458733">Padėkite tobulinti „Chromium“ siųsdami „Google“ strigčių ataskaitas ir <ph name="UMA_LINK" /></translation> <translation id="3103660991484857065">Diegimo programai nepavyko išpakuoti archyvo. Atsisiųskite „Chromium“ dar kartą.</translation> <translation id="3130323860337406239">„Chromium“ naudoja jūsų mikrofoną.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Atnaujinama „Chromium“...</translation> <translation id="358997566136285270">„Chromium“ logotipas</translation> <translation id="3713809861844741608">Atidaryti nuorodą naujame „Chromium“ &skirtuke</translation> +<translation id="3728336900324680424">„Chromium“ turės prieigą prie Disko, kad galėtų teikti pasiūlymus adreso juostoje</translation> <translation id="3762167353400286894">„Chromium“ OS pateikiama šia kalba</translation> <translation id="378917192836375108">Naudodami „Chromium“ galite spustelėti telefono numerį žiniatinklyje ir skambinti juo naudodami „Skype“!</translation> <translation id="3848258323044014972">„<ph name="PAGE_TITLE" />“ – „Chromium“</translation> <translation id="3852700440713538496">„Chromium“ prisegimas prie užduočių juostos</translation> <translation id="3889543394854987837">Spustelėkite savo vardą, kad atidarytumėte „Chromium“ ir pradėtumėte naršyti.</translation> <translation id="3898493977366060150">Žiniatinklio naršymas naudojant „Google“ išmaniąsias funkcijas</translation> +<translation id="3965668104013180445">{0,plural, =1{„Chromium“ OS bus paleista iš naujo po valandos}one{„Chromium“ OS bus paleista iš naujo # valandos}few{„Chromium“ OS bus paleista iš naujo # valandų}many{„Chromium“ OS bus paleista iš naujo # valandos}other{„Chromium“ OS bus paleista iš naujo # valandų}}</translation> <translation id="4036079820698952681">Padėkite tobulinti „Chromium“ pateikę ataskaitą apie <ph name="BEGIN_LINK" />dabartinius nustatymus<ph name="END_LINK" />.</translation> <translation id="4050175100176540509">Naujausios versijos programoje įdiegti svarbūs saugos patobulinimai ir pasiekiamos naujos funkcijos.</translation> <translation id="407254336480250557">Pasirinkite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">„Chromium“ veikia fono režimu.</translation> <translation id="4987820182225656817">Svečiai gali naudoti „Chromium“ nepalikdami jokių duomenų.</translation> <translation id="4994636714258228724">Pridėkite save prie „Chromium“</translation> +<translation id="5021854341188256296">{0,plural, =0{Pasiekiamas „Chromium“ OS naujinys}=1{Pasiekiamas „Chromium“ OS naujinys}one{„Chromium“ OS naujinys pasiekiamas # dieną}few{„Chromium“ OS naujinys pasiekiamas # dienas}many{„Chromium“ OS naujinys pasiekiamas # dienos}other{„Chromium“ OS naujinys pasiekiamas # dienų}}</translation> <translation id="5032989939245619637">Išsaugoti išsamią informaciją „Chromium“</translation> <translation id="5045248521775609809">Pasiimkite „Chromium“ bet kur</translation> <translation id="5116586539350239523">„Chromium“ patikimai saugos jūsų išsamią informaciją, kad nebereikėtų jos vėl įvesti.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">„Chromium“ OS negali atidaryti šio puslapio.</translation> <translation id="5480860683791598150">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų vietovės informaciją ir bendrinti ją su šia svetaine</translation> <translation id="549669000822060376">Palaukite, kol „Chromium“ įdiegs naujausius sistemos naujinius.</translation> +<translation id="5514308096618405748">„Chrome“ OS (kaip ir „Linux“ (beta vers.)) pasiekiama naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="5529843986978123325">{0,plural, =1{„Chromium“ OS bus paleista iš naujo po 1 minutės}one{„Chromium“ OS bus paleista iš naujo po # minutės}few{„Chromium“ OS bus paleista iš naujo po # minučių}many{„Chromium“ OS bus paleista iš naujo po # minutės}other{„Chromium“ OS bus paleista iš naujo po # minučių}}</translation> <translation id="5631814766731275228">„Chromium“ pavadinimas ir paveikslėlis</translation> <translation id="5634636535844844681">Kad būtų galima naudoti „Chromium“, reikalinga 7 ar naujesnės versijos „Windows“.</translation> <translation id="5680901439334282664">prisijunkite prie „Chromium“</translation> <translation id="5698481217667032250">Pateikti „Chromium“ šia kalba</translation> +<translation id="5712253116097046984">Administratorius prašo paleisti „Chromium“ OS iš naujo, kad galėtų pritaikyti šį naujinį</translation> <translation id="5726838626470692954">Valdytojas turi jus pašalinti ir vėl pridėti prie „Chromium“.</translation> <translation id="5768914737813585044">Pateikti „Chromium“ OS šia kalba</translation> <translation id="5796460469508169315">„Chromium“ beveik paruošta.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923">„<ph name="EXTENSION_NAME" />“ pridėtas prie „Chromium“</translation> <translation id="608189560609172163">„Chromium“ negali sinchronizuoti duomenų, nes prisijungiant įvyko klaida.</translation> <translation id="6096348254544841612">Tinkinkite ir valdykite „Chromium“. Pasiekiamas naujinys.</translation> +<translation id="6120345080069858279">„Chromium“ išsaugos šį slaptažodį „Google“ paskyroje. Jums nereikia jo prisiminti.</translation> <translation id="6129621093834146363">Failas „<ph name="FILE_NAME" />“ pavojingas, todėl „Chromium“ jį užblokavo.</translation> +<translation id="620022061217911843">Administratorius reikalauja paleisti „Chromium“ OS iš naujo, kad galėtų pritaikyti naujinį</translation> <translation id="6212496753309875659">Šiame kompiuteryje jau yra naujesnės versijos „Chromium“. Jei programinė įranga neveikia, pašalinkite „Chromium“ ir bandykite dar kartą.</translation> <translation id="6248213926982192922">Padaryti „Chromium“ numatytąja naršykle</translation> <translation id="6268381023930128611">Atsijungti nuo „Chromium“?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />Sužinokite daugiau<ph name="END_LINK_2" /> Patikrinkite el. pašto adresu <ph name="ACCOUNT_EMAIL" /> išsiųstą laišką, kuriame rasite daugiau instrukcijų.</translation> +<translation id="7448255348454382571">„Chromium“ OS paleidimas iš naujo</translation> <translation id="7449453770951226939">„<ph name="PAGE_TITLE" />“ – „Chromium Dev“</translation> <translation id="7451052299415159299">„Chromium“ reikia leidimo, kad galėtų naudoti fotoaparatą šioje svetainėje</translation> +<translation id="7471302858145901434">{0,plural, =1{„Chromium“ OS paleidimas iš naujo po dienos}one{„Chromium“ OS paleidimas iš naujo po # dienos}few{„Chromium“ OS paleidimas iš naujo po # dienų}many{„Chromium“ OS paleidimas iš naujo po # dienos}other{„Chromium“ OS paleidimas iš naujo po # dienų}}</translation> <translation id="7483335560992089831">Negalima įdiegti tos pačios „Chromium“ versijos, kuri šiuo metu paleista. Uždarykite „Chromium“ ir bandykite dar kartą.</translation> <translation id="7549178288319965365">Apie „Chromium“ OS</translation> <translation id="7577193603922410712">Ką tik pritaikytas specialus „Chromium“ skirtas saugos naujinys. Kad jis pradėtų veikti, turite dabar iš naujo paleisti „Chronium“ (atkursime visus skirtukus).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">Šis failas gali būti pavojingas, todėl „Chromium“ jį užblokavo.</translation> <translation id="8330519371938183845">Prisijunkite, kad galėtumėte sinchronizuoti ir suasmeninti „Chromium“ skirtinguose įrenginiuose</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> anksčiau naudojo „Chromium“</translation> +<translation id="8375950122744241554">Prižiūrimų naudotojų profiliai nebebus pasiekiami nuo 70 vers. „Chromium“.</translation> +<translation id="8379713241968949941">{0,plural, =1{„Chromium“ bus paleista iš naujo po valandos}one{„Chromium“ bus paleista iš naujo po # valandos}few{„Chromium“ bus paleista iš naujo po # valandų}many{„Chromium“ bus paleista iš naujo po # valandos}other{„Chromium“ bus paleista iš naujo po # valandų}}</translation> <translation id="8453117565092476964">Diegimo programos archyvas sugadintas arba negalioja. Atsisiųskite „Chromium“ dar kartą.</translation> <translation id="8493179195440786826">„Chromium“ versija yra pasenusi</translation> <translation id="85843667276690461">Gauti su „Chromium“ naudojimu susijusios pagalbos</translation> <translation id="8586442755830160949">Autorių teisės priklauso „Chromium“ autoriams, <ph name="YEAR" /> m. Visos teisės saugomos.</translation> +<translation id="8599548569518771270">{0,plural, =0{„Chromium“ OS bus paleista iš naujo dabar}=1{„Chromium“ OS bus paleista iš naujo po 1 sekundės}one{„Chromium“ OS bus paleista iš naujo po # sekundės}few{„Chromium“ OS bus paleista iš naujo po # sekundžių}many{„Chromium“ OS bus paleista iš naujo po # sekundės}other{„Chromium“ OS bus paleista iš naujo po # sekundžių}}</translation> <translation id="8619360774459241877">Pristatoma „Chromium“...</translation> <translation id="8621669128220841554">Nepavyko įdiegti dėl nenurodytos klaidos. Atsisiųskite „Chromium“ dar kartą.</translation> <translation id="8628626585870903697">„Chromium“ neįtraukta PDF žiūryklė, reikalinga, kad veiktų „Spaudinio peržiūra“.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb index 7fcf7dc..05882c4 100644 --- a/chrome/app/resources/chromium_strings_lv.xtb +++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Instalējiet pārlūku Chromium savā tālrunī. Mēs nosūtīsim īsziņu uz jūsu konta atkopšanas tālruņa numuru.</translation> <translation id="1174473354587728743">Vai datoru izmanto vairāki lietotāji? Tagad varat iestatīt pārlūku Chromium atbilstoši savām vajadzībām.</translation> <translation id="1185134272377778587">Par Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Pārlūks Chromium tiks restartēts tūlīt}=1{Pārlūks Chromium tiks restartēts pēc 1 sekundes}zero{Pārlūks Chromium tiks restartēts pēc # sekundēm}one{Pārlūks Chromium tiks restartēts pēc # sekundes}other{Pārlūks Chromium tiks restartēts pēc # sekundēm}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Restartējiet pārlūku Chromium dienas laikā}zero{Restartējiet pārlūku Chromium # dienu laikā}one{Restartējiet pārlūku Chromium # dienas laikā}other{Restartējiet pārlūku Chromium # dienu laikā}}</translation> <translation id="1298199220304005244">Saņemt palīdzību par Chromium OS izmantošanu</translation> <translation id="1396446129537741364">Chromium mēģina rādīt paroles.</translation> <translation id="1414495520565016063">Esat pierakstījies operētājsistēmā Chromium!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Pārinstalēt Chromium</translation> <translation id="1869480248812203386">Varat palīdzēt uzlabot Chromium drošību un lietošanas ērtumu, automātiski nosūtot Google serveriem informāciju par iespējamām drošības problēmām.</translation> <translation id="1881322772814446296">Jūs pierakstāties ar pārvaldītu kontu, kura administrators var kontrolēt jūsu profilu. Jūsu Chromium dati, piemēram, lietotnes, grāmatzīmes, vēsture, paroles un citi iestatījumi, tiks neatgriezeniski saistīti ar lietotāju <ph name="USER_NAME" />. Varēsiet dzēst šos datus, izmantojot Google kontu informācijas paneli, taču nevarēsiet šos datus saistīt ar citu kontu. Ja vēlaties, varat izveidot jaunu profilu, lai atsevišķi glabātu Chromium datus. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Ir pieejams Chromium atjauninājums}=1{Ir pieejams Chromium atjauninājums}zero{Chromium atjauninājums ir pieejams # dienas}one{Chromium atjauninājums ir pieejams # dienu}other{Chromium atjauninājums ir pieejams # dienas}}</translation> <translation id="1929939181775079593">Chromium nereaģē. Vai restartēt to tūlīt?</translation> <translation id="1966382378801805537">Chromium nevar noteikt vai iestatīt noklusējuma pārlūku.</translation> <translation id="2008474315282236005">Veicot šo darbību, no šīs ierīces tiks dzēsts 1 vienums. Lai vēlāk izgūtu datus, pierakstieties pārlūkā Chromium kā <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium ir atjaunināts</translation> <translation id="3032787606318309379">Notiek pievienošana pārlūkam Chromium...</translation> <translation id="3046695367536568084">Lai izmantotu lietotnes, jums ir jāpierakstās operētājsistēmā Chromium. Tādējādi operētājsistēmā Chromium varēs sinhronizēt jūsu lietotnes, grāmatzīmes, vēsturi, paroles un citus iestatījumus visās ierīcēs.</translation> +<translation id="3052899382720782935">{0,plural, =1{Pārlūks Chromium tiks restartēts pēc 1 minūtes}zero{Pārlūks Chromium tiks restartēts pēc # minūtēm}one{Pārlūks Chromium tiks restartēts pēc # minūtes}other{Pārlūks Chromium tiks restartēts pēc # minūtēm}}</translation> <translation id="3068515742935458733">Palīdzēt uzlabot Chromium, nosūtot Google serveriem avāriju pārskatus un <ph name="UMA_LINK" /></translation> <translation id="3103660991484857065">Instalēšanas programmai neizdevās atarhivēt arhīvu. Lejupielādējiet Chromium vēlreiz.</translation> <translation id="3130323860337406239">Pārlūkā Chromium tiek izmantots jūsu mikrofons.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Notiek Chromium atjaunināšana...</translation> <translation id="358997566136285270">Chromium logotips</translation> <translation id="3713809861844741608">Atvērt saiti jaunā Chromium &cilnē</translation> +<translation id="3728336900324680424">Pārlūkā Chromium tiks izmantota Diskā pieejamā informācija, lai adrešu joslā piedāvātu ieteikumus</translation> <translation id="3762167353400286894">Chromium OS tiek rādīta šajā valodā.</translation> <translation id="378917192836375108">Chromium ļauj jums noklikšķināt uz tālruņa numura un zvanīt uz to pakalpojumā Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> — Chromium</translation> <translation id="3852700440713538496">Piespraudiet pārlūku Chromium uzdevumjoslai</translation> <translation id="3889543394854987837">Noklikšķiniet uz sava vārda, lai atvērtu Chromium un sāktu pārlūkošanu.</translation> <translation id="3898493977366060150">Tīmekļa pārlūkošana, izmantojot Google viedās tehnoloģijas</translation> +<translation id="3965668104013180445">{0,plural, =1{Operētājsistēma Chromium OS tiks restartēta pēc vienas stundas}zero{Operētājsistēma Chromium OS tiks restartēta pēc # stundām}one{Operētājsistēma Chromium OS tiks restartēta pēc # stundas}other{Operētājsistēma Chromium OS tiks restartēta pēc # stundām}}</translation> <translation id="4036079820698952681">Palīdziet uzlabot pārlūku Chromium, ziņojot par <ph name="BEGIN_LINK" />pašreizējiem iestatījumiem<ph name="END_LINK" />.</translation> <translation id="4050175100176540509">Jaunākajā versijā ir pieejami svarīgi drošības uzlabojumi un jaunas funkcijas.</translation> <translation id="407254336480250557">Atlasiet <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium darbojas fona režīmā.</translation> <translation id="4987820182225656817">Viesi var izmantot Chromium, neatstājot nekādas pēdas.</translation> <translation id="4994636714258228724">Pievienot savu kontu pārlūkā Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Ir pieejams Chromium OS atjauninājums}=1{Ir pieejams Chromium OS atjauninājums}zero{Chromium OS atjauninājums ir pieejams # dienas}one{Chromium OS atjauninājums ir pieejams # dienu}other{Chromium OS atjauninājums ir pieejams # dienas}}</translation> <translation id="5032989939245619637">Saglabāt informāciju operētājsistēmā Chromium</translation> <translation id="5045248521775609809">Paņemiet Chromium sev līdzi</translation> <translation id="5116586539350239523">Chromium droši saglabās jūsu privāto informāciju, lai jums vairs nevajadzētu to atkārtoti ievadīt.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">Chromium OS nevar atvērt šo lapu.</translation> <translation id="5480860683791598150">Pārlūkam Chromium ir nepieciešama piekļuve jūsu atrašanās vietas datiem, lai varētu tos kopīgot ar šo vietni.</translation> <translation id="549669000822060376">Lūdzu, uzgaidiet, kamēr Chromium instalē jaunākos sistēmas atjauninājumus.</translation> +<translation id="5514308096618405748">Chrome OS un Linux (Beta) darbību nodrošina papildu <ph name="BEGIN_LINK_CROS_OSS" />atklātā pirmkoda programmatūra<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="5529843986978123325">{0,plural, =1{Operētājsistēma Chromium OS tiks restartēta pēc 1 minūtes}zero{Operētājsistēma Chromium OS tiks restartēta pēc # minūtēm}one{Operētājsistēma Chromium OS tiks restartēta pēc # minūtes}other{Operētājsistēma Chromium OS tiks restartēta pēc # minūtēm}}</translation> <translation id="5631814766731275228">Chromium profila vārds un attēls</translation> <translation id="5634636535844844681">Pārlūka Chromium izmantošanai nepieciešama operētājsistēma Windows 7 vai jaunāka versija.</translation> <translation id="5680901439334282664">pierakstieties pārlūkā Chromium</translation> <translation id="5698481217667032250">Rādīt Chromium šajā valodā</translation> +<translation id="5712253116097046984">Lai lietotu šo atjauninājumu, administrators lūdz restartēt operētājsistēmu Chromium OS.</translation> <translation id="5726838626470692954">Jūsu konta pārzinim ir jānoņem jūs no pārlūka Chromium un atkal jāpievieno.</translation> <translation id="5768914737813585044">Rādīt Chromium OS šajā valodā</translation> <translation id="5796460469508169315">Chromium ir gandrīz gatavs!</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923">Paplašinājums <ph name="EXTENSION_NAME" /> ir pievienots pārlūkam Chromium</translation> <translation id="608189560609172163">Chromium nevarēja sinhronizēt jūsu datus pierakstīšanās kļūdas dēļ.</translation> <translation id="6096348254544841612">Pielāgojiet un pārvaldiet pārlūku Chromium. Ir pieejams atjauninājums.</translation> +<translation id="6120345080069858279">Pārlūks Chromium saglabās šo paroli jūsu Google kontā. To nav nepieciešams iegaumēt.</translation> <translation id="6129621093834146363">Fails <ph name="FILE_NAME" /> ir bīstams, tādēļ Chromium to bloķēja.</translation> +<translation id="620022061217911843">Lai lietotu atjauninājumu, administrators pieprasa restartēt operētājsistēmu Chromium OS.</translation> <translation id="6212496753309875659">Šim datoram jau ir jaunākā Chromium versija. Ja programmatūra nedarbojas, atinstalējiet pārlūku Chromium un mēģiniet vēlreiz.</translation> <translation id="6248213926982192922">Padarīt Chromium par noklusējuma pārlūku</translation> <translation id="6268381023930128611">Vai izrakstīties no Chromium?</translation> @@ -189,8 +201,10 @@ <ph name="BEGIN_LINK_2" />Uzziniet vairāk<ph name="END_LINK_2" />. Papildu norādījumus skatiet e-pasta ziņojumā šeit: <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Chromium OS restartēšana</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> — Chromium izstrādātāju versija</translation> <translation id="7451052299415159299">Pārlūkam Chromium ir nepieciešama atļauja piekļūt jūsu kamerai šajā vietnē.</translation> +<translation id="7471302858145901434">{0,plural, =1{Restartējiet operētājsistēmu Chromium OS vienas dienas laikā}zero{Restartējiet operētājsistēmu Chromium OS # dienu laikā}one{Restartējiet operētājsistēmu Chromium OS # dienas laikā}other{Restartējiet operētājsistēmu Chromium OS # dienu laikā}}</translation> <translation id="7483335560992089831">Nevar instalēt to pašu Chromium versiju, kas jau šobrīd darbojas. Aizveriet Chromium un mēģiniet vēlreiz.</translation> <translation id="7549178288319965365">Par Chromium OS</translation> <translation id="7577193603922410712">Tikko tika piemērots īpašs Chromium drošības atjauninājums. Restartējiet tūlīt, lai tas stātos spēkā (mēs atjaunosim jūsu cilnes).</translation> @@ -220,10 +234,13 @@ <translation id="8290862415967981663">Šis fails var būt bīstams, tāpēc Chromium to bloķēja.</translation> <translation id="8330519371938183845">Pierakstieties, lai sinhronizētu un personalizētu pārlūku Chromium visās savās ierīcēs.</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> iepriekš izmantoja Chromium</translation> +<translation id="8375950122744241554">Pārlūkā Chromium 70 un jaunākās versijās vairs nebūs pieejami uzraudzīto lietotāju profili.</translation> +<translation id="8379713241968949941">{0,plural, =1{Pārlūks Chromium tiks restartēts pēc stundas}zero{Pārlūks Chromium tiks restartēts pēc # stundām}one{Pārlūks Chromium tiks restartēts pēc # stundas}other{Pārlūks Chromium tiks restartēts pēc # stundām}}</translation> <translation id="8453117565092476964">Instalēšanas programmas arhīvs ir bojāts vai nav derīgs. Lejupielādējiet Chromium vēlreiz.</translation> <translation id="8493179195440786826">Chromium versija ir novecojusi</translation> <translation id="85843667276690461">Saņemt palīdzību par Chromium izmantošanu</translation> <translation id="8586442755830160949">Autortiesības <ph name="YEAR" /> Chromium autori. Visas tiesības paturētas.</translation> +<translation id="8599548569518771270">{0,plural, =0{Operētājsistēma Chromium OS tiks restartēta tūlīt}=1{Operētājsistēma Chromium OS tiks restartēta pēc 1 sekundes}zero{Operētājsistēma Chromium OS tiks restartēta pēc # sekundēm}one{Operētājsistēma Chromium OS tiks restartēta pēc # sekundes}other{Operētājsistēma Chromium OS tiks restartēta pēc # sekundēm}}</translation> <translation id="8619360774459241877">Notiek Chromium palaišana...</translation> <translation id="8621669128220841554">Instalēšana neizdevās nenoteiktas kļūdas dēļ. Lejupielādējiet pārlūku Chromium vēlreiz.</translation> <translation id="8628626585870903697">Pārlūka Chromium komplektācijā nav PDF skatītāja, kas nepieciešams funkcijas Drukas priekšskatījums darbībai.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb index 5ef75b6..e39910102 100644 --- a/chrome/app/resources/chromium_strings_ml.xtb +++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">നിങ്ങളുടെ ഫോണിൽ Chromium ഇൻസ്റ്റാൾ ചെയ്യുക. അക്കൗണ്ട് വീണ്ടെടുക്കൽ ഫോൺ നമ്പറിലേക്ക് ഞങ്ങളൊരു SMS അയയ്ക്കും.</translation> <translation id="1174473354587728743">ഒരു കമ്പ്യൂട്ടർ പങ്കിടണോ? ഇപ്പോൾ നിങ്ങൾക്ക് ഇഷ്ടപ്പെട്ട രീതിയിൽ Chromium സജ്ജീകരിക്കാനാകും.</translation> <translation id="1185134272377778587">Chromium-ത്തിനെക്കുറിച്ച്</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കും}=1{Chromium ഒരു സെക്കൻഡിൽ വീണ്ടും സമാരംഭിക്കും}other{Chromium # സെക്കൻഡിൽ വീണ്ടും സമാരംഭിക്കും}}</translation> +<translation id="1267419686153937460">{0,plural, =1{ഒരു ദിവസത്തിനുള്ളിൽ Chromium വീണ്ടും സമാരംഭിക്കുക}other{# ദിവസത്തിനുള്ളിൽ Chromium വീണ്ടും സമാരംഭിക്കുക}}</translation> <translation id="1298199220304005244">Chromium OS ഉപയോഗിക്കുന്നതിനുള്ള സഹായം നേടുക</translation> <translation id="1396446129537741364">Chromium പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation> <translation id="1414495520565016063">നിങ്ങൾ Chromium-ൽ സൈൻ ഇൻ ചെയ്തു!</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Chromium വീണ്ടും ഇൻസ്റ്റാളുചെയ്യുക</translation> <translation id="1869480248812203386">സുരക്ഷയെ ബാധിക്കാൻ സാധ്യതയുള്ള കാര്യങ്ങളുടെ വിശദാംശങ്ങൾ Google-ലേക്ക് സ്വയമേവ റിപ്പോർട്ടുചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് Chrome-നെ സുരക്ഷിതവും എളുപ്പവുമാക്കാൻ സഹായിക്കാനാകും.</translation> <translation id="1881322772814446296">നിങ്ങൾ ഒരു നിയന്ത്രിത അക്കൗണ്ട് ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്ത് അതിന്റെ അഡ്മിനിസ്ട്രേറ്റർക്ക് നിങ്ങളുടെ Chromium പ്രൊഫൈലിന്റെ നിയന്ത്രണം നൽകുന്നു. നിങ്ങളുടെ അപ്ലിക്കേഷനുകൾ, ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ പോലെയുള്ള Chromium ഡാറ്റ <ph name="USER_NAME" /> എന്നതുമായി ശാശ്വതമായി ബന്ധിപ്പിച്ചതായിത്തീരും. Google അക്കൗണ്ട്സ് ഡാഷ്ബോർഡ് വഴി നിങ്ങൾക്ക് ഈ ഡാറ്റ ഇല്ലാതാക്കാനാകുമെങ്കിലും, ഈ ഡാറ്റ മറ്റൊരു അക്കൗണ്ടുമായി ബന്ധപ്പെടുത്താനാകില്ല. നിങ്ങളുടെ നിലവിലെ Chrome ഡാറ്റ പ്രത്യേകമായി സൂക്ഷിക്കുന്നതിന് നിങ്ങൾക്ക് ഒരു പുതിയ പ്രൊഫൈൽ ഓപ്ഷണലായി സൃഷ്ടിക്കാനാകും. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{ഒരു Chromium അപ്ഡേറ്റ് ലഭ്യമാണ്}=1{ഒരു Chromium അപ്ഡേറ്റ് ലഭ്യമാണ്}other{ഒരു Chromium അപ്ഡേറ്റ് # ദിവസത്തേക്ക് ലഭ്യമാണ്}}</translation> <translation id="1929939181775079593">Chromium പ്രതികരിക്കുന്നില്ല. ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കണോ?</translation> <translation id="1966382378801805537">Chromium-ത്തിന് ഡിഫോൾട്ട് ബ്രൗസർ നിർണ്ണയിക്കാനോ സജ്ജമാക്കാനോ കഴിയില്ല</translation> <translation id="2008474315282236005">ഇത് ഈ ഉപകരണത്തിൽ നിന്നും ഒരിനം ഇല്ലാതാക്കും. പിന്നീട് നിങ്ങളുടെ വിവരങ്ങൾ വീണ്ടെടുക്കാൻ, <ph name="USER_EMAIL" /> എന്നയാളായി Chromium-ത്തിൽ സൈൻ ഇൻ ചെയ്യുക.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Chromium അപ്ടുഡേറ്റാണ്</translation> <translation id="3032787606318309379">Chromium-ലേക്ക് ചേർക്കുന്നു...</translation> <translation id="3046695367536568084">അപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കാൻ നിങ്ങൾ Chromium-ത്തിൽ സൈൻ ഇൻ ചെയ്തിരിക്കേണ്ടതുണ്ട്. ഇത് നിങ്ങളുടെ ഉപകരണങ്ങളിലുടനീളമുള്ള അപ്ലിക്കേഷനുകൾ, ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ, മറ്റ് ക്രമീകരണങ്ങൾ എന്നിവ സമന്വയിപ്പിക്കാൻ Chromium-ത്തിനെ അനുവദിക്കുന്നു.</translation> +<translation id="3052899382720782935">{0,plural, =1{ഒരു മിനിറ്റിൽ Chromium വീണ്ടും സമാരംഭിക്കും}other{# മിനിറ്റിൽ Chromium വീണ്ടും സമാരംഭിക്കും}}</translation> <translation id="3068515742935458733">Google-ലേക്ക് ക്രാഷ് റിപ്പോർട്ടുകളും <ph name="UMA_LINK" /> എന്നതും അയയ്ക്കുന്നതിലൂടെ Chromium മികച്ചതാക്കാൻ സഹായിക്കുക</translation> <translation id="3103660991484857065">ആര്ക്കൈവ് അണ്കംപ്രസ്സുചെയ്യാന് ഇന്സ്റ്റാളറിന് കഴിഞ്ഞില്ല. Chromium വീണ്ടും ഡൗൺലോഡുചെയ്യുക.</translation> <translation id="3130323860337406239">Chromium നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കുന്നു.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Chromium അപ്ഡേറ്റുചെയ്യുന്നു...</translation> <translation id="358997566136285270">Chromium ലോഗോ</translation> <translation id="3713809861844741608">Chromium ആൾ&മാറാട്ട വിൻഡോയിൽ ലിങ്ക് തുറക്കുക</translation> +<translation id="3728336900324680424">വിലാസ ബാറിൽ നിർദ്ദേശങ്ങൾ സൃഷ്ടിക്കാൻ Chromium നിങ്ങളുടെ ഡ്രൈവ് ആക്സസ് ചെയ്യും</translation> <translation id="3762167353400286894">Chromium OS ഈ ഭാഷയിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു</translation> <translation id="378917192836375108">വെബിലുള്ള ഒരു ഫോണ് നമ്പറില് ക്ലിക്കുചെയ്യുവാനും Skype ഉപയോഗിച്ച് അതിൽ വിളിക്കുവാനും Chromium നിങ്ങളെ അനുവദിക്കുന്നു!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">Chromium-ത്തെ നിങ്ങളുടെ ടാസ്ക്ബാറിൽ പിൻ ചെയ്യുക</translation> <translation id="3889543394854987837">Chromium തുറന്ന് ബ്രൗസിംഗ് ആരംഭിക്കാൻ നിങ്ങളുടെ പേരിൽ ക്ലിക്കുചെയ്യുക.</translation> <translation id="3898493977366060150">Google ഉപയോഗിച്ചുള്ള വെബ് ബ്രൗസിംഗ് മികവുറ്റതാണ്</translation> +<translation id="3965668104013180445">{0,plural, =1{ഒരു മണിക്കൂറിൽ Chromium OS പുനഃരാരംഭിക്കും}other{# മണിക്കൂറിൽ Chromium OS പുനഃരാരംഭിക്കും}}</translation> <translation id="4036079820698952681"><ph name="BEGIN_LINK" />നിലവിലെ ക്രമീകരണം<ph name="END_LINK" /> റിപ്പോർട്ടുചെയ്തുകൊണ്ട് Chromium മികച്ചതാക്കാൻ സഹായിക്കുക</translation> <translation id="4050175100176540509">ഏറ്റവും പുതിയ പതിപ്പിൽ പ്രധാനപ്പെട്ട സുരക്ഷ മെച്ചപ്പെടുത്തലുകളും പുതിയ ഫീച്ചറുകളും ലഭ്യമാണ്.</translation> <translation id="407254336480250557"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> തിരഞ്ഞെടുക്കുക</translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Chromium പശ്ചാത്തല മോഡിലാണ്.</translation> <translation id="4987820182225656817">അതിഥികൾക്ക് ഒന്നും ശേഷിപ്പിക്കാതെ തന്നെ Chromium ഉപയോഗിക്കാനാകും.</translation> <translation id="4994636714258228724">Chromium-ത്തിലേക്ക് സ്വയം ചേരുക</translation> +<translation id="5021854341188256296">{0,plural, =0{ഒരു Chromium OS അപ്ഡേറ്റ് ലഭ്യമാണ്}=1{ഒരു Chromium OS അപ്ഡേറ്റ് ലഭ്യമാണ്}other{ഒരു Chromium OS അപ്ഡേറ്റ് # ദിവസത്തേക്ക് ലഭ്യമാണ്}}</translation> <translation id="5032989939245619637">Chromium-ൽ വിശദാംശങ്ങൾ സംരക്ഷിക്കുക</translation> <translation id="5045248521775609809">എല്ലായിടത്ത് നിന്നും Chromium ഉപയോഗിക്കുക</translation> <translation id="5116586539350239523">Chromium നിങ്ങളുടെ വ്യക്തിപരമായ വിശദാംശങ്ങൾ സുരക്ഷിതമായി സൂക്ഷിക്കുന്നതിനാൽ അവ വീണ്ടും ടൈപ്പുചെയ്യേണ്ടതില്ല.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Chromium OS-ന് ഈ പേജ് തുറക്കാനാവില്ല.</translation> <translation id="5480860683791598150">Chromium-ത്തിന് ഈ സൈറ്റുമായി ലൊക്കേഷൻ പങ്കിടുന്നതിന് നിങ്ങളുടെ ലൊക്കേഷനിലേക്കുള്ള ആക്സസ് ആവശ്യമാണ്</translation> <translation id="549669000822060376">Chromium ഏറ്റവും പുതിയ സിസ്റ്റം അപ്ഡേറ്റുകൾ ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation> +<translation id="5514308096618405748">Linux (ബീറ്റ) പോലെ, അധിക <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയർ<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചായിരിക്കാം, Chrome OS നിർമ്മിച്ചിരിക്കുന്നത്.</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS ഒരു മിനിറ്റിൽ പുനഃരാരംഭിക്കും}other{Chromium OS # മിനിറ്റിൽ പുനഃരാരംഭിക്കും}}</translation> <translation id="5631814766731275228">Chromium പേരും ചിത്രവും</translation> <translation id="5634636535844844681">Chromium-ത്തിന് Windows 7 അല്ലെങ്കിൽ അതിനുശേഷമുള്ള പതിപ്പ് ആവശ്യമാണ്.</translation> <translation id="5680901439334282664">Chromium-ത്തിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="5698481217667032250">ഈ ഭാഷയിൽ Chromium പ്രദർശിപ്പിക്കുക</translation> +<translation id="5712253116097046984">ഈ അപ്ഡേറ്റ് ബാധകമാക്കുന്നതിന് നിങ്ങൾ Chromium OS പുനഃരാരംഭിക്കാൻ അഡ്മിൻ ആവശ്യപ്പെടുന്നു</translation> <translation id="5726838626470692954">നിങ്ങളുടെ മാനേജർ നിങ്ങളെ നീക്കംചെയ്ത് Chromium-ത്തിലേക്ക് തിരികെ ചേർക്കേണ്ടതാണ്.</translation> <translation id="5768914737813585044">ഈ ഭാഷയിൽ Chromium OS പ്രദർശിപ്പിക്കുക</translation> <translation id="5796460469508169315">Chromium ഏകദേശം തയാറായിക്കഴിഞ്ഞു.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium-ത്തിലേക്ക് ചേർത്തു</translation> <translation id="608189560609172163">സൈൻ ഇൻ ചെയ്യുന്നതിലെ പിശകിനാൽ Chromium-ത്തിന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation> <translation id="6096348254544841612">Chromium ഇഷ്ടാനുസൃതമാക്കി നിയന്ത്രിക്കുക. അപ്ഡേറ്റ് ലഭ്യമാണ്.</translation> +<translation id="6120345080069858279">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ Chromium ഈ പാസ്വേഡ് സംരക്ഷിക്കും. നിങ്ങൾ അത് ഓർത്ത് വയ്ക്കേണ്ടതില്ല.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> അപകടകരമായതിനാൽ, Chromium ഇതിനെ ബ്ലോക്കുചെയ്തു.</translation> +<translation id="620022061217911843">ഈ അപ്ഡേറ്റ് ബാധകമാക്കുന്നതിന് നിങ്ങൾ Chromium OS പുനഃരാരംഭിക്കുന്നത് അഡ്മിന് ആവശ്യമാണ്.</translation> <translation id="6212496753309875659">Chromium-ത്തിന്റെ ഏറ്റവും സമീപകാലത്തുള്ള പതിപ്പ് ഈ കമ്പ്യൂട്ടറില് ഇതിനകം തന്നെയുണ്ട്. സോഫ്റ്റ്വെയര് പ്രവര്ത്തിക്കുന്നില്ലെങ്കില്, Chromium അൺഇൻസ്റ്റാളുചെയ്ത് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="6248213926982192922">Chromium-ത്തെ സ്ഥിരസ്ഥിതി ബ്രൗസറാക്കി മാറ്റുക</translation> <translation id="6268381023930128611">Chromium-ത്തിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യണോ?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />കൂടുതലറിയുക<ph name="END_LINK_2" /> കൂടുതൽ നിർദ്ദേശങ്ങൾക്ക് <ph name="ACCOUNT_EMAIL" /> എന്നതിൽ നിങ്ങളുടെ ഇമെയിൽ പരിശോധിക്കുക.</translation> +<translation id="7448255348454382571">Chromium OS പുനഃരാരംഭിക്കുക</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium Dev</translation> <translation id="7451052299415159299">ഈ സൈറ്റിനായി, Chromium-ത്തിന് നിങ്ങളുടെ ക്യാമറ ആക്സസ് ചെയ്യാനുള്ള അനുമതി ആവശ്യമാണ്</translation> +<translation id="7471302858145901434">{0,plural, =1{Chromium OS ഒരു ദിവസത്തിനുള്ളിൽ പുനഃരാരംഭിക്കുക}other{Chromium OS # ദിവസത്തിനുള്ളിൽ പുനഃരാരംഭിക്കുക}}</translation> <translation id="7483335560992089831">നിലവിൽ പ്രവർത്തിച്ചു കൊണ്ടിരിക്കുന്ന Chromium-ത്തിന്റെ സമാന പതിപ്പ് ഇൻസ്റ്റാളുചെയ്യാൻ കഴിയില്ല. Chromium അടച്ചതിനുശേഷം വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7549178288319965365">Chromium OS-നെക്കുറിച്ച്</translation> <translation id="7577193603922410712">Chromium-ത്തിനുള്ള ഒരു പ്രത്യേക സുരക്ഷാ അപ്ഡേറ്റ് ഇപ്പോൾ പ്രയോഗിച്ചിരിക്കുന്നു; ഇത് പ്രവർത്തനക്ഷമമാക്കാൻ നിങ്ങൾ ഇപ്പോൾ പുനഃരാരംഭിക്കേണ്ടതുണ്ട് (ഞങ്ങൾ നിങ്ങളുടെ ടാബുകൾ പുനഃസ്ഥാപിക്കും).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">ഈ ഫയൽ അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ Chromium ഇതിനെ ബ്ലോക്കുചെയ്തു.</translation> <translation id="8330519371938183845">നിങ്ങളുടെ ഉപകരണങ്ങളിലുടനീളം Chromium സമന്വയിപ്പിച്ച് വ്യക്തിഗതമാക്കാൻ സൈൻ ഇൻ ചെയ്യുക</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> മുമ്പ് Chromium ഉപയോഗിച്ചിട്ടുണ്ട്</translation> +<translation id="8375950122744241554">Chromium 70 പതിപ്പ് മുതൽ സൂപ്പർവൈസ് ചെയ്യപ്പെടുന്ന ഉപയോക്തൃ പ്രൊഫൈലുകള് ഇനിയങ്ങോട്ട് ലഭ്യമല്ല.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium ഒരു മണിക്കൂറിൽ വീണ്ടും സമാരംഭിക്കും}other{Chromium # മണിക്കൂറിൽ വീണ്ടും സമാരംഭിക്കും}}</translation> <translation id="8453117565092476964">ഇൻസ്റ്റാളർ ആർക്കൈവ് കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. Chromium വീണ്ടും ഡൗൺലോഡുചെയ്യുക.</translation> <translation id="8493179195440786826">Chromium കാലഹരണപ്പെട്ടു</translation> <translation id="85843667276690461">Chromium ഉപയോഗിക്കുന്നതിനുള്ള സഹായം നേടുക</translation> <translation id="8586442755830160949">പകർപ്പവകാശം <ph name="YEAR" /> Chromium രചയിതാക്കൾ. എല്ലാ അവകാശങ്ങളും നിക്ഷിപ്തം.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS ഇപ്പോൾ പുനഃരാരംഭിക്കും}=1{Chromium OS ഒരു സെക്കൻഡിൽ പുനഃരാരംഭിക്കും}other{Chromium OS # സെക്കൻഡിൽ പുനഃരാരംഭിക്കും}}</translation> <translation id="8619360774459241877">Chromium സമാരംഭിക്കുന്നു...</translation> <translation id="8621669128220841554">അവ്യക്തമായ പിശകിനാൽ ഇൻസ്റ്റാളുചെയ്യൽ പരാജയപ്പെട്ടു. Chromium വീണ്ടും ഡൗൺലോഡുചെയ്യുക.</translation> <translation id="8628626585870903697">Chromium-ത്തിൽ പ്രിന്റ് പ്രിവ്യൂവിന് പ്രവർത്തിക്കുന്നതിന് ആവശ്യമായ PDF വ്യൂവർ ഉൾപ്പെടുന്നില്ല.</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb index 7427f6c..3e3ba18d 100644 --- a/chrome/app/resources/chromium_strings_mr.xtb +++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -9,6 +9,8 @@ <translation id="1170115874949214249">आपल्या फोनवर Chromium इंस्टॉल करा. आम्ही आपल्या खाते पुनर्प्राप्ती फोन नंबरवर एक SMS पाठवू.</translation> <translation id="1174473354587728743">एक कॉंप्युटर सामायिक करायचा? आपल्याला आवडते त्या प्रकारे आपण आता Chromium सेट करू शकता.</translation> <translation id="1185134272377778587">Chromium बद्दल</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium आता पुन्हा लाँच होईल}=1{Chromium एका सेकंदाने पुन्हा लाँच होईल}one{Chromium # सेकंदांने पुन्हा लाँच होईल}other{Chromium # सेकंदांनी पुन्हा लाँच होईल}}</translation> +<translation id="1267419686153937460">{0,plural, =1{एका दिवसामध्ये Chromium पुन्हा लाँच करा}one{# दिवसामध्ये Chromium पुन्हा लाँच करा}other{# दिवसांमध्ये Chromium पुन्हा लाँच करा}}</translation> <translation id="1298199220304005244">Chromium OS वापरून मदत मिळवा</translation> <translation id="1396446129537741364">Chromium पासवर्ड दर्शविण्याचा प्रयत्न करत आहे.</translation> <translation id="1414495520565016063">आपण Chromium मध्ये साइन इन केले आहे!</translation> @@ -24,6 +26,7 @@ <translation id="1808667845054772817">Chromium पुनर्स्थापित करा</translation> <translation id="1869480248812203386">आपण Google कडे संभाव्य सुरक्षितता घटनांच्या तपशीलांचा स्वयंचलितपणे अहवाल देऊन Chromium वापरणे अधिक सुरक्षित आणि अधिक सुलभ करण्यात मदत करू शकता.</translation> <translation id="1881322772814446296">आपण एका व्यवस्थापित खात्यासह साइन इन करत आहात आणि आपल्या Chromium प्रोफाईलवर त्याच्या प्रशासकास नियंत्रण देत आहात. आपला Chromium डेटा, जसे की आपले अॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज <ph name="USER_NAME" /> वर कायमच्या बद्ध होतील. आपण Google खाती डॅशबोर्डद्वारे हा डेटा हटविण्यात सक्षम व्हाल, परंतु आपण दुसर्या खात्यासह हा डेटा संबद्ध करण्यात सक्षम होणार नाही. आपण आपला विद्यमान Chromium डेटा विभक्त ठेवण्यासाठी एक नवीन प्रोफाईल वैकल्पिकपणे तयार करू शकता. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Chromium अपडेट उपलब्ध आहे}=1{Chromium अपडेट उपलब्ध आहे}one{Chromium अपडेट # दिवसासाठी उपलब्ध आहे}other{Chromium अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation> <translation id="1929939181775079593">Chromium असंवादी आहे. आता पुन्हा लाँच करायचे?</translation> <translation id="1966382378801805537">Chromium डीफॉल्ट ब्राउझर निर्धारित किंवा सेट करू शकत नाही</translation> <translation id="2008474315282236005">हे या डिव्हाइस मधून 1 आयटम हटवेल. नंतर आपला डेटा पुनर्प्राप्त करण्यासाठी, Chromium मध्ये <ph name="USER_EMAIL" /> म्हणून साइन इन करा.</translation> @@ -53,6 +56,7 @@ <translation id="2977470724722393594">Chromium अद्ययावत आहे</translation> <translation id="3032787606318309379">Chromium वर जोडत आहे...</translation> <translation id="3046695367536568084">अॅप्स वापरण्यासाठी Chromium मध्ये आपल्याला साइन इन करण्याची आवश्यकता आहे. हे डिव्हाइसेसवर आपले अॅप्स, बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज संकालित करण्याची Chromium ला अनुमती देते.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium एका मिनिटामध्ये पुन्हा लाँच होईल}one{Chromium # मिनिटामध्ये पुन्हा लाँच होईल}other{Chromium # मिनिटांमध्ये पुन्हा लाँच होईल}}</translation> <translation id="3068515742935458733">Google कडे क्रॅश अहवाल आणि <ph name="UMA_LINK" /> पाठवून Chromium अधिक चांगले करण्यात मदत करा</translation> <translation id="3103660991484857065">संग्रहण असंक्षिप्त करण्यास इन्स्टॉलर अयशस्वी. कृपया Chromium पुन्हा डाउनलोड करा.</translation> <translation id="3130323860337406239">Chromium आपला मायक्रोफोन वापरत आहे.</translation> @@ -74,12 +78,14 @@ <translation id="3582788516608077514">Chromium अपडेट करीत आहे...</translation> <translation id="358997566136285270">Chromium लोगो</translation> <translation id="3713809861844741608">लिंक नवीन Chromium &टॅबमध्ये उघडा</translation> +<translation id="3728336900324680424">अॅड्रेस बारमध्ये सूचना देण्यासाठी Chromium तुमची ड्राइव्ह अॅक्सेस करेल</translation> <translation id="3762167353400286894">Chromium OS या भाषेत प्रदर्शित केले आहे</translation> <translation id="378917192836375108">Chromium आपल्याला वेबवरील फोन नंबर क्लिक करू देते आणि Skype सह त्याला कॉल करते!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">Chromium ला आपल्या टास्कबारवर पिन करा</translation> <translation id="3889543394854987837">Chromium उघडण्यासाठी आपले नाव क्लिक करा आणि ब्राउझिंग प्रारंभ करा.</translation> <translation id="3898493977366060150">Google smarts सह वेब ब्राउझिंग</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS एका तासात रीस्टार्ट करेल}one{Chromium OS # तासामध्ये रीस्टार्ट करेल}other{Chromium OS # तासांमध्ये रीस्टार्ट करेल}}</translation> <translation id="4036079820698952681"><ph name="BEGIN_LINK" />वर्तमान सेटिंग्ज<ph name="END_LINK" /> चा अहवाल देऊन Chromium उत्कृष्ट बनविण्यात मदत करा</translation> <translation id="4050175100176540509">नवीनतम आवृत्तीमध्ये महत्त्वाच्या सुरक्षितता सुधारणा आणि नवीन वैशिष्ट्ये उपलब्ध आहेत.</translation> <translation id="407254336480250557"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /> निवडा</translation> @@ -106,6 +112,7 @@ <translation id="4943838377383847465">Chromium पार्श्वभूमी मोड मध्ये आहे.</translation> <translation id="4987820182225656817">अतिथी कोणतीही गोष्ट मागे न सोडता Chromium वापरू शकतात.</translation> <translation id="4994636714258228724">आपल्या स्वतःस Chromium वर जोडा</translation> +<translation id="5021854341188256296">{0,plural, =0{Chromium OS अपडेट उपलब्ध आहे}=1{Chromium OS अपडेट उपलब्ध आहे}one{Chromium OS अपडेट # दिवसासाठी उपलब्ध आहे}other{Chromium OS अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation> <translation id="5032989939245619637">Chromium मध्ये तपशील सेव्ह करा</translation> <translation id="5045248521775609809">Chromium ला सर्वत्र न्या</translation> <translation id="5116586539350239523">Chromium आपले वैयक्तिक तपशील सुरक्षितपणे संचयित करेल जेणेकरून आपल्याला ते पुन्हा टाइप करण्याची आवश्यकता नसेल.</translation> @@ -118,10 +125,13 @@ <translation id="5479196819031988440">Chromium OS हे पृष्ठ उघडू शकत नाही.</translation> <translation id="5480860683791598150">या साइटसोबत तुमचे स्थान शेअर करण्यासाठी Chromium ला तुमच्या स्थानाचा अॅक्सेस हवा आहे</translation> <translation id="549669000822060376">कृपया Chromium नवीनतम सिस्टम अपडेट इंस्टॉल करेपर्यंत प्रतीक्षा करा.</translation> +<translation id="5514308096618405748">Linux (बीटा) सारखेच, अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />मुक्त स्त्रोत सॉफ्टवेअर<ph name="END_LINK_CROS_OSS" /> द्वारे Chrome OS शक्य झाले आहे.</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS एक मिनिटात रीस्टार्ट होईल}one{Chromium OS # मिनिटात रीस्टार्ट होईल}other{Chromium OS # मिनिटांमध्ये रीस्टार्ट होईल}}</translation> <translation id="5631814766731275228">Chromium नाव आणि फोटो</translation> <translation id="5634636535844844681">Chromium साठी Windows 7 किंवा नंतरची आवृत्ती आवश्यक आहे.</translation> <translation id="5680901439334282664">Chromium वर साइन इन करा</translation> <translation id="5698481217667032250">Chromium या भाषेत प्रदर्शित करा</translation> +<translation id="5712253116097046984">तुमचा अॅडमिनिस्ट्रेटर हे अपडेट लागू करण्यासाठी तुम्हाला Chrome OS ला रीस्टार्ट करण्याची विनंती करत आहे</translation> <translation id="5726838626470692954">आपल्या व्यवस्थापकाने आपल्याला Chromium वरून काढणे आणि परत जोडणे आवश्यक आहे.</translation> <translation id="5768914737813585044">Chromium OS या भाषेत प्रदर्शित करा</translation> <translation id="5796460469508169315">Chromium जवळजवळ तयार आहे</translation> @@ -138,7 +148,9 @@ <translation id="6072279588547424923"><ph name="EXTENSION_NAME" /> Chromium मध्ये जोडण्यात आले आहे</translation> <translation id="608189560609172163">साइन इन करण्यात एरर आल्यामुळे Chromium आपला डेटा संकालित करू शकले नाही.</translation> <translation id="6096348254544841612">Chromium कस्टमाइझ करा आणि नियंत्रित करा. अपडेट उपलब्ध आहे.</translation> +<translation id="6120345080069858279">Chromium हा पासवर्ड तुमच्या Google खात्यामध्ये सेव्ह करेल. तुम्हाला पासवर्ड लक्षात ठेवावा लागणार नाही.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> धोकादायक आहे, त्यामुळे Chromium ने ते अवरोधित केले आहे.</translation> +<translation id="620022061217911843">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome OS रीस्टार्ट करण्याची आवश्यकता आहे</translation> <translation id="6212496753309875659">या संगणकावर आधीपासून Chromium ची अगदी अलीकडील आवृत्ती आहे. सॉफ्टवेअर कार्य करत नसल्यास, कृपया Chromium विस्थापित करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="6248213926982192922">Chromium ला डीफॉल्ट ब्राउझर बनवा</translation> <translation id="6268381023930128611">Chromium मधून साइन आउट करायचे?</translation> @@ -191,8 +203,10 @@ <ph name="NEW_PROFILE_NAME" /> ला आपल्या खात्यात प्रवेश करण्यापासून प्रतिबंधित करण्यासाठी, आपण Chromium वापरत नसता तेव्हा आपण आपले प्रोफाइल लॉक करता याची खात्री करा. हे करण्यासाठी, ब्राउझरच्या वरील उजव्या कोपर्यातील आपले प्रोफाइल नाव क्लिक करा आणि "बाहेर पडा आणि मुलांचा लॉक" निवडा. <ph name="BEGIN_LINK_2" />अधिक जाणून घ्या<ph name="END_LINK_2" /> कृपया पुढील सूचनांसाठी आपले ईमेल <ph name="ACCOUNT_EMAIL" /> वर तपासा.</translation> +<translation id="7448255348454382571">Chromium OS रीस्टार्ट करा</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> - Chromium डेव्हलपर</translation> <translation id="7451052299415159299">या साइटसाठी Chromium ला तुमचा कॅमेरा अॅक्सेस करण्याची परवानगी हवी आहे</translation> +<translation id="7471302858145901434">{0,plural, =1{Chromium OS एका दिवसात रीस्टार्ट करा}one{Chromium OS # दिवसात रीस्टार्ट करा}other{Chromium OS # दिवसांमध्ये रीस्टार्ट करा}}</translation> <translation id="7483335560992089831">सध्या चालू असलेल्या सारख्याच Chromium आवृत्तीची स्थापना होऊ शकत नाही. कृपया Chromium बंद करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="7549178288319965365">Chromium OS बद्दल</translation> <translation id="7577193603922410712">Chromium साठी विशिष्ट सुरक्षा अपडेट आत्ताच लागू केले; ते प्रभावी होण्यासाठी आपण आता रीस्टार्ट करावे (आम्ही आपले टॅब पुनर्संचयित करू).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">ही फाईल कदाचित धोकादायक असू शकते, त्यामुळे Chromium ने ती अवरोधित केली आहे.</translation> <translation id="8330519371938183845">तुमच्या डिव्हाइसवर Chromium सिंक आणि पर्सनलाइझ करण्यासाठी साइन इन करा</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> पूर्वी Chromium वापरत होते</translation> +<translation id="8375950122744241554">Chromium 70 सह सुरू झालेले व्यवस्थापित वापरकर्ता प्रोफाइल यापुढे उपलब्ध असणार नाहीत.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium एका तासात पुन्हा लाँच होईल}one{Chromium # तासात पुन्हा लाँच होईल}other{Chromium # तासांमध्ये पुन्हा लाँच होईल}}</translation> <translation id="8453117565092476964">इन्स्टॉलर संग्रहण दूषित किंवा वैध आहे. कृपया Chromium पुन्हा डाउनलोड करा.</translation> <translation id="8493179195440786826">Chromium कालबाह्य आहे</translation> <translation id="85843667276690461">Chromium वापरून मदत मिळवा</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> The Chromium लेखक. सर्व हक्क राखीव.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS आता रीस्टार्ट होईल}=1{Chromium OS एका सेकंदात रीस्टार्ट होईल}one{Chromium OS # सेकंदात रीस्टार्ट होईल}other{Chromium OS # सेकंदामध्ये रीस्टार्ट होईल}}</translation> <translation id="8619360774459241877">Chromium लाँच करत आहे...</translation> <translation id="8621669128220841554">अनिर्दिष्ट त्रुटीमुळे स्थापना अयशस्वी झाली. कृपया Chromium पुन्हा डाउनलोड करा.</translation> <translation id="8628626585870903697">Chromium कार्य करण्यासाठी प्रिंट पूर्वावलोकनास आवश्यक असलेले PDF viewer समाविष्ट करीत नाही.</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb index 75c9e58..96d8975c 100644 --- a/chrome/app/resources/chromium_strings_no.xtb +++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -213,6 +213,7 @@ <translation id="7962572577636132072">Chromium oppdateres automatisk, sånn at du alltid har den nyeste versjonen.</translation> <translation id="7975919845073681630">Dette er en sekundær installering av Chromium. Den kan ikke brukes som standardnettleser.</translation> <translation id="7979877361127045932">Skjul i Chromium-menyen</translation> +<translation id="8013436988911883588">Når Chromium har fått tilgang, vil nettstedene kunne spørre deg om tilgang.</translation> <translation id="8030318113982266900">Oppdaterer enheten din til <ph name="CHANNEL_NAME" />-kanalen ...</translation> <translation id="8157153840442649507">Chromium vises på dette språket</translation> <translation id="81770708095080097">Denne filen er farlig, så Chromium har blokkert den.</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb index 63a21bb..77f62a6 100644 --- a/chrome/app/resources/chromium_strings_pl.xtb +++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Zainstaluj Chromium na telefonie. Wyślemy SMS-a pod numer telefonu do odzyskiwania konta.</translation> <translation id="1174473354587728743">Używasz komputera, z którego korzystają inne osoby? Teraz możesz skonfigurować Chromium tak, jak chcesz.</translation> <translation id="1185134272377778587">Chromium – informacje</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium uruchomi się ponownie teraz}=1{Chromium uruchomi się ponownie za 1 sekundę}few{Chromium uruchomi się ponownie za # sekundy}many{Chromium uruchomi się ponownie za # sekund}other{Chromium uruchomi się ponownie za # sekundy}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Uruchom ponownie Chromium w ciągu jednego dnia}few{Uruchom ponownie Chromium w ciągu # dni}many{Uruchom ponownie Chromium w ciągu # dni}other{Uruchom ponownie Chromium w ciągu # dnia}}</translation> <translation id="1298199220304005244">Skorzystaj z pomocy dotyczącej używania systemu operacyjnego Chromium</translation> <translation id="1396446129537741364">Chromium próbuje pokazać hasła.</translation> <translation id="1414495520565016063">Jesteś zalogowany w Chromium.</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Ponownie zainstaluj Chromium</translation> <translation id="1869480248812203386">Możesz pomóc zwiększyć bezpieczeństwo i komfort korzystania z Chromium, automatycznie przesyłając do Google szczegółowe informacje o możliwych zagrożeniach.</translation> <translation id="1881322772814446296">Logujesz się na zarządzane konto i przekazujesz jego administratorowi kontrolę nad swoim profilem Chromium. Twoje dane Chromium, takie jak aplikacje, zakładki, historia, hasła i inne ustawienia, zostaną trwale powiązane z użytkownikiem <ph name="USER_NAME" />. Będzie można je usunąć w Panelu kont Google, ale nie będzie można ich powiązać z innym kontem. Możesz też utworzyć nowy profil, by przechowywać swoje dotychczasowe dane Chromium osobno. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Dostępna jest aktualizacja Chromium}=1{Dostępna jest aktualizacja Chromium}few{Aktualizacja Chromium jest dostępna od # dni}many{Aktualizacja Chromium jest dostępna od # dni}other{Aktualizacja Chromium jest dostępna od # dnia}}</translation> <translation id="1929939181775079593">Chromium nie odpowiada. Uruchomić go teraz ponownie?</translation> <translation id="1966382378801805537">Chromium nie może określić ani ustawić domyślnej przeglądarki</translation> <translation id="2008474315282236005">Spowoduje to usunięcie 1 elementu z tego urządzenia. Aby później odzyskać dane, zaloguj się w Chromium jako <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Masz aktualną wersję Chromium</translation> <translation id="3032787606318309379">Dodawanie do Chromium...</translation> <translation id="3046695367536568084">Jeśli chcesz korzystać z aplikacji, musisz zalogować się w Chromium, by Twoje aplikacje, zakładki, historia, hasła i inne ustawienia były synchronizowane między urządzeniami.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium uruchomi się ponownie za 1 minutę}few{Chromium uruchomi się ponownie za # minuty}many{Chromium uruchomi się ponownie za # minut}other{Chromium uruchomi się ponownie za # minuty}}</translation> <translation id="3068515742935458733">Pomóż nam ulepszyć Chromium, przesyłając do Google raporty o awariach i <ph name="UMA_LINK" /></translation> <translation id="3103660991484857065">Instalator nie może prawidłowo rozpakować archiwum. Pobierz Chromium ponownie.</translation> <translation id="3130323860337406239">Chromium używa Twojego mikrofonu.</translation> @@ -71,12 +75,14 @@ <translation id="3582788516608077514">Aktualizowanie Chromium...</translation> <translation id="358997566136285270">Logo Chromium</translation> <translation id="3713809861844741608">O&twórz link w nowej karcie Chromium</translation> +<translation id="3728336900324680424">Chromium będzie mieć dostęp do Dysku, by wyświetlać podpowiedzi na pasku adresu</translation> <translation id="3762167353400286894">System operacyjny Chromium działa obecnie w tym języku</translation> <translation id="378917192836375108">W Chromium możesz kliknąć numer telefonu zamieszczony w sieci i zadzwonić pod niego przez Skype.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Przypinanie Chromium na pasku zadań</translation> <translation id="3889543394854987837">Otwórz Chromium, klikając swoją nazwę i rozpocznij przeglądanie.</translation> <translation id="3898493977366060150">Przeglądanie stron internetowych za pomocą inteligentnych rozwiązań Google</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS uruchomi się ponownie za godzinę}few{Chromium OS uruchomi się ponownie za # godziny}many{Chromium OS uruchomi się ponownie za # godzin}other{Chromium OS uruchomi się ponownie za # godziny}}</translation> <translation id="4036079820698952681">Pomóż ulepszyć Chromium, zgłaszając <ph name="BEGIN_LINK" />bieżące ustawienia<ph name="END_LINK" /></translation> <translation id="4050175100176540509">W najnowszej wersji zostały wprowadzone ważne poprawki bezpieczeństwa i nowe funkcje.</translation> <translation id="407254336480250557">Wybierz <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -103,6 +109,7 @@ <translation id="4943838377383847465">Chromium jest w trybie działania w tle</translation> <translation id="4987820182225656817">Goście mogą korzystać z Chromium, nie pozostawiając żadnych danych.</translation> <translation id="4994636714258228724">Dodaj siebie do Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Dostępna jest aktualizacja Chromium OS}=1{Dostępna jest aktualizacja Chromium OS}few{Aktualizacja Chromium OS jest dostępna od # dni}many{Aktualizacja Chromium OS jest dostępna od # dni}other{Aktualizacja Chromium OS jest dostępna od # dnia}}</translation> <translation id="5032989939245619637">Zapisz szczegóły w Chromium</translation> <translation id="5045248521775609809">Zabierz Chromium ze sobą</translation> <translation id="5116586539350239523">Chromium będzie bezpiecznie przechowywać Twoje dane, dzięki czemu nie będzie trzeba wpisywać ich ponownie.</translation> @@ -115,10 +122,13 @@ <translation id="5479196819031988440">System operacyjny Chromium nie może otworzyć tej strony.</translation> <translation id="5480860683791598150">Chromium musi mieć dostęp do Twojej lokalizacji, by udostępnić ją tej stronie</translation> <translation id="549669000822060376">Poczekaj, aż Chromium zainstaluje najnowsze aktualizacje systemu.</translation> +<translation id="5514308096618405748">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu open source<ph name="END_LINK_CROS_OSS" />. To samo dotyczy funkcji Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS uruchomi się ponownie za 1 minutę}few{Chromium OS uruchomi się ponownie za # minuty}many{Chromium OS uruchomi się ponownie za # minut}other{Chromium OS uruchomi się ponownie za # minuty}}</translation> <translation id="5631814766731275228">Nazwa i zdjęcie w Chromium</translation> <translation id="5634636535844844681">Chromium wymaga systemu Windows 7 lub nowszego.</translation> <translation id="5680901439334282664">zaloguj się w Chromium</translation> <translation id="5698481217667032250">Wyświetlaj Chromium w tym języku</translation> +<translation id="5712253116097046984">Administrator prosi Cię o ponowne uruchomienie Chromium OS, by można było zainstalować tę aktualizację</translation> <translation id="5726838626470692954">Twój menedżer musi Cię usunąć i ponownie dodać w Chromium.</translation> <translation id="5768914737813585044">Wyświetlaj system operacyjny Chromium w tym języku</translation> <translation id="5796460469508169315">Chromium jest prawie gotowy.</translation> @@ -135,7 +145,9 @@ <translation id="6072279588547424923">Rozszerzenie <ph name="EXTENSION_NAME" /> zostało dodane do Chromium</translation> <translation id="608189560609172163">Chromium nie może zsynchronizować Twoich danych w związku z błędem logowania.</translation> <translation id="6096348254544841612">Dostosowywanie i kontrolowanie Chromium. Dostępna jest aktualizacja.</translation> +<translation id="6120345080069858279">Chromium zapisze to hasło na Twoim koncie Google. Nie musisz go pamiętać.</translation> <translation id="6129621093834146363">Plik <ph name="FILE_NAME" /> jest niebezpieczny, dlatego został zablokowany przez Chromium.</translation> +<translation id="620022061217911843">Administrator wymaga od Ciebie ponownego uruchomienia Chromium OS, by można było zainstalować aktualizację</translation> <translation id="6212496753309875659">Na tym komputerze jest już zainstalowana nowsza wersja Chromium. Jeśli program nie działa, odinstaluj go i spróbuj ponownie.</translation> <translation id="6248213926982192922">Ustaw Chromium jako domyślną przeglądarkę</translation> <translation id="6268381023930128611">Wylogować z Chromium?</translation> @@ -189,8 +201,10 @@ <ph name="BEGIN_LINK_2" />Więcej informacji<ph name="END_LINK_2" /> Więcej instrukcji znajdziesz w e-mailu wysłanym na adres <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Ponowne uruchomienie Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Dev</translation> <translation id="7451052299415159299">Chromium potrzebuje uprawnień dostępu do aparatu na tej stronie</translation> +<translation id="7471302858145901434">{0,plural, =1{Uruchom ponownie Chromium OS w ciągu jednego dnia}few{Uruchom ponownie Chromium OS w ciągu # dni}many{Uruchom ponownie Chromium OS w ciągu # dni}other{Uruchom ponownie Chromium OS w ciągu # dnia}}</translation> <translation id="7483335560992089831">Nie można zainstalować tej samej wersji Chromium co obecnie uruchomiona. Zamknij Chromium i spróbuj ponownie.</translation> <translation id="7549178288319965365">System operacyjny Chromium – informacje</translation> <translation id="7577193603922410712">Właśnie została zastosowana specjalna aktualizacja zabezpieczeń Chromium. Aby zmiany zostały wprowadzone, uruchom teraz ponownie przeglądarkę (karty zostaną przywrócone).</translation> @@ -220,10 +234,13 @@ <translation id="8290862415967981663">Ten plik może być niebezpieczny, dlatego został zablokowany przez Chromium.</translation> <translation id="8330519371938183845">Zaloguj się, by synchronizować dane Chromium i korzystać z własnych ustawień przeglądarki na wielu urządzeniach</translation> <translation id="8340674089072921962">Użytkownik <ph name="USER_EMAIL_ADDRESS" /> wcześniej używał Chromium</translation> +<translation id="8375950122744241554">Profile nadzorowanych użytkowników nie będą dostępne począwszy od Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium uruchomi się ponownie za godzinę}few{Chromium uruchomi się ponownie za # godziny}many{Chromium uruchomi się ponownie za # godzin}other{Chromium uruchomi się ponownie za # godziny}}</translation> <translation id="8453117565092476964">Archiwum instalatora jest uszkodzone lub nieprawidłowe. Pobierz Chromium ponownie.</translation> <translation id="8493179195440786826">Chromium jest nieaktualny</translation> <translation id="85843667276690461">Pomoc do Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Autorzy Chromium. Wszelkie prawa zastrzeżone.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS uruchomi się ponownie teraz}=1{Chromium OS uruchomi się ponownie za 1 sekundę}few{Chromium OS uruchomi się ponownie za # sekundy}many{Chromium OS uruchomi się ponownie za # sekund}other{Chromium OS uruchomi się ponownie za # sekundy}}</translation> <translation id="8619360774459241877">Uruchamiam Chromium…</translation> <translation id="8621669128220841554">Instalacja nie powiodła się z powodu nieokreślonego błędu. Pobierz Chromium ponownie.</translation> <translation id="8628626585870903697">Chromium nie zawiera przeglądarki PDF wymaganej przez podgląd wydruku.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb index d10f824..eb5b87c 100644 --- a/chrome/app/resources/chromium_strings_pt-BR.xtb +++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Instale o Chromium no seu smartphone. Enviaremos um SMS para o número de recuperação da sua conta.</translation> <translation id="1174473354587728743">Você compartilha um computador? Agora é possível configurar o Chromium do jeito que você gosta.</translation> <translation id="1185134272377778587">Sobre o Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{O Chromium será reiniciado agora}=1{O Chromium será reiniciado em 1 segundo}one{O Chromium será reiniciado em # segundo}other{O Chromium será reiniciado em # segundos}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Reiniciar o Chromium em 1 dia}one{Reiniciar o Chromium em # dia}other{Reiniciar o Chromium em # dias}}</translation> <translation id="1298199220304005244">Obter ajuda para usar o Chromium OS</translation> <translation id="1396446129537741364">O Chromium está tentando mostrar senhas.</translation> <translation id="1414495520565016063">Você está conectado ao Chromium.</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Reinstalar o Chromium</translation> <translation id="1869480248812203386">Você pode ajudar a tornar o Chromium mais seguro e mais fácil de usar ao informar automaticamente ao Google detalhes sobre possíveis incidentes de segurança.</translation> <translation id="1881322772814446296">Você está fazendo login com uma conta gerenciada e concedendo ao administrador da conta o controle sobre seu perfil do Chromium. Seus dados do Chromium, como aplicativos, favoritos, histórico, senhas e outras configurações serão permanentemente vinculados a <ph name="USER_NAME" />. Você pode excluir esses dados pelo painel das Contas do Google, mas não pode associá-los a outra conta. Você tem a opção de criar um novo perfil para manter seus dados existentes do Chromium separados. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Uma atualização do Chromium está disponível}=1{Uma atualização do Chromium está disponível}one{Uma atualização do Chromium está disponível há # dia}other{Uma atualização do Chromium está disponível há # dias}}</translation> <translation id="1929939181775079593">O Chromium não está respondendo. Reiniciar agora?</translation> <translation id="1966382378801805537">O Chromium não pode determinar ou definir o navegador padrão</translation> <translation id="2008474315282236005">Essa ação excluirá 1 item deste dispositivo. Para recuperar seus dados mais tarde, faça login no Chromium como <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">O Chromium está atualizado</translation> <translation id="3032787606318309379">Adicionando ao Chromium...</translation> <translation id="3046695367536568084">É necessário estar conectado ao Chromium para usar os aplicativos. Isso permite que o Chromium sincronize seus aplicativos, favoritos, histórico, senhas e outras configurações entre diferentes dispositivos.</translation> +<translation id="3052899382720782935">{0,plural, =1{O Chromium será reiniciado em 1 minuto}one{O Chromium será reiniciado em # minuto}other{O Chromium será reiniciado em # minutos}}</translation> <translation id="3068515742935458733">Ajude a melhorar o Chromium. Envie relatórios de erros e <ph name="UMA_LINK" /> para o Google</translation> <translation id="3103660991484857065">Ocorreu uma falha no instalador ao descompactar o arquivo. Faça o download do Chromium novamente.</translation> <translation id="3130323860337406239">O Chromium está usando seu microfone.</translation> @@ -71,12 +75,14 @@ <translation id="3582788516608077514">Atualizando o Chromium....</translation> <translation id="358997566136285270">Logotipo do Chromium</translation> <translation id="3713809861844741608">Abrir link em nova &guia do Chromium</translation> +<translation id="3728336900324680424">O Chromium acessará seu Drive para fazer sugestões na barra de endereço</translation> <translation id="3762167353400286894">O Chromium OS é exibido neste idioma</translation> <translation id="378917192836375108">O Chromium permite que você clique em um número de telefone na web e ligue para ele com o Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">Fixar o Chromium na barra de tarefas</translation> <translation id="3889543394854987837">Clique no seu nome para abrir o Chromium e começar a navegar.</translation> <translation id="3898493977366060150">Navegação na Web com a tecnologia do Google</translation> +<translation id="3965668104013180445">{0,plural, =1{O Chromium OS será reiniciado em uma hora}one{O Chromium OS será reiniciado em # hora}other{O Chromium OS será reiniciado em # horas}}</translation> <translation id="4036079820698952681">Ajude a melhorar o Chromium informando as <ph name="BEGIN_LINK" />configurações atuais<ph name="END_LINK" /></translation> <translation id="4050175100176540509">Melhorias de segurança importantes e novos recursos estão disponíveis na versão mais recente.</translation> <translation id="407254336480250557">Selecione o <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -103,6 +109,7 @@ <translation id="4943838377383847465">O Chromium está em modo de segundo plano.</translation> <translation id="4987820182225656817">Convidados podem usar o Chromium sem deixar nada para trás.</translation> <translation id="4994636714258228724">Cadastrar-se no Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Uma atualização do Chromium OS está disponível}=1{Uma atualização do Chromium OS está disponível}one{Uma atualização do Chromium OS está disponível há # dia}other{Uma atualização do Chromium OS está disponível há # dias}}</translation> <translation id="5032989939245619637">Salvar detalhes no Chromium</translation> <translation id="5045248521775609809">Leve o Chromium para todos os lugares</translation> <translation id="5116586539350239523">O Chromium armazenará seus dados pessoais com segurança para que não seja necessário digitá-los novamente.</translation> @@ -115,10 +122,13 @@ <translation id="5479196819031988440">O Chromium OS não pode abrir essa página.</translation> <translation id="5480860683791598150">O Chromium precisa acessar seu local para compartilhá-lo com este site</translation> <translation id="549669000822060376">Aguarde enquanto o Chromium instala as últimas atualizações do sistema.</translation> +<translation id="5514308096618405748">O Chrome OS tornou-se possível graças a um <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional, como o Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{O Chromium OS será reiniciado em 1 minuto}one{O Chromium OS será reiniciado em # minuto}other{O Chromium OS será reiniciado em # minutos}}</translation> <translation id="5631814766731275228">Nome e foto do Chromium</translation> <translation id="5634636535844844681">O Chromium requer o Windows 7 ou versão superior.</translation> <translation id="5680901439334282664">fazer login no Chromium</translation> <translation id="5698481217667032250">Exibir Chromium neste idioma</translation> +<translation id="5712253116097046984">O administrador pede que você reinicie o Chromium OS para que essa atualização seja aplicada</translation> <translation id="5726838626470692954">É necessário que seu administrador remova e adicione você novamente ao Chromium.</translation> <translation id="5768914737813585044">Exibir o Chromium OS neste idioma</translation> <translation id="5796460469508169315">O Chromium está quase pronto.</translation> @@ -135,7 +145,9 @@ <translation id="6072279588547424923">A extensão <ph name="EXTENSION_NAME" /> foi adicionada ao Chromium</translation> <translation id="608189560609172163">O Chromium não pôde sincronizar seus dados devido a um erro ao fazer login.</translation> <translation id="6096348254544841612">Personalize e controle o Chromium. Uma atualização está disponível.</translation> +<translation id="6120345080069858279">O Chromium salvará essa senha na sua Conta do Google. Você não precisará se lembrar dela.</translation> <translation id="6129621093834146363">O arquivo <ph name="FILE_NAME" /> é perigoso. Por isso ele foi bloqueado pelo Chromium.</translation> +<translation id="620022061217911843">O administrador exige que você reinicie o Chromium OS para que uma atualização seja aplicada</translation> <translation id="6212496753309875659">Este computador já tem uma versão mais recente do Chromium. Se o software não estiver funcionando, desinstale o Chromium e tente novamente.</translation> <translation id="6248213926982192922">Tornar o Chromium o navegador padrão</translation> <translation id="6268381023930128611">Sair do Chromium?</translation> @@ -186,8 +198,10 @@ <ph name="BEGIN_LINK_2" />Saiba mais<ph name="END_LINK_2" /> Verifique seu e-mail em <ph name="ACCOUNT_EMAIL" /> para ver mais instruções.</translation> +<translation id="7448255348454382571">Reiniciar o Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" />: Chromium Dev</translation> <translation id="7451052299415159299">O Chromium precisa de permissão para este site acessar sua câmera</translation> +<translation id="7471302858145901434">{0,plural, =1{Reiniciar o Chromium OS em um dia}one{Reiniciar o Chromium OS em # dia}other{Reiniciar o Chromium OS em # dias}}</translation> <translation id="7483335560992089831">Não é possível instalar a mesma versão do Chromium que está sendo executada. Feche o Chromium e tente novamente.</translation> <translation id="7549178288319965365">Sobre o Chromium OS</translation> <translation id="7577193603922410712">Uma atualização especial de segurança para o Chromium acaba de ser aplicada. Para que ela tenha efeito, é necessário reiniciar agora (suas guias serão restauradas).</translation> @@ -217,10 +231,13 @@ <translation id="8290862415967981663">Esse arquivo pode ser perigoso, por isso ele foi bloqueado pelo Chromium.</translation> <translation id="8330519371938183845">Faça login para sincronizar e personalizar o Chromium em todos os seus dispositivos</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> estava usando o Chromium anteriormente</translation> +<translation id="8375950122744241554">Os perfis de usuários supervisionados não estarão mais disponíveis a partir do Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{O Chromium será reiniciado em 1 hora}one{O Chromium será reiniciado em # hora}other{O Chromium será reiniciado em # horas}}</translation> <translation id="8453117565092476964">O arquivo de instalação está corrompido ou não é válido. Faça o download do Chromium novamente.</translation> <translation id="8493179195440786826">O Chromium está desatualizado</translation> <translation id="85843667276690461">Obter ajuda para usar o Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Autores do Chromium. Todos os direitos reservados.</translation> +<translation id="8599548569518771270">{0,plural, =0{O Chromium OS será reiniciado agora}=1{O Chromium OS será reiniciado em 1 segundo}one{O Chromium OS será reiniciado em # segundo}other{O Chromium OS será reiniciado em # segundos}}</translation> <translation id="8619360774459241877">Iniciando o Chromium…</translation> <translation id="8621669128220841554">Falha na instalação devido a um erro não especificado. Faça o download do Chromium novamente.</translation> <translation id="8628626585870903697">O Chromium não inclui o visualizador de PDF que é necessário para que a visualização de impressão funcione.</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb index 4422fb8..89a6759 100644 --- a/chrome/app/resources/chromium_strings_ro.xtb +++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Instalează Chromium pe telefon. Vom trimite un SMS la numărul de telefon de recuperare a contului.</translation> <translation id="1174473354587728743">Folosești un computer în comun? Acum poți să configurezi Chromium exact cum îți place.</translation> <translation id="1185134272377778587">Despre Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium se va relansa acum}=1{Chromium se va relansa într-o secundă}few{Chromium se va relansa în # secunde}other{Chromium se va relansa în # de secunde}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Relansează Chromium în cel mult o zi}few{Relansează Chromium în cel mult # zile}other{Relansează Chromium în cel mult # de zile}}</translation> <translation id="1298199220304005244">Obțineți ajutor în legătură cu utilizarea sistemului de operare Chromium</translation> <translation id="1396446129537741364">Chromium încearcă să afișeze parolele.</translation> <translation id="1414495520565016063">V-ați conectat la Chromium!</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Reinstalați Chromium</translation> <translation id="1869480248812203386">Puteți contribui la un produs Chromium mai sigur și mai ușor de folosit raportând automat la Google detaliile eventualelor incidente privind securitatea.</translation> <translation id="1881322772814446296">Vă conectați cu un cont gestionat și îi permiteți administratorului acestuia controlul asupra profilului dvs. Chromium. Datele Chromium, cum ar fi aplicațiile, marcajele, istoricul, parolele și alte setări vor fi asociate definitiv cu <ph name="USER_NAME" />. Veți putea să ștergeți aceste date prin intermediul Tabloului de bord pentru Conturi Google, însă nu veți putea să asociați aceste date cu alt cont. Aveți opțiunea de a crea un profil nou, pentru a păstra separat datele Chromium existente. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Este disponibilă o actualizare Chromium}=1{Este disponibilă o actualizare Chromium}few{O actualizare Chromium este disponibilă de # zile}other{O actualizare Chromium este disponibilă de # de zile}}</translation> <translation id="1929939181775079593">Chromium nu mai răspunde. Îl reporniți acum?</translation> <translation id="1966382378801805537">Chromium nu poate determina sau seta browserul prestabilit</translation> <translation id="2008474315282236005">Astfel, se va șterge 1 element de pe acest dispozitiv. Pentru a recupera datele mai târziu, conectează-te la Chromium ca <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">Chromium este actualizat</translation> <translation id="3032787606318309379">Se adaugă la Chromium...</translation> <translation id="3046695367536568084">Trebuie să vă conectați la Chromium pentru a folosi aplicațiile. Astfel, Chromium vă poate sincroniza aplicațiile, marcajele, istoricul, parolele și alte setări pe toate dispozitivele.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium se va relansa într-un minut}few{Chromium se va relansa în # minute}other{Chromium se va relansa în # de minute}}</translation> <translation id="3068515742935458733">Contribuie la îmbunătățirea proiectului Chromium trimițând la Google rapoarte de blocare și <ph name="UMA_LINK" /></translation> <translation id="3103660991484857065">Programul de instalare nu a putut decomprima arhiva. Descărcați din nou Chromium.</translation> <translation id="3130323860337406239">Chromium utilizează microfonul.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Se actualizează Chromium...</translation> <translation id="358997566136285270">Sigla Chromium</translation> <translation id="3713809861844741608">Deschide linkul într-o &filă Chromium nouă</translation> +<translation id="3728336900324680424">Chromium îți va accesa spațiul de stocare Drive pentru a face sugestii în bara de adrese</translation> <translation id="3762167353400286894">Sistemul de operare Chromium este afișat în această limbă</translation> <translation id="378917192836375108">Chromium vă permite să dați clic pe un număr de telefon de pe web pentru a-l apela cu Skype!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation> <translation id="3852700440713538496">Fixează Chromium pe bara de activități</translation> <translation id="3889543394854987837">Dați clic pe numele dvs. pentru a deschide Chromium și a începe să navigați.</translation> <translation id="3898493977366060150">Navigare pe web cu ingeniozitatea Google</translation> +<translation id="3965668104013180445">{0,plural, =1{Sistemul de operare Chromium va reporni într-o oră}few{Sistemul de operare Chromium va reporni în # ore}other{Sistemul de operare Chromium va reporni în # de ore}}</translation> <translation id="4036079820698952681">Contribuie la îmbunătățirea browserului Chromium raportând <ph name="BEGIN_LINK" />setările actuale<ph name="END_LINK" /></translation> <translation id="4050175100176540509">În cea mai recentă versiune sunt disponibile îmbunătățiri de securitate și funcții noi importante.</translation> <translation id="407254336480250557">Selectează <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium este în modul fundal.</translation> <translation id="4987820182225656817">Invitații pot folosi Chromium fără a lăsa nicio urmă.</translation> <translation id="4994636714258228724">Adăugați-vă la Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Este disponibilă o actualizare a sistemului de operare Chromium}=1{Este disponibilă o actualizare a sistemului de operare Chromium}few{O actualizare a sistemului de operare Chromium este disponibilă de # zile}other{O actualizare a sistemului de operare Chromium este disponibilă de # de zile}}</translation> <translation id="5032989939245619637">Salvați detaliile în Chromium</translation> <translation id="5045248521775609809">Ia Chromium pretutindeni</translation> <translation id="5116586539350239523">Chromium va stoca în siguranță detaliile personale, pentru a nu fi necesar să le introduci din nou.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">Sistemul de operare Chromium nu poate deschide pagina.</translation> <translation id="5480860683791598150">Chromium are nevoie de acces la locația ta ca să permită accesul la locație pentru acest site</translation> <translation id="549669000822060376">Așteaptă până când Chromium instalează cele mai recente actualizări de sistem.</translation> +<translation id="5514308096618405748">Sistemul de operare Chrome este posibil datorită unui <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> suplimentar, cum ar fi Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Sistemul de operare Chromium va reporni într-un minut}few{Sistemul de operare Chromium va reporni în # minute}other{Sistemul de operare Chromium va reporni în # de minute}}</translation> <translation id="5631814766731275228">Numele și imaginea profilului Chromium</translation> <translation id="5634636535844844681">Chromium necesită Windows 7 sau o versiune ulterioară.</translation> <translation id="5680901439334282664">conectează-te la Chromium</translation> <translation id="5698481217667032250">Afișează Chromium în această limbă</translation> +<translation id="5712253116097046984">Administratorul solicită să repornești sistemul de operare Chromium pentru a aplica această actualizare</translation> <translation id="5726838626470692954">Administratorul trebuie să te elimine și să te adauge din nou în Chromium.</translation> <translation id="5768914737813585044">Afișează sistemul de operare Chromium în această limbă</translation> <translation id="5796460469508169315">Chromium este aproape configurat.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923">Extensia <ph name="EXTENSION_NAME" /> a fost adăugată la Chromium</translation> <translation id="608189560609172163">Chromium nu a putut sincroniza datele din cauza unei erori la conectare.</translation> <translation id="6096348254544841612">Personalizează și controlează Chromium. Este disponibilă o actualizare.</translation> +<translation id="6120345080069858279">Chromium va salva parola în Contul tău Google. Nu va trebui să o reții.</translation> <translation id="6129621093834146363"><ph name="FILE_NAME" /> este periculos, așadar Chromium l-a blocat.</translation> +<translation id="620022061217911843">Administratorul solicită să repornești sistemul de operare Chromium pentru a aplica o actualizare</translation> <translation id="6212496753309875659">Acest computer are deja o versiune mai recentă de Chromium. Dacă software-ul nu funcționează, dezinstalați Chromium și încercați din nou.</translation> <translation id="6248213926982192922">Setați Chromium ca browser prestabilit</translation> <translation id="6268381023930128611">Te deconectezi de la Chromium?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />Află mai multe<ph name="END_LINK_2" /> Verifică e-mailul la <ph name="ACCOUNT_EMAIL" /> pentru instrucțiuni suplimentare.</translation> +<translation id="7448255348454382571">Repornește sistemul de operare Chromium</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium pentru dezvoltatori</translation> <translation id="7451052299415159299">Chromium are nevoie de permisiune ca să acceseze camera foto pentru acest site</translation> +<translation id="7471302858145901434">{0,plural, =1{Repornește sistemul de operare Chromium în cel mult o zi}few{Repornește sistemul de operare Chromium în cel mult # zile}other{Repornește sistemul de operare Chromium în cel mult # de zile}}</translation> <translation id="7483335560992089831">Nu se poate instala aceeași versiune de Chromium care rulează în prezent. Închideți Chromium și încercați din nou.</translation> <translation id="7549178288319965365">Despre sistemul de operare Chromium</translation> <translation id="7577193603922410712">Tocmai a fost aplicată o actualizare de securitate specială pentru Chromium; pentru ca aceasta să intre în vigoare, îți recomandăm să repornești acum (filele vor fi restabilite).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">Este posibil ca fișierul să fie periculos, așadar Chromium l-a blocat.</translation> <translation id="8330519371938183845">Conectează-te pentru a sincroniza și a personaliza Chromium pe toate dispozitivele</translation> <translation id="8340674089072921962"><ph name="USER_EMAIL_ADDRESS" /> a folosit Chromium anterior</translation> +<translation id="8375950122744241554">Profilurile de utilizator monitorizat nu vor mai fi disponibile începând cu versiunea Chromium 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium se va relansa într-o oră}few{Chromium se va relansa în # ore}other{Chromium se va relansa în # de ore}}</translation> <translation id="8453117565092476964">Arhiva programului de instalare este deteriorată sau nevalidă. Descărcați din nou Chromium.</translation> <translation id="8493179195440786826">Chromium nu este actualizat</translation> <translation id="85843667276690461">Obțineți ajutor în legătură cu utilizarea Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> The Chromium Authors. Toate drepturile rezervate.</translation> +<translation id="8599548569518771270">{0,plural, =0{Sistemul de operare Chromium va reporni acum}=1{Sistemul de operare Chromium va reporni într-o secundă}few{Sistemul de operare Chromium va reporni în # secunde}other{Sistemul de operare Chromium va reporni în # de secunde}}</translation> <translation id="8619360774459241877">Se lansează Chromium...</translation> <translation id="8621669128220841554">Instalarea nu a reușit din cauza unei erori neprecizate. Descărcați Chromium din nou.</translation> <translation id="8628626585870903697">Chromium nu include vizualizatorul PDF care este necesar pentru funcționarea Previzualizării înainte de printare.</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb index 062c203..83f6de75 100644 --- a/chrome/app/resources/chromium_strings_sk.xtb +++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">Nainštalujte si Chromium do telefónu. Pošleme vám správu SMS na telefónne číslo na obnovenie účtu.</translation> <translation id="1174473354587728743">Zdieľať počítač? Teraz si môžete prehliadač Chromium nastaviť podľa vlastných predstáv.</translation> <translation id="1185134272377778587">Informácie o prehliadači Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium sa teraz reštartuje}=1{Chromium sa reštartuje o 1 sekundu}few{Chromium sa reštartuje o # sekundy}many{Chromium sa reštartuje o # sekundy}other{Chromium sa reštartuje o # sekúnd}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Chromium znova spustite do jedného dňa}few{Chromium znova spustite do # dní}many{Chromium znova spustite do # dňa}other{Chromium znova spustite do # dní}}</translation> <translation id="1298199220304005244">Získajte pomoc pri používaní systému Chromium OS</translation> <translation id="1396446129537741364">Prehliadač Chromium sa snaží zobraziť heslá.</translation> <translation id="1414495520565016063">Ste prihlásený/-á do prehliadača Chromium.</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Preinštalovať prehliadač Chromium</translation> <translation id="1869480248812203386">Automatickým nahlasovaním podrobností o možných bezpečnostných problémoch môžete prispieť k zvýšeniu zabezpečenia prehliadača Chromium a k zjednodušeniu jeho používania.</translation> <translation id="1881322772814446296">Prihlasujete sa pomocou spravovaného účtu a jeho správcovi dávate kontrolu nad vaším profilom Chromium. Vaše údaje prehliadača Chromium, ako sú aplikácie, záložky, história, heslá a iné nastavenia, sa natrvalo priradia k účtu <ph name="USER_NAME" />. Tieto údaje budete môcť odstrániť len pomocou panela Dashboard v Účtoch Google, ale nebudete ich môcť priradiť k inému účtu. Ak chcete, aby boli existujúce údaje prehliadača Chromium oddelené, môžete vytvoriť nový profil. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Je k dispozícii aktualizácia prehliadača Chromium}=1{Je k dispozícii aktualizácia prehliadača Chromium}few{Aktualizácia prehliadača Chromium je k dispozícii už # dni}many{Aktualizácia prehliadača Chromium je k dispozícii už # dňa}other{Aktualizácia prehliadača Chromium je k dispozícii už # dní}}</translation> <translation id="1929939181775079593">Chromium nereaguje. Chcete ho spustiť znova?</translation> <translation id="1966382378801805537">Chromium nedokáže určiť alebo nastaviť predvolený prehliadač</translation> <translation id="2008474315282236005">Táto akcia odstráni zo zariadenia jednu položku. Ak budete chcieť svoje údaje neskôr opäť načítať, prihláste sa do prehliadača Chromium ako <ph name="USER_EMAIL" />.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Prehliadač Chromium bol aktualizovaný</translation> <translation id="3032787606318309379">Pridáva sa do prehliadača Chromium...</translation> <translation id="3046695367536568084">Aplikácie môžete používať až po prihlásení do prehliadača Chromium. Prehliadaču Chromium tým umožníte synchronizovať vaše aplikácie, záložky, históriu, heslá a ďalšie nastavenia na všetkých zariadeniach.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium sa reštartuje o 1 minútu}few{Chromium sa reštartuje o # minúty}many{Chromium sa reštartuje o # minúty}other{Chromium sa reštartuje o # minút}}</translation> <translation id="3068515742935458733">Pomôcť zlepšiť prehliadač Chromium odosielaním správ o zlyhaní a <ph name="UMA_LINK" /> spoločnosti Google</translation> <translation id="3103660991484857065">Inštalačný program pri dekomprimácii archívu zlyhal. Stiahnite prehliadač Chromium znova.</translation> <translation id="3130323860337406239">Chromium používa váš mikrofón.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Prebieha aktualizácia prehliadača Chromium...</translation> <translation id="358997566136285270">Logo prehliadača Chromium</translation> <translation id="3713809861844741608">Otvoriť odkaz na novej &karte prehliadača Chromium</translation> +<translation id="3728336900324680424">Chromium bude mať prístup na váš Disk, aby mohol v paneli s adresou zobrazovať návrhy</translation> <translation id="3762167353400286894">Chromium OS sa zobrazuje v tomto jazyku</translation> <translation id="378917192836375108">Prehliadač Chromium vám umožňuje vybrať telefónne číslo na webe a zavolať naň pomocou aplikácie Skype.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Pripnutie prehliadača Chromium na panel úloh</translation> <translation id="3889543394854987837">Ak chcete otvoriť prehliadač Chromium a začať prehliadať, kliknite na svoje meno.</translation> <translation id="3898493977366060150">Prehliadanie webu pomocou inteligentných doplnkov Googlu</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium OS sa reštartuje o 1 hodinu}few{Chromium OS sa reštartuje o # hodiny}many{Chromium OS sa reštartuje o # hodiny}other{Chromium OS sa reštartuje o # hodín}}</translation> <translation id="4036079820698952681">Nahláste <ph name="BEGIN_LINK" />aktuálne nastavenia<ph name="END_LINK" /> a pomôžte tak zlepšiť prehliadač Chromium</translation> <translation id="4050175100176540509">V najnovšej verzii sú k dispozícii dôležité vylepšenia zabezpečenia a nové funkcie.</translation> <translation id="407254336480250557">Vyberte <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Chromium je v režime na pozadí.</translation> <translation id="4987820182225656817">Hostia môžu používať prehliadač Chromium bez toho, aby po sebe zanechali akékoľvek informácie.</translation> <translation id="4994636714258228724">Pridajte si účet do prehliadača Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Je k dispozícii aktualizácia systému Chromium OS}=1{Je k dispozícii aktualizácia systému Chromium OS}few{Aktualizácia systému Chromium OS je k dispozícii už # dni}many{Aktualizácia systému Chromium OS je k dispozícii už # dňa}other{Aktualizácia systému Chromium OS je k dispozícii už # dní}}</translation> <translation id="5032989939245619637">Uložiť podrobnosti v prehliadači Chromium</translation> <translation id="5045248521775609809">Vezmite si Chromium všade</translation> <translation id="5116586539350239523">Chromium vaše osobné údaje bezpečne uloží, aby ste ich už nemuseli znova zadávať.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Chromium OS nedokáže túto stránku otvoriť.</translation> <translation id="5480860683791598150">Chromium potrebuje prístup k vašej polohe, aby ju mohol zdieľať s týmto webom</translation> <translation id="549669000822060376">Počkajte, kým Chromium nainštaluje najnovšie aktualizácie systému.</translation> +<translation id="5514308096618405748">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru open source<ph name="END_LINK_CROS_OSS" />, ako je Linux (Beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium OS sa reštartuje o 1 minútu}few{Chromium OS sa reštartuje o # minúty}many{Chromium OS sa reštartuje o # minúty}other{Chromium OS sa reštartuje o # minút}}</translation> <translation id="5631814766731275228">Meno a obrázok profilu Chromium</translation> <translation id="5634636535844844681">Chromium vyžaduje Windows 7 alebo vyšší.</translation> <translation id="5680901439334282664">prihláste sa do prehliadača Chromium</translation> <translation id="5698481217667032250">Zobraziť Chromium v tomto jazyku</translation> +<translation id="5712253116097046984">Správca vás žiada o reštartovanie systému Chromium OS na použitie tejto aktualizácie</translation> <translation id="5726838626470692954">Správca vás musí odstrániť a znova pridať do prehliadača Chromium.</translation> <translation id="5768914737813585044">Zobraziť Chromium OS v tomto jazyku</translation> <translation id="5796460469508169315">Prehliadač Chromium je takmer pripravený</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923">Rozšírenie <ph name="EXTENSION_NAME" /> bolo pridané do prehliadača Chromium</translation> <translation id="608189560609172163">Prehliadaču Chromium sa nepodarilo synchronizovať vaše údaje pre chybu prihlásenia.</translation> <translation id="6096348254544841612">Prispôsobte si prehliadač Chromium a ovládajte ho. K dispozícii je aktualizácia.</translation> +<translation id="6120345080069858279">Chromium toto heslo uloží do vášho účtu Google. Nebudete si ho musieť pamätať.</translation> <translation id="6129621093834146363">Súbor <ph name="FILE_NAME" /> je nebezpečný, a preto ho prehliadač Chromium zablokoval.</translation> +<translation id="620022061217911843">Správca požaduje, aby ste reštartovali systém Chromium OS na použitie aktualizácie</translation> <translation id="6212496753309875659">Tento počítač už obsahuje novšiu verziu prehliadača Chromium. Ak softvér nefunguje, odinštalujte prehliadač Chromium a skúste to znova.</translation> <translation id="6248213926982192922">Nastavte Chromium ako svoj predvolený prehliadač</translation> <translation id="6268381023930128611">Odhlásiť sa z prehliadača Chromium?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />Ďalšie informácie<ph name="END_LINK_2" /> Ďalšie pokyny si prečítajte v e-mailovej správe odoslanej na adresu <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Reštartovanie systému Chromium OS</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Chromium Dev</translation> <translation id="7451052299415159299">Chromium potrebuje povolenie pre tento web na prístup k fotoaparátu</translation> +<translation id="7471302858145901434">{0,plural, =1{Reštartujte Chromium OS do jedného dňa}few{Reštartujte Chromium OS do # dní}many{Reštartujte Chromium OS do # dňa}other{Reštartujte Chromium OS do # dní}}</translation> <translation id="7483335560992089831">Nemôžete nainštalovať rovnakú verziu prehliadača Chromium ako je tá, ktorá je momentálne spustená. Zatvorte prehliadač Chromium a skúste to znova.</translation> <translation id="7549178288319965365">Informácie o systéme Chromium OS</translation> <translation id="7577193603922410712">Práve bola použitá mimoriadna bezpečnostná aktualizácia pre prehliadač Chromium. Zmeny sa prejavia až po jeho reštartovaní (vaše karty sa automaticky obnovia).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">Tento súbor môže byť nebezpečný, a preto ho prehliadač Chromium zablokoval.</translation> <translation id="8330519371938183845">Po prihlásení budete môcť Chromium synchronizovať a prispôsobiť v rôznych zariadeniach.</translation> <translation id="8340674089072921962">Účet <ph name="USER_EMAIL_ADDRESS" /> predtým používal Chromium</translation> +<translation id="8375950122744241554">Od verzie 70 už nebudú v prehliadači Chromium ďalej k dispozícii kontrolované profily používateľov.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium sa znova spustí do jednej hodiny}few{Chromium sa znova spustí do # hodín}many{Chromium sa znova spustí do # hodiny}other{Chromium sa znova spustí do # hodín}}</translation> <translation id="8453117565092476964">Archív inštalácie je poškodený alebo neplatný. Stiahnite prehliadač Chromium znova.</translation> <translation id="8493179195440786826">Prehliadač Chromium je zastaraný</translation> <translation id="85843667276690461">Získajte pomoc pri používaní prehliadača Chromium</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Autori Chromium. Všetky práva vyhradené.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium OS sa teraz reštartuje}=1{Chromium OS sa reštartuje o 1 sekundu}few{Chromium OS sa reštartujte o # sekundy}many{Chromium OS sa reštartujte o # sekundy}other{Chromium OS sa reštartujte o # sekúnd}}</translation> <translation id="8619360774459241877">Spúšťa sa Chromium…</translation> <translation id="8621669128220841554">Inštalácia zlyhala kvôli neznámej chybe. Skúste prehliadač Chromium stiahnuť znova.</translation> <translation id="8628626585870903697">Prehliadač Chromium neobsahuje nástroj na zobrazovanie súborov PDF, ktorý je potrebný pre funkciu Ukážka pred tlačou.</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb index c79589e..1ac8cb5 100644 --- a/chrome/app/resources/chromium_strings_sl.xtb +++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">Namestite Chromium v telefonu. Na telefonsko številko za obnovitev računa bomo poslali SMS.</translation> <translation id="1174473354587728743">Imate računalnik v skupni rabi? Zdaj lahko nastavite Chromium po svojih željah.</translation> <translation id="1185134272377778587">O Chromiumu</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium se bo zdaj znova zagnal}=1{Chromium se bo znova zagnal čez 1 sekundo}one{Chromium se bo znova zagnal čez # sekundo}two{Chromium se bo znova zagnal čez # sekundi}few{Chromium se bo znova zagnal čez # sekunde}other{Chromium se bo znova zagnal čez # sekund}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Chromium znova zaženite v enem dnevu}one{Chromium znova zaženite v # dnevu}two{Chromium znova zaženite v # dnevih}few{Chromium znova zaženite v # dnevih}other{Chromium znova zaženite v # dnevih}}</translation> <translation id="1298199220304005244">Pomoč pri uporabi sistema Chromium OS</translation> <translation id="1396446129537741364">Chromium poskuša prikazati gesla.</translation> <translation id="1414495520565016063">Prijavljeni ste v Chromium.</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Vnovična namestitev Chromiuma</translation> <translation id="1869480248812203386">S samodejnim poročanjem podrobnosti o morebitnih varnostnih dogodkih Googlu lahko pomagate narediti Chromium varnejši in preprostejši za uporabo.</translation> <translation id="1881322772814446296">Prijavljate se z upravljanim računom in s tem njegovemu skrbniku omogočate nadzor vašega profila v Chromiumu. Vaši podatki v Chromiumu, kot so aplikacije, zaznamki, zgodovina, gesla in druge nastavitve, bodo postali trajno povezani z uporabnikom <ph name="USER_NAME" />. Te podatke boste lahko izbrisali na nadzorni plošči za Google Račune, vendar jih ne boste mogli povezati z drugim računom. Če želite, lahko ustvarite nov profil, da bodo obstoječi podatki v Chromiumu ostali ločeni. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Na voljo je posodobitev za Chromium}=1{Na voljo je posodobitev za Chromium}one{Posodobitev za Chromium je na voljo že # dan}two{Posodobitev za Chromium je na voljo že # dneva}few{Posodobitev za Chromium je na voljo že # dni}other{Posodobitev za Chromium je na voljo že # dni}}</translation> <translation id="1929939181775079593">Chromium se ne odziva. Ga želite znova zagnati?</translation> <translation id="1966382378801805537">Chromium ne more določiti ali nastaviti privzetega brskalnika</translation> <translation id="2008474315282236005">S tem bo iz te naprave izbrisan 1 element. Če želite pozneje prenesti podatke, se v Chromium prijavite kot <ph name="USER_EMAIL" />.</translation> @@ -55,6 +58,7 @@ <translation id="2977470724722393594">Chromium je posodobljen</translation> <translation id="3032787606318309379">Dodajanje v Chromium ...</translation> <translation id="3046695367536568084">Če želite uporabljati aplikacije, morate biti prijavljeni v Chromium. Ko se prijavite, lahko Chromium sinhronizira aplikacije, zaznamke, zgodovino in druge nastavitve v različnih napravah.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium se bo znova zagnal čez 1 minuto}one{Chromium se bo znova zagnal čez # minuto}two{Chromium se bo znova zagnal čez # minuti}few{Chromium se bo znova zagnal čez # minute}other{Chromium se bo znova zagnal čez # minut}}</translation> <translation id="3068515742935458733">Pomagajte izboljšati Chromium – Googlu pošiljajte poročila o zrušitvah in ta dokument: <ph name="UMA_LINK" />.</translation> <translation id="3103660991484857065">Namestitvenemu programu ni uspelo razširiti arhiva. Znova prenesite Chromium.</translation> <translation id="3130323860337406239">Chromium uporablja vaš mikrofon.</translation> @@ -76,12 +80,14 @@ <translation id="3582788516608077514">Posodabljanje Chromiuma ...</translation> <translation id="358997566136285270">Logotip Chromiuma</translation> <translation id="3713809861844741608">Odpiranje povezave na novem &zavihku v Chromiumu</translation> +<translation id="3728336900324680424">Chromium bo dostopal do Googla Drive zaradi ponujanja predlogov v naslovni vrstici</translation> <translation id="3762167353400286894">OS Chromium je v tem jeziku</translation> <translation id="378917192836375108">Chromium omogoča, da v spletu kliknete telefonsko številko in jo pokličete prek Skypa.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Pripenjanje Chromiuma v opravilno vrstico</translation> <translation id="3889543394854987837">Kliknite ime, da odprete Chromium in začnete brskati.</translation> <translation id="3898493977366060150">Brskanje po spletu z Googlovimi pametnimi rešitvami</translation> +<translation id="3965668104013180445">{0,plural, =1{OS Chromium se bo znova zagnal čez eno uro}one{OS Chromium se bo znova zagnal čez # uro}two{OS Chromium se bo znova zagnal čez # uri}few{OS Chromium se bo znova zagnal čez # ure}other{OS Chromium se bo znova zagnal čez # ur}}</translation> <translation id="4036079820698952681">Pomagajte izboljšati Chromium s poročanjem o <ph name="BEGIN_LINK" />trenutnih nastavitvah<ph name="END_LINK" /></translation> <translation id="4050175100176540509">V najnovejši različici so na voljo pomembne varnostne izboljšave in nove funkcije.</translation> <translation id="407254336480250557">Izberite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -108,6 +114,7 @@ <translation id="4943838377383847465">Chromium se izvaja v ozadju.</translation> <translation id="4987820182225656817">Gostje lahko uporabljajo Chromium, ne da bi za seboj pustili kar koli.</translation> <translation id="4994636714258228724">Dodajte se v Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Na voljo je posodobitev za OS Chromium}=1{Na voljo je posodobitev za OS Chromium}one{Posodobitev za OS Chromium je na voljo že # dan}two{Posodobitev za OS Chromium je na voljo že # dneva}few{Posodobitev za OS Chromium je na voljo že # dni}other{Posodobitev za OS Chromium je na voljo že # dni}}</translation> <translation id="5032989939245619637">Shrani podrobnosti v Chromium</translation> <translation id="5045248521775609809">Naj vas Chromium spremlja povsod</translation> <translation id="5116586539350239523">Chromium bo varno shranil vaše osebne podatke, tako da vam jih ne bo treba več vnesti.</translation> @@ -120,10 +127,13 @@ <translation id="5479196819031988440">OS Chromium ne more odpreti te strani.</translation> <translation id="5480860683791598150">Chromium potrebuje dostop do vaše lokacije, da jo bo lahko delil s tem spletnim mestom</translation> <translation id="549669000822060376">Počakajte, da Chromium namesti najnovejše sistemske posodobitve.</translation> +<translation id="5514308096618405748">OS Chrome omogoča dodatna <ph name="BEGIN_LINK_CROS_OSS" />odprtokodna programska oprema<ph name="END_LINK_CROS_OSS" />, kot je Linux (beta).</translation> +<translation id="5529843986978123325">{0,plural, =1{OS Chromium se bo znova zagnal čez 1 minuto}one{OS Chromium se bo znova zagnal čez # minuto}two{OS Chromium se bo znova zagnal čez # minuti}few{OS Chromium se bo znova zagnal čez # minute}other{OS Chromium se bo znova zagnal čez # minut}}</translation> <translation id="5631814766731275228">Ime in slika za Chromium</translation> <translation id="5634636535844844681">Za Chromium potrebujete Windows 7 ali novejši.</translation> <translation id="5680901439334282664">se prijavite v Chromium</translation> <translation id="5698481217667032250">Prikaži Chromium v tem jeziku</translation> +<translation id="5712253116097046984">Skrbnik prosi, da za uveljavitev te posodobitve znova zaženete OS Chromium</translation> <translation id="5726838626470692954">Skrbnik vas mora odstraniti iz Chromiuma in vas znova dodati.</translation> <translation id="5768914737813585044">Prikaži Chromium OS v tem jeziku</translation> <translation id="5796460469508169315">Chromium je skoraj pripravljen.</translation> @@ -140,7 +150,9 @@ <translation id="6072279588547424923">Razširitev <ph name="EXTENSION_NAME" /> je dodana v Chromium</translation> <translation id="608189560609172163">Chromium ni mogel sinhronizirati podatkov zaradi napake pri prijavi.</translation> <translation id="6096348254544841612">Prilagodite in nadzirajte Chromium. Posodobitev je na voljo.</translation> +<translation id="6120345080069858279">Chromium bo shranil to geslo v Google Računu. Ni si vam ga treba zapomniti.</translation> <translation id="6129621093834146363">Datoteka <ph name="FILE_NAME" /> je nevarna, zato jo je Chromium blokiral.</translation> +<translation id="620022061217911843">Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete OS Chromium</translation> <translation id="6212496753309875659">Ta računalnik že ima novejšo različico Chromiuma. Če programska oprema ne deluje, odstranite Chromium in poskusite znova.</translation> <translation id="6248213926982192922">Nastavi Chromium kot privzeti brskalnik</translation> <translation id="6268381023930128611">Se želite odjaviti iz Chromiuma?</translation> @@ -194,8 +206,10 @@ <ph name="BEGIN_LINK_2" />Več o tem<ph name="END_LINK_2" /> Nadaljnja navodila preberite v e-poštnem sporočilu, ki ste ga prejeli na <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Vnovičen zagon OS-a Chromium</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – različica Chromiuma za razvijalce</translation> <translation id="7451052299415159299">Chromium potrebuje dovoljenje za dostop do fotoaparata za to spletno mesto</translation> +<translation id="7471302858145901434">{0,plural, =1{OS Chromium znova zaženite v enem dnevu}one{OS Chromium znova zaženite v # dnevu}two{OS Chromium znova zaženite v # dnevih}few{OS Chromium znova zaženite v # dnevih}other{OS Chromium znova zaženite v # dnevih}}</translation> <translation id="7483335560992089831">Ni mogoče namestiti iste različice Chromiuma, ki se trenutno izvaja. Zaprite Chromium in poskusite znova.</translation> <translation id="7549178288319965365">O sistemu Chromium OS</translation> <translation id="7577193603922410712">Pravkar je bila nameščena posebna varnostna posodobitev za Chromium. Zdaj znova zaženite računalnik, da bo uveljavljena (vaše zavihke bomo obnovili).</translation> @@ -225,10 +239,13 @@ <translation id="8290862415967981663">Ta datoteka je morda nevarna, zato jo je Chromium blokiral.</translation> <translation id="8330519371938183845">Prijavite se, da boste lahko Chromium sinhronizirali in prilagodili v vseh svojih napravah</translation> <translation id="8340674089072921962">Uporabnik <ph name="USER_EMAIL_ADDRESS" /> je prej uporabljal Chromium</translation> +<translation id="8375950122744241554">S Chromiumom 70 profili zaščitenih uporabnikov ne bodo več na voljo.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium se bo znova zagnal čez eno uro}one{Chromium se bo znova zagnal čez # uro}two{Chromium se bo znova zagnal čez # uri}few{Chromium se bo znova zagnal čez # ure}other{Chromium se bo znova zagnal čez # ur}}</translation> <translation id="8453117565092476964">Arhiv namestitvenega programa je poškodovan ali neveljaven. Znova prenesite Chromium.</translation> <translation id="8493179195440786826">Chromium je zastarel</translation> <translation id="85843667276690461">Pomoč pri uporabi Chromiuma</translation> <translation id="8586442755830160949">Copyright <ph name="YEAR" /> Ustvarjalci Chromiuma. Vse pravice pridržane.</translation> +<translation id="8599548569518771270">{0,plural, =0{OS Chromium se bo zdaj znova zagnal}=1{OS Chromium se bo znova zagnal čez 1 sekundo}one{OS Chromium se bo znova zagnal čez # sekundo}two{OS Chromium se bo znova zagnal čez # sekundi}few{OS Chromium se bo znova zagnal čez # sekunde}other{OS Chromium se bo znova zagnal čez # sekund}}</translation> <translation id="8619360774459241877">Zagon Chromiuma …</translation> <translation id="8621669128220841554">Namestitev ni uspela zaradi nenavedene napake. Znova prenesite Chromium.</translation> <translation id="8628626585870903697">Chromium nima pregledovalnika datotek PDF, ki je potreben za predogled tiskanja.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb index ddaf216..ff628367 100644 --- a/chrome/app/resources/chromium_strings_sr.xtb +++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -10,6 +10,8 @@ <translation id="1170115874949214249">Инсталирајте Chromium на телефону. Послаћемо вам SMS на број телефона за враћање приступа налогу.</translation> <translation id="1174473354587728743">Делите рачунар? Сада можете да подесите Chromium баш онако како вама одговара.</translation> <translation id="1185134272377778587">О Chromium-у</translation> +<translation id="1209657686917656928">{0,plural, =0{Поново ћемо покренути Chromium}=1{Поново ћемо покренути Chromium за 1 секунду}one{Поново ћемо покренути Chromium за # секунду}few{Поново ћемо покренути Chromium за # секунде}other{Поново ћемо покренути Chromium за # секунди}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Поново покрените Chromium за један дан}one{Поново покрените Chromium за # дан}few{Поново покрените Chromium за # дана}other{Поново покрените Chromium за # дана}}</translation> <translation id="1298199220304005244">Пронађи помоћ за коришћење Chromium ОС-а</translation> <translation id="1396446129537741364">Chromium покушава да прикаже лозинке.</translation> <translation id="1414495520565016063">Пријављени сте на Chromium!</translation> @@ -25,6 +27,7 @@ <translation id="1808667845054772817">Поново инсталирај Chromium</translation> <translation id="1869480248812203386">Можете да помогнете да Chromium буде безбеднији и једноставнији за коришћење ако аутоматски пријављујете Google-у детаље могућих безбедносних инцидената.</translation> <translation id="1881322772814446296">Пријављујете се помоћу налога којим се управља и дајете његовом администратору контролу над Chromium профилом. Chromium подаци, као што су апликације, обележивачи, историја, лозинке и друга подешавања, биће трајно повезани са налогом <ph name="USER_NAME" />. Моћи ћете да избришете те податке преко Контролне табле Google налога, али нећете моћи да их повежете са неким другим налогом. Можете опционално да направите нови профил да би постојећи Chromium подаци остали одвојени. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Ажурирање за Chromium је доступно}=1{Ажурирање за Chromium је доступно}one{Ажурирање за Chromium је доступно већ # дан}few{Ажурирање за Chromium је доступно већ # дана}other{Ажурирање за Chromium је доступно већ # дана}}</translation> <translation id="1929939181775079593">Chromium не реагује. Желите ли да га одмах поново покренете?</translation> <translation id="1966382378801805537">Chromium не може да одреди ни да подеси подразумевани прегледач</translation> <translation id="2008474315282236005">Овим ћете избрисати 1 ставку са овог уређаја. Да бисте касније вратили податке, пријавите се у Chromium као <ph name="USER_EMAIL" />.</translation> @@ -54,6 +57,7 @@ <translation id="2977470724722393594">Chromium је ажуриран</translation> <translation id="3032787606318309379">Додавање у Chromium...</translation> <translation id="3046695367536568084">Треба да будете пријављени у Chromium да бисте користили апликације. То омогућава Chromium-у да синхронизује апликације, обележиваче, историју, лозинке и друга подешавања на свим уређајима.</translation> +<translation id="3052899382720782935">{0,plural, =1{Поново ћемо покренути Chromium за 1 минут}one{Поново ћемо покренути Chromium за # минут}few{Поново ћемо покренути Chromium за # минута}other{Поново ћемо покренути Chromium за # минута}}</translation> <translation id="3068515742935458733">Помозите нам да побољшамо Chromium тако што ћете Google-у слати извештаје о отказивању и <ph name="UMA_LINK" /></translation> <translation id="3103660991484857065">Програм за инсталацију није успео да декомпримује архиву. Преузмите Chromium поново.</translation> <translation id="3130323860337406239">Chromium користи микрофон.</translation> @@ -75,12 +79,14 @@ <translation id="3582788516608077514">Ажурирање Chromium-а...</translation> <translation id="358997566136285270">Chromium логотип</translation> <translation id="3713809861844741608">Отвори линк у новој Chromium &картици</translation> +<translation id="3728336900324680424">Chromium ће приступати Диску да би приказивао предлоге на траци за адресу</translation> <translation id="3762167353400286894">Chromium ОС се приказује на овом језику</translation> <translation id="378917192836375108">Chromium вам омогућава да кликнете на број телефона на вебу и да га позовете помоћу Skype-а!</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Закачите Chromium на траку задатака</translation> <translation id="3889543394854987837">Кликните на име да бисте отворили Chromium и почните да прегледате.</translation> <translation id="3898493977366060150">Веб-прегледање помоћу паметних Google функција</translation> +<translation id="3965668104013180445">{0,plural, =1{Chromium ОС ће се рестартовати за један сат}one{Chromium ОС ће се рестартовати за # сат}few{Chromium ОС ће се рестартовати за # сата}other{Chromium ОС ће се рестартовати за # сати}}</translation> <translation id="4036079820698952681">Помозите да побољшамо Chromium тако што ћете послати извештај о <ph name="BEGIN_LINK" />актуелним подешавањима<ph name="END_LINK" /></translation> <translation id="4050175100176540509">Важна безбедносна побољшања и нове функције су доступни у најновијој верзији.</translation> <translation id="407254336480250557">Изаберите <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -107,6 +113,7 @@ <translation id="4943838377383847465">Chromium је у позадинском режиму.</translation> <translation id="4987820182225656817">Гости могу да користе Chromium а да не остављају никакве трагове.</translation> <translation id="4994636714258228724">Додајте себе у Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Ажурирање за Chromium ОС је доступно}=1{Ажурирање за Chromium ОС је доступно}one{Ажурирање за Chromium ОС је доступно већ # дан}few{Ажурирање за Chromium ОС је доступно већ # дана}other{Ажурирање за Chromium ОС је доступно већ # дана}}</translation> <translation id="5032989939245619637">Сачувај детаље у Chromium-у</translation> <translation id="5045248521775609809">Нека Chromium буде увек са вама</translation> <translation id="5116586539350239523">Chromium ће безбедно складиштити личне податке да не бисте морали да их поново уносите.</translation> @@ -119,10 +126,13 @@ <translation id="5479196819031988440">Chromium ОС не може да отвори ову страницу.</translation> <translation id="5480860683791598150">Chromium тражи приступ вашој локацији да бисте је делили са овим сајтом</translation> <translation id="549669000822060376">Сачекајте да Chromium инсталира најновија ажурирања система.</translation> +<translation id="5514308096618405748">Chrome ОС је омогућен захваљујући додатном <ph name="BEGIN_LINK_CROS_OSS" />софтверу са отвореним кодом<ph name="END_LINK_CROS_OSS" />, као и Linux (бета).</translation> +<translation id="5529843986978123325">{0,plural, =1{Chromium ОС ће се рестартовати за 1 минут}one{Chromium ОС ће се рестартовати за # минут}few{Chromium ОС ће се рестартовати за # минута}other{Chromium ОС ће се рестартовати за # минута}}</translation> <translation id="5631814766731275228">Назив и слика Chromium профила</translation> <translation id="5634636535844844681">За Chromium је потребан Windows 7 или новија верзија.</translation> <translation id="5680901439334282664">пријавите се на Chromium</translation> <translation id="5698481217667032250">Приказуј Chromium на овом језику</translation> +<translation id="5712253116097046984">Администратор тражи да рестартујете Chromium ОС да бисте применили ово ажурирање</translation> <translation id="5726838626470692954">Менаџер мора да вас уклони из Chromium-а, па да вас поново дода.</translation> <translation id="5768914737813585044">Приказуј Chromium ОС на овом језику</translation> <translation id="5796460469508169315">Chromium је скоро спреман.</translation> @@ -139,7 +149,9 @@ <translation id="6072279588547424923">Додатак <ph name="EXTENSION_NAME" /> је додат у Chromium</translation> <translation id="608189560609172163">Chromium не може да синхронизује податке због грешке при пријављивању.</translation> <translation id="6096348254544841612">Прилагодите и контролишите Chromium. Доступно је ажурирање.</translation> +<translation id="6120345080069858279">Chromium ће сачувати ову лозинку на Google налогу. Нећете морати да је памтите.</translation> <translation id="6129621093834146363">Датотека <ph name="FILE_NAME" /> је опасна, па ју је Chromium блокирао.</translation> +<translation id="620022061217911843">Администратор захтева да рестартујете Chromium ОС да бисте применили ажурирање</translation> <translation id="6212496753309875659">Овај рачунар већ има новију верзију Chromium-а. Ако софтвер не функционише, деинсталирајте Chromium и покушајте поново.</translation> <translation id="6248213926982192922">Подеси Chromium за подразумевани прегледач</translation> <translation id="6268381023930128611">Желите ли да се одјавите из Chromium-а?</translation> @@ -193,8 +205,10 @@ <ph name="BEGIN_LINK_2" />Сазнајте више<ph name="END_LINK_2" /> Потражите даља упутства у имејлу на <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Рестартујте Chromium ОС</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Програмерска верзија Chromium-а</translation> <translation id="7451052299415159299">Chromium тражи дозволу да приступи камери за овај сајт</translation> +<translation id="7471302858145901434">{0,plural, =1{Рестартујте Chromium ОС за један дан}one{Рестартујте Chromium ОС за # дан}few{Рестартујте Chromium ОС за # дана}other{Рестартујте Chromium ОС за # дана}}</translation> <translation id="7483335560992089831">Није могуће инсталирати исту верзију Chromium-а која се тренутно користи. Затворите Chromium и покушајте поново.</translation> <translation id="7549178288319965365">О Chromium ОС-у</translation> <translation id="7577193603922410712">Посебно безбедносно ажурирање за Chromium је управо примењено. Сада треба поново да покренете Chromium да би ажурирање ступило на снагу (вратићемо картице).</translation> @@ -224,10 +238,13 @@ <translation id="8290862415967981663">Ова датотека је можда опасна, па ју је Chromium блокирао.</translation> <translation id="8330519371938183845">Пријавите се да бисте синхронизовали и персонализовали Chromium на свим уређајима</translation> <translation id="8340674089072921962">Корисник <ph name="USER_EMAIL_ADDRESS" /> је претходно користио Chromium</translation> +<translation id="8375950122744241554">Профили корисника под надзором неће више бити доступни почев од Chromium верзије 70.</translation> +<translation id="8379713241968949941">{0,plural, =1{Поново ћемо покренути Chromium за један сат}one{Поново ћемо покренути Chromium за # сат}few{Поново ћемо покренути Chromium за # сата}other{Поново ћемо покренути Chromium за # сати}}</translation> <translation id="8453117565092476964">Архива програма за инсталацију је оштећена или неважећа. Преузмите Chromium поново.</translation> <translation id="8493179195440786826">Chromium је застарео</translation> <translation id="85843667276690461">Пронађи помоћ за коришћење Chromium-а</translation> <translation id="8586442755830160949">Ауторска права <ph name="YEAR" />. Аутори Chromium-а. Сва права задржана.</translation> +<translation id="8599548569518771270">{0,plural, =0{Chromium ОС ће се рестартовати}=1{Chromium ОС ће се рестартовати за 1 секунду}one{Chromium ОС ће се рестартовати за # секунду}few{Chromium ОС ће се рестартовати за # секунде}other{Chromium ОС ће се рестартовати за # секунди}}</translation> <translation id="8619360774459241877">Покреће се Chromium...</translation> <translation id="8621669128220841554">Инсталација није успела због неодређене грешке. Преузмите Chromium поново.</translation> <translation id="8628626585870903697">Chromium не садржи PDF приказивач који је потребан да би Приказ пре штампања функционисао.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb index 77d68ce..9fbc7b1e 100644 --- a/chrome/app/resources/chromium_strings_te.xtb +++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -207,6 +207,7 @@ <translation id="7962572577636132072">Chromium స్వయంచాలకంగా నవీకరించబడుతుంది కనుక మీరు ఎల్లప్పుడూ తాజా సంస్కరణను కలిగి ఉంటారు.</translation> <translation id="7975919845073681630">ఇది Chromium యొక్క రెండవ ఇన్స్టాలేషన్, దీన్ని మీ డిఫాల్ట్ బ్రౌజర్గా చేయడం సాధ్యపడదు.</translation> <translation id="7979877361127045932">Chromium మెనులో దాచండి</translation> +<translation id="8013436988911883588">ఓసారి Chromeకి యాక్సెస్ లభించాక, ఆపై వెబ్సైట్లకు ఏమైనా యాక్సెస్ కావాలంటే మిమ్మల్ని అడగవచ్చు.</translation> <translation id="8030318113982266900">మీ పరికరాన్ని <ph name="CHANNEL_NAME" /> ఛానెల్కి నవీకరిస్తోంది...</translation> <translation id="8157153840442649507">Chromium ఈ భాషలో ప్రదర్శించబడుతోంది</translation> <translation id="81770708095080097">ఈ ఫైల్ అపాయకరమైనది, కాబట్టి Chromium దీన్ని బ్లాక్ చేసింది.</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb index c366a48..c486a158 100644 --- a/chrome/app/resources/chromium_strings_uk.xtb +++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -8,6 +8,8 @@ <translation id="1170115874949214249">Установіть Chromium на телефоні. Ми надішлемо SMS на номер телефону для відновлення облікового запису.</translation> <translation id="1174473354587728743">Користуєтеся комп’ютером спільно з іншими? Тепер ви можете налаштувати Chromium на свій смак.</translation> <translation id="1185134272377778587">Про Chromium</translation> +<translation id="1209657686917656928">{0,plural, =0{Chromium перезапуститься зараз}=1{Chromium перезапуститься через 1 секунду}one{Chromium перезапуститься через # секунду}few{Chromium перезапуститься через # секунди}many{Chromium перезапуститься через # секунд}other{Chromium перезапуститься через # секунди}}</translation> +<translation id="1267419686153937460">{0,plural, =1{Перезапустіть Chromium упродовж дня}one{Перезапустіть Chromium упродовж # дня}few{Перезапустіть Chromium упродовж # днів}many{Перезапустіть Chromium упродовж # днів}other{Перезапустіть Chromium упродовж # дня}}</translation> <translation id="1298199220304005244">Отримати довідку щодо користування ОС Chromium</translation> <translation id="1396446129537741364">Chromium намагається показати паролі.</translation> <translation id="1414495520565016063">Ви ввійшли в Chromium.</translation> @@ -23,6 +25,7 @@ <translation id="1808667845054772817">Перевстановити Chromium</translation> <translation id="1869480248812203386">Ви можете допомогти зробити Chromium безпечнішим і простішим у користуванні, автоматично повідомляючи Google деталі щодо можливого порушення безпеки.</translation> <translation id="1881322772814446296">Ви входите, використовуючи дані облікового запису, яким керує адміністратор. Адміністратор може контролювати ваш профіль Chromium. Ваші дані Chromium, як-от програми, закладки, історія, паролі й інші налаштування, буде назавжди пов’язано з обліковим записом <ph name="USER_NAME" />. Ці дані можна видалити на інформаційній панелі Облікових записів Google, але ви не зможете пов’язати їх з іншим обліковим записом. Проте ви можете створити новий профіль, щоб зберігати наявні дані Chromium окремо. <ph name="LEARN_MORE" /></translation> +<translation id="1895626441344023878">{0,plural, =0{Доступне оновлення Chromium}=1{Доступне оновлення Chromium}one{Оновлення Chromium доступне вже # день}few{Оновлення Chromium доступне вже # дні}many{Оновлення Chromium доступне вже # днів}other{Оновлення Chromium доступне вже # дня}}</translation> <translation id="1929939181775079593">Chromium не відповідає. Перезапустити зараз?</translation> <translation id="1966382378801805537">Chromium не може визначити чи встановити веб-переглядач за умовчанням</translation> <translation id="2008474315282236005">1 елемент буде видалено з цього пристрою. Щоб відновити дані пізніше, увійдіть в обліковий запис Chromium як <ph name="USER_EMAIL" />.</translation> @@ -52,6 +55,7 @@ <translation id="2977470724722393594">У вас остання версія Chromium</translation> <translation id="3032787606318309379">Додавання в Chromium...</translation> <translation id="3046695367536568084">Щоб користуватися додатками, потрібно ввійти в Chromium. Це дозволяє веб-переглядачу Chromium синхронізувати ваші додатки, закладки, історію, паролі й інші налаштування на різних пристроях.</translation> +<translation id="3052899382720782935">{0,plural, =1{Chromium перезапуститься через 1 хвилину}one{Chromium перезапуститься через # хвилину}few{Chromium перезапуститься через # хвилини}many{Chromium перезапуститься через # хвилин}other{Chromium перезапуститься через # хвилини}}</translation> <translation id="3068515742935458733">Допоможіть покращити Chromium, надсилаючи звіти про аварійне завершення роботи та <ph name="UMA_LINK" /> в Google</translation> <translation id="3103660991484857065">Програмі встановлення не вдалося видобути архів. Завантажте Chromium ще раз.</translation> <translation id="3130323860337406239">Chromium використовує ваш мікрофон.</translation> @@ -73,12 +77,14 @@ <translation id="3582788516608077514">Оновлення Chromium...</translation> <translation id="358997566136285270">Логотип Chromium</translation> <translation id="3713809861844741608">Відкрити посилання в новій &вкладці Chromium</translation> +<translation id="3728336900324680424">Chromium матиме доступ до Диска, щоб робити пропозиції в адресному рядку</translation> <translation id="3762167353400286894">Для ОС Chromium вибрано цю мову</translation> <translation id="378917192836375108">Chromium дозволяє натиснути номер телефону в Інтернеті та зателефонувати за ним через Skype.</translation> <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> – Chromium</translation> <translation id="3852700440713538496">Як закріпити значок Chromium на панелі завдань</translation> <translation id="3889543394854987837">Натисніть своє ім’я, щоб відкрити Chromium і розпочати перегляд сайтів.</translation> <translation id="3898493977366060150">Перегляд веб-сторінок із розумними функціями Google</translation> +<translation id="3965668104013180445">{0,plural, =1{ОС Chromium перезапуститься через годину}one{ОС Chromium перезапуститься через # годину}few{ОС Chromium перезапуститься через # години}many{ОС Chromium перезапуститься через # годин}other{ОС Chromium перезапуститься через # години}}</translation> <translation id="4036079820698952681">Допоможіть покращити Chromium, надсилаючи звіти про <ph name="BEGIN_LINK" />поточні налаштування<ph name="END_LINK" /></translation> <translation id="4050175100176540509">В останній версії покращено безпеку та додано нові функції.</translation> <translation id="407254336480250557">Виберіть <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Chromium<ph name="END_BOLD" /></translation> @@ -105,6 +111,7 @@ <translation id="4943838377383847465">Chromium у фоновому режимі.</translation> <translation id="4987820182225656817">Гості можуть анонімно користуватися Chromium.</translation> <translation id="4994636714258228724">Додати себе в Chromium</translation> +<translation id="5021854341188256296">{0,plural, =0{Доступне оновлення ОС Chromium}=1{Доступне оновлення ОС Chromium}one{Оновлення ОС Chromium доступне вже # день}few{Оновлення ОС Chromium доступне вже # дні}many{Оновлення ОС Chromium доступне вже # днів}other{Оновлення ОС Chromium доступне вже # дня}}</translation> <translation id="5032989939245619637">Зберігати дані в Chromium</translation> <translation id="5045248521775609809">Використовуйте Chromium на всіх пристроях</translation> <translation id="5116586539350239523">Chromium надійно зберігатиме ваші особисті дані, тож вам не потрібно буде вводити їх знову.</translation> @@ -117,10 +124,13 @@ <translation id="5479196819031988440">Неможливо відкрити цю сторінку в ОС Chromium.</translation> <translation id="5480860683791598150">Chromium потрібен доступ до геоданих, щоб повідомляти ваше місцезнаходження цьому сайту</translation> <translation id="549669000822060376">Зачекайте, доки Chromium установить найновіші оновлення системи.</translation> +<translation id="5514308096618405748">ОС Chrome стала можливою завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />, як і бета-версія Linux.</translation> +<translation id="5529843986978123325">{0,plural, =1{ОС Chromium перезапуститься через 1 хвилину}one{ОС Chromium перезапуститься через # хвилину}few{ОС Chromium перезапуститься через # хвилини}many{ОС Chromium перезапуститься через # хвилин}other{ОС Chromium перезапуститься через # хвилини}}</translation> <translation id="5631814766731275228">Ім’я та зображення профілю Chromium</translation> <translation id="5634636535844844681">Для роботи Chromium потрібно мати ОС Windows 7 або новішої версії.</translation> <translation id="5680901439334282664">увійдіть в обліковий запис Chromium</translation> <translation id="5698481217667032250">Вибрати цю мову для Chromium</translation> +<translation id="5712253116097046984">Адміністратор просить перезапустити ОС Chromium, щоб застосувати це оновлення</translation> <translation id="5726838626470692954">Вашому адміністратору потрібно вилучити й знову додати вас у Chromium.</translation> <translation id="5768914737813585044">Вибрати цю мову для ОС Chromium</translation> <translation id="5796460469508169315">Chromium майже готовий.</translation> @@ -137,7 +147,9 @@ <translation id="6072279588547424923">Розширення <ph name="EXTENSION_NAME" /> додано в Chromium</translation> <translation id="608189560609172163">Chromium не вдалося синхронізувати ваші дані через помилку входу.</translation> <translation id="6096348254544841612">Налаштуйте й контролюйте Chromium. Доступне оновлення.</translation> +<translation id="6120345080069858279">Chromium збереже цей пароль в обліковому записі Google. Не потрібно його запам’ятовувати.</translation> <translation id="6129621093834146363">Файл <ph name="FILE_NAME" /> небезпечний, тому Chromium заблокував його.</translation> +<translation id="620022061217911843">Адміністратор вимагає перезапустити ОС Chromium, щоб застосувати оновлення</translation> <translation id="6212496753309875659">На цьому комп’ютері вже встановлено новішу версію Chromium. Якщо програмне забезпечення не працює, видаліть Chromium і повторіть спробу.</translation> <translation id="6248213926982192922">Зробити Chromium переглядачем за умовчанням</translation> <translation id="6268381023930128611">Вийти з Chromium?</translation> @@ -191,8 +203,10 @@ <ph name="BEGIN_LINK_2" />Докладніше<ph name="END_LINK_2" /> Подальші вказівки надійдуть на електронну адресу <ph name="ACCOUNT_EMAIL" />.</translation> +<translation id="7448255348454382571">Перезапустіть ОС Chromium</translation> <translation id="7449453770951226939"><ph name="PAGE_TITLE" /> – Версія Chromium для розробників</translation> <translation id="7451052299415159299">Chromium потрібен дозвіл на використання камери, щоб надати цьому сайту доступ до неї</translation> +<translation id="7471302858145901434">{0,plural, =1{Перезапустіть ОС Chromium упродовж дня}one{Перезапустіть ОС Chromium упродовж # дня}few{Перезапустіть ОС Chromium упродовж # днів}many{Перезапустіть ОС Chromium упродовж # днів}other{Перезапустіть ОС Chromium упродовж # дня}}</translation> <translation id="7483335560992089831">Неможливо встановити версію Chromium, аналогічну запущеній зараз. Закрийте Chromium і повторіть спробу.</translation> <translation id="7549178288319965365">Про ОС Chromium</translation> <translation id="7577193603922410712">Щойно було застосовано спеціальне оновлення для захисту Chromium. Щоб воно почало діяти, перезапустіть Chromium (ваші вкладки буде відновлено).</translation> @@ -222,10 +236,13 @@ <translation id="8290862415967981663">Цей файл може бути небезпечним, тому Chromium заблокував його.</translation> <translation id="8330519371938183845">Увійдіть, щоб синхронізувати та персоналізувати роботу Chromium на всіх своїх пристроях</translation> <translation id="8340674089072921962">Раніше ви входили в обліковий запис <ph name="USER_EMAIL_ADDRESS" /> у Chromium</translation> +<translation id="8375950122744241554">Профілі контрольованих користувачів будуть недоступні в Chromium 70 і новіших версій.</translation> +<translation id="8379713241968949941">{0,plural, =1{Chromium перезапуститься через годину}one{Chromium перезапуститься через # годину}few{Chromium перезапуститься через # години}many{Chromium перезапуститься через # годин}other{Chromium перезапуститься через # години}}</translation> <translation id="8453117565092476964">Архів програми встановлення пошкоджений або недійсний. Завантажте Chromium ще раз.</translation> <translation id="8493179195440786826">Версія Chromium застаріла</translation> <translation id="85843667276690461">Отримати довідку щодо користування Chromium</translation> <translation id="8586442755830160949">Авторське право <ph name="YEAR" /> Автори Chromium. Усі права захищено.</translation> +<translation id="8599548569518771270">{0,plural, =0{ОС Chromium перезапуститься зараз}=1{ОС Chromium перезапуститься через 1 секунду}one{ОС Chromium перезапуститься через # секунду}few{ОС Chromium перезапуститься через # секунди}many{ОС Chromium перезапуститься через # секунд}other{ОС Chromium перезапуститься через # секунди}}</translation> <translation id="8619360774459241877">Запускається Chromium…</translation> <translation id="8621669128220841554">Не вдалося встановити через невизначену помилку. Завантажте Chromium ще раз.</translation> <translation id="8628626585870903697">У Chromium немає засобу перегляду файлів PDF, який потрібен для перегляду версії для друку.</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb index f305bf92..ef93ce5 100644 --- a/chrome/app/resources/generated_resources_ar.xtb +++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">جارِ البحث...</translation> <translation id="1316495628809031177">تم إيقاف المزامنة مؤقتًا</translation> <translation id="1319979322914001937">أحد التطبيقات التي تعرض قائمة مُفلترة بالإضافات من سوق Chrome الإلكتروني. يمكن تثبيت الإضافات الموجودة في القائمة من التطبيق مباشرةً.</translation> +<translation id="1322046419516468189">عرض كلمات المرور المحفوظة وإدارتها في <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">للحصول على علامات التبويب من أجهزتك الأخرى، سجّل الدخول إلى Chrome.</translation> <translation id="1327074568633507428">طابعة مسجلة في الطباعة السحابية من Google</translation> <translation id="1327977588028644528">المدخل</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">مركز المساعدة</translation> <translation id="162035744160882748">تفعيل المزامنة والتخصيص وخدمات Google الأخرى</translation> <translation id="1620510694547887537">الكاميرا</translation> +<translation id="1623132449929929218">الصور غير متوفِّرة حاليًا. يُرجى إعادة الاتصال بالإنترنت للاطِّلاع على مجموعات الخلفية.</translation> <translation id="1624026626836496796">لن يحدث ذلك إلا مرة واحدة، ولن يتم تخزين بيانات اعتمادك.</translation> <translation id="1627276047960621195">أدوات وصف الملفات</translation> <translation id="1627408615528139100">تم التنزيل من قبل</translation> <translation id="1632803087685957583">تسمح لك بضبط معدل تكرار لوحة المفاتيح، وتوقّع الكلمات، والمزيد</translation> <translation id="1635033183663317347">تم التثبيت من قبل الوصيّ.</translation> +<translation id="1635885551358739414">قد تستخدم Google محتوى المواقع الإلكترونية التي تزورها، بالإضافة إلى نشاط المتصفِّح وتفاعلاته لتخصيص Chrome وخدمات Google الأخرى، مثل "الترجمة" و"البحث" والإعلانات. ويمكنك تخصيص هذه الميزة في "الإعدادات".</translation> <translation id="1637224376458524414">الحصول على هذه الإشارة المرجعية على جهاز iPhone</translation> <translation id="1637765355341780467">حدث خطأ ما أثناء فتح ملفك الشخصي. وقد تكون بعض الميزات غير متاحة.</translation> <translation id="1639239467298939599">جارٍ التحميل.</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">كلمة المرور أقصر مما يجب.</translation> <translation id="1661867754829461514">رقم التعريف الشخصي غير موجود</translation> <translation id="16620462294541761">عذرًا، ولكن تعذر التحقق من كلمة المرور. يُرجى المحاولة مرة أخرى.</translation> +<translation id="1662550410081243962">حفظ طرق الدفع وملؤها</translation> <translation id="166278006618318542">خوارزمية المفتاح العام لصاحب الشهادة</translation> <translation id="166439687370499867">لا يُسمح بتغيير عمليات تهيئة الشبكة المشتركة.</translation> <translation id="1665611772925418501">تعذر تعديل على الملف.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546">يريد <ph name="URL" /> الاطّلاع على العلامة التجارية لمفتاح الأمان وطرازه.</translation> <translation id="167832068858235403">خفض الصوت</translation> <translation id="1679068421605151609">أدوات مطوّري البرامج</translation> +<translation id="1680849702532889074">لقد حدث خطأ أثناء تثبيت تطبيق Linux.</translation> <translation id="16815041330799488">عدم السماح لمواقع الويب بالاطلاع على النصوص والصور التي تم نسخها إلى الحافظة</translation> <translation id="1682548588986054654">نافذة جديدة للتصفح المتخفي</translation> <translation id="168715261339224929">للحصول على الإشارات المرجعية على جميع أجهزتك، يُرجى تفعيل المزامنة.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">إزالة تثبيت علامات التبويب</translation> <translation id="1734824808160898225">قد لا يتمكَّن <ph name="PRODUCT_NAME" /> من الاستمرار في تحديث نفسه.</translation> <translation id="1736419249208073774">استكشاف</translation> +<translation id="1736827427463982819">إيقاف تطبيق Linux (إصدار تجريبي)</translation> <translation id="1737968601308870607">الإبلاغ عن خطأ</translation> <translation id="1741314857973421784">متابعة</translation> <translation id="174173592514158117">عرض جميع مجلدات Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">يريد <ph name="URL" /> تخزين حجم كبير من البيانات على جهاز الكمبيوتر المحلي بشكل دائم.</translation> <translation id="1997616988432401742">شهاداتك</translation> <translation id="1999115740519098545">عند بدء التشغيل</translation> +<translation id="2000419248597011803">يُرسِل بعض ملفات تعريف الارتباط وعمليات البحث من شريط العناوين ومربّع البحث إلى محرِّك البحث التلقائي.</translation> <translation id="2001796770603320721">الإدارة في Drive</translation> <translation id="2004663115385769400">يتعذَّر الفتح باستخدام دولار واحد</translation> <translation id="200544492091181894">يمكنك تغيير هذا الخيار من الإعدادات متى شئت.</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">متابعة حظر تشغيل ملفات تعريف الارتباط</translation> <translation id="204622017488417136">سيتم إرجاع جهازك إلى إصدار Chrome المثبت مسبقًا. ستتم إزالة كل حسابات المستخدمين والبيانات المحلية. ولا يمكن التراجع عن ذلك.</translation> <translation id="2048182445208425546">الدخول إلى عدد زيارات شبكتك</translation> +<translation id="2048653237708779538">الإجراء غير متاح</translation> <translation id="204914487372604757">إنشاء اختصار</translation> <translation id="2050339315714019657">رأسي</translation> <translation id="2053312383184521053">بيانات حالة الخمول</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">يريد <ph name="PEPPER_PLUGIN_NAME" /> الموجود على <ph name="PEPPER_PLUGIN_DOMAIN" /> الوصول إلى جهاز الكمبيوتر.</translation> <translation id="2178614541317717477">اختراق المرجع المصدق (CA)</translation> <translation id="218070003709087997">استخدم رقمًا للإشارة إلى عدد النُسخ المطلوب طباعتها (من 1 إلى 999).</translation> +<translation id="2183558561014688873">يمكنك الوصول إلى "المساعد" في أي وقت تقول فيه "OK Google" عندما يكون جهازك نشطًا وتم إلغاء قفله.</translation> <translation id="2187895286714876935">خط استيراد شهادة الخادم</translation> <translation id="2187906491731510095">تم تحديث الإضافات.</translation> <translation id="2188881192257509750">فتح <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">معالجة وحدة معالجة الرسومات (GPU)</translation> <translation id="2282155092769082568">عنوان URL للتهيئة التلقائية:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">حفظ العناوين وملؤها</translation> <translation id="2286841657746966508">عنوان الفاتورة</translation> <translation id="2288181517385084064">التبديل إلى مسجل الفيديو</translation> <translation id="2288735659267887385">إعدادات إمكانية الوصول</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">إجمالي حجم الملف</translation> <translation id="2428510569851653187">وصف ما كنت تفعله عندما تعطّلت علامة التبويب</translation> <translation id="2431027948063157455">تعذّر تحميل مساعد Google، يُرجى التحقُّق من اتصال الشبكة وإعادة المحاولة.</translation> +<translation id="2432753757290432042">تحديث Linux (إصدار تجريبي) مطلوب</translation> <translation id="2433452467737464329">إضافة معلمة لطلب البحث في عنوان URL لتحديث الصفحة تلقائيًا: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">المظهر</translation> <translation id="2433836460518180625">إلغاء قفل الجهاز فقط</translation> @@ -1183,6 +1194,7 @@ <translation id="2775104091073479743">تعديل بصمات الأصابع</translation> <translation id="2776441542064982094">يبدو أنه لا توجد أجهزة متوفرة للتسجيل على الشبكة. فإذا كان جهازك قيد التشغيل ومتصلاً بالإنترنت، فحاول التسجيل متبعًا الإرشادات الواردة في الدليل.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">حدث خطأ أثناء تثبيت تطبيق Linux</translation> <translation id="2783298271312924866">تم التنزيل</translation> <translation id="2783321960289401138">جارٍ إنشاء اختصار...</translation> <translation id="2783829359200813069">اختيار أنواع التشفير</translation> @@ -1207,6 +1219,7 @@ <translation id="2812944337881233323">تجربة الخروج وتسجيل الدخول مرة أخرى</translation> <translation id="2812989263793994277">عدم عرض أي صور</translation> <translation id="2814489978934728345">وقف تحميل هذه الصفحة</translation> +<translation id="281504910091592009">عرض كلمات المرور المحفوظة وإدارتها في <ph name="BEGIN_LINK" />حسابك على Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">شريط الإشارات</translation> <translation id="2815693974042551705">مجلد الإشارات المرجعية</translation> <translation id="2818476747334107629">تفاصيل الطابعة</translation> @@ -1287,6 +1300,7 @@ <translation id="2939938020978911855">عرض أجهزة بلوتوث المُتاحة</translation> <translation id="2941112035454246133">منخفضة</translation> <translation id="2942560570858569904">جارٍ الانتظار...</translation> +<translation id="2942581856830209953">تخصيص هذه الصفحة</translation> <translation id="2943400156390503548">الشرائح</translation> <translation id="2943503720238418293">استخدم اسم أقصر</translation> <translation id="2946119680249604491">إضافة اتصال</translation> @@ -1772,6 +1786,7 @@ <translation id="3693415264595406141">كلمة المرور:</translation> <translation id="3694027410380121301">تحديد علامة التبويب السابقة</translation> <translation id="3699624789011381381">عنوان البريد الإلكتروني</translation> +<translation id="3699920817649120894">هل ترغب في إيقاف المزامنة والتخصيص؟</translation> <translation id="3700888195348409686">جارِ تقديم (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">تم تغيير صفحات بدء التشغيل التابعة لك لإدراج <ph name="URL" />.</translation> <translation id="370415077757856453">تم حظر جافا سكريبت</translation> @@ -1869,6 +1884,7 @@ <translation id="3827774300009121996">&ملء الشاشة</translation> <translation id="3828029223314399057">بحث في الإشارات المرجعية</translation> <translation id="3830674330436234648">لا تتوفر أي عملية تشغيل</translation> +<translation id="3831436149286513437">إقتراحات بحث Google Drive</translation> <translation id="3831486154586836914">تم الدخول إلى وضع النظرة العامة على النافذة</translation> <translation id="383161972796689579">أوقف مالك هذا الجهاز إمكانية إضافة مستخدمين جدد.</translation> <translation id="3834775135533257713">تتعذر إضافة التطبيق "<ph name="TO_INSTALL_APP_NAME" />" نظرًا لأنه يتعارض مع "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1902,6 +1918,7 @@ <translation id="3871092408932389764">الأقل</translation> <translation id="3872220884670338524">المزيد من الإجراءات؛ تم حفظ الحساب الذي يحمل اسم المستخدم <ph name="USERNAME" /> على النطاق <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">احرص على تفريغ مساحة على القرص أو سيصبح الجهاز غير مستجيب.</translation> +<translation id="3873315167136380065">لتفعيل هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة ضبط المزامنة<ph name="END_LINK" /> لإزالة عبارة مرور المزامنة.</translation> <translation id="3878840326289104869">إنشاء مستخدم يخضع للإدارة</translation> <translation id="3879748587602334249">تطبيق إدارة التنزيل</translation> <translation id="3880709822663530586">لا يعمل مفتاح الأمان إلا عند تفعيل البلوتوث على جهازك.</translation> @@ -2022,6 +2039,7 @@ <translation id="4068776064906523561">بصمات الإصبع المحفوظة</translation> <translation id="407173827865827707">عند النقر</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: خطأ في تسجيل الدخول</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">شهادة توقيع البريد الإلكتروني</translation> <translation id="407520071244661467">تغيير الحجم</translation> <translation id="4075639477629295004">يتعذَر إرسال <ph name="FILE_NAME" />.</translation> @@ -2089,6 +2107,7 @@ <translation id="4192273449750167573">مراجعة الإعدادات في الشاشة التالية</translation> <translation id="4193154014135846272">مستند Google</translation> <translation id="4194570336751258953">تفعيل الضغط للنقر</translation> +<translation id="4195249722193633765">تثبيت التطبيق باستخدام Linux (إصدار تجريبي)</translation> <translation id="4195643157523330669">فتح الإشارة في علامة تبويب جديدة</translation> <translation id="4195814663415092787">المتابعة من حيث توقفت</translation> <translation id="4197674956721858839">تحديد ملف مضغوط</translation> @@ -2149,7 +2168,9 @@ <translation id="428608937826130504">عنصر الرف 8</translation> <translation id="4287502004382794929">ليست لديك تراخيص برامج كافية لتسجيل هذا الجهاز. يُرجى الاتصال بالمبيعات لشراء المزيد. إذا كنت تعتقد أن هذه الرسالة ظهرت عن طريق الخطأ، فيُرجى الاتصال بالدعم.</translation> <translation id="4289540628985791613">نظرة عامة</translation> +<translation id="4295072614469448764">يُعد التطبيق متاحًا في الوحدة الطرفية. وقد يكون هناك أيضًا رمز في مشغِّل التطبيقات.</translation> <translation id="4296575653627536209">إضافة مستخدم تحت الإشراف</translation> +<translation id="4297219207642690536">إعادة التشغيل وإعادة الضبط</translation> <translation id="4297322094678649474">تغيير اللغات</translation> <translation id="4300305918532693141">لتغيير هذا الإعداد، يمكنك <ph name="BEGIN_LINK" />إعادة تعيين المزامنة<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">طويل (ثانيتين)</translation> @@ -2185,6 +2206,7 @@ <translation id="4370975561335139969">البريد الإلكتروني وكلمة المرور اللذان أدخلتهما غير متطابقين</translation> <translation id="437184764829821926">الإعدادات المتقدمة للخط</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">أداة تثبيت Linux</translation> <translation id="4375035964737468845">فتح الملفات التي تم تنزيلها</translation> <translation id="4377363674125277448">هناك مشكلة مع شهادة الخادم.</translation> <translation id="4378154925671717803">هاتف</translation> @@ -2303,6 +2325,7 @@ <translation id="4576541033847873020">إقران جهاز بلوتوث</translation> <translation id="4579581181964204535">يتعذّر إرسال <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">هل تريد فعلًا حذف عناصر $1؟</translation> +<translation id="4582497162516204941">التثبيت باستخدام Linux (إصدار تجريبي)</translation> <translation id="4582563038311694664">إعادة تعيين كل الإعدادات</translation> <translation id="4585793705637313973">تعديل الصفحة</translation> <translation id="4589268276914962177">علامة تبويب طرفية جديدة</translation> @@ -2546,6 +2569,7 @@ <translation id="4953808748584563296">الصورة الرمزية التلقائية البرتقالية</translation> <translation id="4955814292505481804">سنوي</translation> <translation id="4957949153200969297">يمكنك تفعيل الميزات ذات الصلة بمزامنة <ph name="IDS_SHORT_PRODUCT_NAME" /> فقط.</translation> +<translation id="4959262764292427323">يتم حفظ كلمات المرور في حسابك على Google، حتى تتمكَّن من استخدامها على أي جهاز.</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">المجلد الذي حددته يشتمل على ملفات حساسة. فهل تريد بالتأكيد منح "$1" حق الدخول الدائم للقراءة في هذا المجلد؟</translation> <translation id="4964455510556214366">الترتيب</translation> @@ -2724,6 +2748,7 @@ <translation id="5240817131241497236">تم تغيير الإعدادات التي تتحكَّم في المزامنة والتخصيص وخدمات Google الأخرى في Chrome. قد يؤثر هذا في إعداداتك الحالية.</translation> <translation id="5241128660650683457">مراجعة كل بياناتك على مواقع الويب التي تزورها</translation> <translation id="5242724311594467048">تفعيل "<ph name="EXTENSION_NAME" />"؟</translation> +<translation id="5243522832766285132">يُرجى إعادة المحاولة بعد بضع لحظات</translation> <translation id="5244474230056479698">المزامنة مع <ph name="EMAIL" /></translation> <translation id="5246282308050205996">لقد تعطل <ph name="APP_NAME" />. انقر على هذا البالون لإعادة تشغيل التطبيق.</translation> <translation id="5247051749037287028">الاسم المعروض (اختياري)</translation> @@ -2746,6 +2771,7 @@ <translation id="5264148714798105376">قد يستغرق ذلك دقيقة أو نحو ذلك.</translation> <translation id="5264252276333215551">يُرجى الاتصال بالإنترنت لتشغيل التطبيق في وضع الكشك.</translation> <translation id="5265562206369321422">بلا إنترنت لمدة تتجاوز أسبوعًا</translation> +<translation id="5265797726250773323">حدث خطأ أثناء التثبيت</translation> <translation id="5266113311903163739">خطأ استيراد مرجع مصدق</translation> <translation id="5269977353971873915">تعذّرت الطباعة</translation> <translation id="5271549068863921519">حفظ كلمة المرور</translation> @@ -2768,6 +2794,7 @@ <translation id="529175790091471945">لتهيئة هذا الجهاز</translation> <translation id="5292195676005197571">لاستخدام معظم المفاتيح، ما عليك سوى الضغط على الزر</translation> <translation id="5293170712604732402">استعادة الإعدادات إلى الوضع التلقائي الأصلي</translation> +<translation id="5297082477358294722">تم حفظ كلمة المرور. يمكنك عرض كلمات المرور المحفوظة وإدارتها في <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">مظهر أنشأه</translation> <translation id="5299109548848736476">عدم التعقب</translation> <translation id="5299682071747318445">تم تشفير جميع البيانات باستخدام عبارة مرور المزامنة</translation> @@ -2996,6 +3023,7 @@ <translation id="5612720917913232150">يريد <ph name="URL" /> استخدام الموقع الجغرافي لجهاز الكمبيوتر.</translation> <translation id="5612734644261457353">عذرًا، لا يزال التحقق من كلمة المرور متعذرًا. ملاحظة: في حالة تغيير كلمة المرور مؤخرًا، فإنه سيتم تطبيق كلمة المرور بعد الخروج، يُرجى استخدام كلمة المرور القديمة هنا.</translation> <translation id="5614190747811328134">إشعار المستخدم</translation> +<translation id="5614553682702429503">هل تريد حفظ كلمة المرور؟</translation> <translation id="561698261642843490">إغلاق Firefox</translation> <translation id="5618075537869101857">عذرًا، تعذر تشغيل تطبيق Kiosk.</translation> <translation id="5618333180342767515">(قد يستغرق ذلك بضع دقائق)</translation> @@ -3036,6 +3064,7 @@ <translation id="5677503058916217575">لغة الصفحة:</translation> <translation id="5677928146339483299">تم المنع</translation> <translation id="5678550637669481956">تم منح إذن دخول للقراءة والكتابة إلى <ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">سيكون تطبيق Linux متاحًا ضمن الوحدة الطرفية وقد يعرض أيضًا رمزًا في مشغِّل التطبيقات.</translation> <translation id="5678955352098267522">قراءة بياناتك على <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">معرّف الأصول</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />لا يمكن قطع الاتصال من أرشيف أو قرص افتراضي<ph name="END_BOLD" /> @@ -3131,6 +3160,7 @@ <translation id="5832805196449965646">إضافة شخص</translation> <translation id="583281660410589416">غير معروف</translation> <translation id="5832976493438355584">تم قفلها</translation> +<translation id="5833397272224757657">يتم استخدام المحتوى على المواقع الإلكترونية التي تزورها، بالإضافة إلى نشاط المتصفِّح وتفاعلاته للتخصيص.</translation> <translation id="5833610766403489739">يبدو أن هذا الملف قد اختفى في مكان. يُرجى التحقق من إعداد موقع التنزيل وإعادة المحاولة.</translation> <translation id="5833726373896279253">يمكن تعديل هذه الإعدادات بواسطة المالك فقط: </translation> <translation id="5834581999798853053">تتبقى <ph name="TIME" /> دقيقة تقريبًا</translation> @@ -3184,6 +3214,7 @@ <translation id="5908769186679515905">حظر المواقع من تشغيل Flash</translation> <translation id="5910363049092958439">حفظ ال&صورة باسم...</translation> <translation id="5911737117543891828">سيتم حذف ملفات Google Drive المؤقتة بلا إنترنت. ولن يتم حذف الملفات التي قد عيّنتها كمتاحة بلا إنترنت من هذا الجهاز.</translation> +<translation id="5911887972742538906">حدث خطأ أثناء تثبيت تطبيق Linux.</translation> <translation id="5912378097832178659">تع&ديل محرّكات البحث...</translation> <translation id="5914724413750400082">المعامل (<ph name="MODULUS_NUM_BITS" /> بت): <ph name="MODULUS_HEX_DUMP" /> @@ -3371,6 +3402,7 @@ <translation id="6198102561359457428">الخروج ثم إعادة تسجيل الدخول...</translation> <translation id="6198252989419008588">تغيير رقم التعريف الشخصي</translation> <translation id="6199801702437275229">في انتظار معلومات المساحة...</translation> +<translation id="6201792273624501289">تطبيقات Linux</translation> <translation id="6204015976622790023">يمكنك الاطِّلاع على اقتراحات ذات صلة من "المساعد" متعلِّقة بالمحتوى المعروض على شاشتك.</translation> <translation id="6205710420833115353">تستغرق بعض العمليات وقتًا أطول من المتوقع. هل تريد إيقافها؟</translation> <translation id="6206311232642889873">نس&خ صورة</translation> @@ -3847,6 +3879,7 @@ <translation id="6945221475159498467">تحديد</translation> <translation id="694592694773692225">تم حظر إعادة التوجيه في هذه الصفحة.</translation> <translation id="6949306908218145636">وضع إشارة مرجعية على الصفحات المفتوحة...</translation> +<translation id="6950627417367801484">استعادة التطبيقات</translation> <translation id="6951153907720526401">معالجات الدفع</translation> <translation id="6955446738988643816">فحص النوافذ المنبثقة</translation> <translation id="6957231940976260713">اسم الخدمة</translation> @@ -3972,6 +4005,7 @@ <translation id="7127980134843952133">سجل التنزيل</translation> <translation id="7131040479572660648">قراءة بياناتك على <ph name="WEBSITE_1" />، <ph name="WEBSITE_2" /> و<ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">إضافة &صفحة...</translation> +<translation id="7133578150266914903">يعمل المشرف على إغلاق هذا الجهاز (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">لتصغير النص</translation> <translation id="7136694880210472378">تعيين كافتراضي</translation> <translation id="7136984461011502314">مرحبًا بك في <ph name="PRODUCT_NAME" /></translation> @@ -4172,6 +4206,7 @@ <translation id="7463006580194749499">إضافة شخص</translation> <translation id="7464490149090366184">تعذّر الضغط، العناصر الموجودة: "$1"</translation> <translation id="7465778193084373987">عنوان URL لإبطال شهادة Netscape</translation> +<translation id="7469406957790636836">لتفعيل هذا الإعداد، يُرجى أولاً تفعيل "التدقيق الإملائي" في <ph name="BEGIN_LINK" />اللغات والإدخال<ph name="END_LINK" /></translation> <translation id="7469894403370665791">الاتصال بهذه الشبكة تلقائيًا</translation> <translation id="747114903913869239">خطأ: تعذر فك تشفير الإضافة</translation> <translation id="7473753388963818366">لنبدأ بإعداد الجهاز <ph name="DEVICE_TYPE" /> من أجلك</translation> @@ -4270,6 +4305,7 @@ <translation id="7606992457248886637">الصلاحيات</translation> <translation id="7607002721634913082">تعليق التحميل</translation> <translation id="7607274158153386860">طلب موقع الجهاز اللوحي</translation> +<translation id="7609148976235050828">يُرجى الاتصال بالإنترنت وإعادة المحاولة.</translation> <translation id="7611008212562900400">جارٍ البحث عن جهازك، والتطبيقات، والويب...</translation> <translation id="7616214729753637086">جارٍ تسجيل الجهاز...</translation> <translation id="7617366389578322136">جارٍ الاتصال بـ "<ph name="DEVICE_NAME" />"</translation> @@ -4338,6 +4374,7 @@ <translation id="7730449930968088409">التقاط محتوى الشاشة</translation> <translation id="7730494089396812859">عرض تفاصيل النسخ الاحتياطي عبر السحاب</translation> <translation id="7732111077498238432">هناك سياسة تحكم هذه الشبكة</translation> +<translation id="7737238973539693982">حذف Linux (إصدار تجريبي)</translation> <translation id="773905249182896430">حمايتك وحماية جهازك من المواقع الخطرة</translation> <translation id="7740996059027112821">قياسي</translation> <translation id="7748528009589593815">علامة التبويب السابقة</translation> @@ -4526,6 +4563,7 @@ <translation id="7974936243149753750">الخروج عن إطار الشاشة</translation> <translation id="7977551819349545646">جارٍ تحديث جهاز Chromebox...</translation> <translation id="7978412674231730200">مفتاح خاص</translation> +<translation id="7978450511781612192">سيؤدي ذلك إلى تسجيل خروجك من حساباتك على Google. ولن تتم بعد ذلك مزامنة الإشارات المرجعية والسجلّ وكلمات المرور والمزيد.</translation> <translation id="7979036127916589816">حدث خطأ في المزامنة</translation> <translation id="7980084013673500153">رقم تعريف مادة العرض: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">التحميل المُسبق للصفحات للحصول على أداء أسرع أثناء التصفّح والبحث</translation> @@ -4690,6 +4728,7 @@ <translation id="8226619461731305576">اللائحة</translation> <translation id="8226742006292257240">في ما يلي كلمة مرور TPM التي تم إنشاؤها عشوائيًا والتي تم تخصيصها للكمبيوتر:</translation> <translation id="8227119283605456246">إرفاق ملف</translation> +<translation id="8230134520748321204">هل تريد حفظ كلمة المرور لـ <ph name="ORIGIN" />؟</translation> <translation id="8234795456569844941">يُرجى مساعدة مهندسينا في حل هذه المشكلة. أخبرنا بما حدث مباشرة قبل ظهور رسالة خطأ الملف الشخصي:</translation> <translation id="8234989666557591529">اختيار هاتف لإلغاء قفل جهاز <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">المزامنة كـ <ph name="FULL_NAME" /></translation> @@ -4808,6 +4847,7 @@ <translation id="8438328416656800239">التبديل إلى متصفح ذكي</translation> <translation id="8438566539970814960">تحسين عمليات البحث والتصفُّح</translation> <translation id="8439506636278576865">عرض ترجمة الصفحات المكتوبة بهذه اللغة</translation> +<translation id="8440630305826533614">تطبيقات Linux</translation> <translation id="8446884382197647889">مزيد من المعلومات</translation> <translation id="8447409163267621480">تضمين إما مفتاح Ctrl أو Alt</translation> <translation id="8448729345478502352">تصغير العناصر المعروضة على شاشتك أو تكبيرها</translation> @@ -4852,6 +4892,7 @@ <translation id="8497219075884839166">الأدوات المساعدة في Windows</translation> <translation id="8498214519255567734">يمكنك تسهيل النظر إلى الشاشة أو القراءة في الضوء الخافت</translation> <translation id="8498395510292172881">متابعة القراءة في Chrome</translation> +<translation id="8502536196501630039">لاستخدام التطبيقات من Google Play، عليك استعادة تطبيقاتك أولاً. ربما تم فقدان بعض بياناتك.</translation> <translation id="8503813439785031346">اسم المستخدم</translation> <translation id="850875081535031620">لم يتم العثور على أي برامج ضارة</translation> <translation id="8509646642152301857">تعذّر تنزيل قاموس التدقيق الإملائي.</translation> @@ -4981,6 +5022,7 @@ <translation id="8698464937041809063">رسم Google</translation> <translation id="869884720829132584">قائمة التطبيقات</translation> <translation id="869891660844655955">تاريخ انتهاء الصلاحية</translation> +<translation id="8699566574894671540">لتفعيل هذا الإعداد، يُرجى أولاً اختيار "التدقيق الإملائي" أثناء الكتابة في القائمة "تعديل"</translation> <translation id="870073306461175568">مشاركات ملف الشبكة</translation> <translation id="8701677791353449257">يجب أن يُطابِق اسم الجهاز التعبير العادي <ph name="REGEX" />.</translation> <translation id="8704521619148782536">يستغرق هذا الإجراء وقتًا أطول من المعتاد. يمكنك متابعة الانتظار أو الإلغاء وإعادة المحاولة.</translation> @@ -5020,6 +5062,7 @@ <p>لكن لا يزال بإمكانك التهيئة من خلال سطر الأوامر. يُرجى الاطّلاع على <code>man <ph name="PRODUCT_BINARY_NAME" /></code> للمزيد من المعلومات عن المتغيرات لكل من العلامات والبيئة.</p></translation> <translation id="8755376271068075440">أ&كبر</translation> +<translation id="8756969031206844760">هل تريد تحديث كلمة المرور؟</translation> <translation id="8757090071857742562">يتعذر إرسال سطح المكتب. يُرجى التحقق لمعرفة ما إذا كنت أكدت المطالبة لبدء مشاركة الشاشة.</translation> <translation id="8757640015637159332">دخول إلى الجلسة العامة</translation> <translation id="8757742102600829832">حدد جهاز Chromebox للاتصال به</translation> @@ -5176,7 +5219,9 @@ <translation id="9009369504041480176">جارٍ تحميل (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">إظهار الرمز دائمًا</translation> <translation id="9011178328451474963">علامة التبويب السابقة</translation> +<translation id="9013707997379828817">أغلق المشرف هذا الجهاز. يُرجى حفظ الملفات المهمة، ثم إعادة التشغيل. وسيتم حذف جميع البيانات المتاحة على الجهاز.</translation> <translation id="9014987600015527693">عرض هاتف آخر</translation> +<translation id="9018218886431812662">اكتمل التثبيت</translation> <translation id="901834265349196618">بريد إلكتروني</translation> <translation id="9019062154811256702">قراءة إعدادات الملء التلقائي وتغييرها</translation> <translation id="9020362265352758658">4 أضعاف</translation> @@ -5200,6 +5245,7 @@ <translation id="9038649477754266430">استخدام إحدى خدمات التوقع لتحميل الصفحات بسرعة أكبر</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">تجاهل علامات التبويب</translation> +<translation id="9040661932550800571">هل تريد تحديث كلمة المرور لـ <ph name="ORIGIN" />؟</translation> <translation id="9041692268811217999">أوقف المشرف إمكانية الوصول إلى الملفات المحلية على جهازك.</translation> <translation id="9042893549633094279">الخصوصية والأمان</translation> <translation id="904451693890288097">يُرجى إدخال مفتاح المرور لـ "<ph name="DEVICE_NAME" />":</translation> @@ -5304,6 +5350,7 @@ <translation id="9203478404496196495">إلغاء تجاهل علامة التبويب</translation> <translation id="9203904171912129171">اختيار جهاز</translation> <translation id="9203962528777363226">أوقف مشرف هذا الجهاز إمكانية إضافة مستخدمين جدد.</translation> +<translation id="9213073329713032541">بدأ التثبيت بنجاح.</translation> <translation id="9214520840402538427">عفوًا! لقد انتهت مهلة بدء تشغيل سمات وقت التثبيت. يُرجى الاتصال بممثل الدعم.</translation> <translation id="9214695392875603905">كب كيك</translation> <translation id="9215293857209265904">تمت إضافة "<ph name="EXTENSION_NAME" />"</translation> @@ -5358,6 +5405,7 @@ <translation id="988978206646512040">غير مسموح باستخدام عبارة مرور فارغة</translation> <translation id="992032470292211616">قد تضر الإضافات والتطبيقات والمظاهر بجهازك. هل تريد فعلًا المتابعة؟</translation> <translation id="992592832486024913">إيقاف ChromeVox (التعليقات المنطوقة)</translation> +<translation id="993540765962421562">التثبيت قيد التقدم</translation> <translation id="994289308992179865">ت&كرار</translation> <translation id="996250603853062861">إنشاء اتصال آمن...</translation> <translation id="998747458861718449">ف&حص</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb index e6504bc..442d32e 100644 --- a/chrome/app/resources/generated_resources_bn.xtb +++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -1563,7 +1563,7 @@ <translation id="3389312115541230716">কার্যদণ্ডে <ph name="SMALL_PRODUCT_LOGO" /> আইকনে ডান ক্লিক করুন</translation> <translation id="3391716558283801616">ট্যাব ৭</translation> <translation id="3396331542604645348">নির্বাচিত প্রিন্টারটি উপলব্ধ নেই বা সঠিকভাবে ইনস্টল হওয়া নেই৷ আপনার প্রিন্টারটি পরীক্ষা করুন বা অন্য একটি প্রিন্টার নির্বাচনের চেষ্টা করুন৷</translation> -<translation id="3396800784455899911">'গ্রহণ করুন এবং চালিয়ে যান' বোতামে ক্লিক করার অর্থ এই Google পরিষেবাগুলির জন্য উপরোক্ত বর্ণিত প্রক্রিয়াগুলিতে আপনি সম্মতি দেন।</translation> +<translation id="3396800784455899911">'স্বীকার করে চালিয়ে যান' বোতামে ক্লিক করার অর্থ এই Google পরিষেবাগুলির জন্য উপরোক্ত বর্ণিত প্রক্রিয়াগুলিতে আপনি সম্মতি দেন।</translation> <translation id="3399432415385675819">বিজ্ঞপ্তি অক্ষম করা হবে</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">এই সাইটের জন্য কোনও পাসওয়ার্ড সেভ করা হয়নি</translation> @@ -4175,7 +4175,7 @@ <translation id="7465778193084373987">Netscape শংসাপত্র রদকরণ URL</translation> <translation id="7469894403370665791">স্বয়ংক্রিয়ভাবে এই নেটওয়ার্কে সংযোগ করুন</translation> <translation id="747114903913869239">ত্রুটি: এক্সটেনশানের অর্থোদ্ধার করতে ব্যর্থ</translation> -<translation id="7473753388963818366">আপনার জন্য <ph name="DEVICE_TYPE" /> তৈরি করা যাক।</translation> +<translation id="7473753388963818366">আপনার জন্য <ph name="DEVICE_TYPE" /> রেডি করা যাক</translation> <translation id="7473891865547856676">না থাক</translation> <translation id="747459581954555080">সকল পুনরুদ্ধার করুন</translation> <translation id="7475671414023905704">Netscape পাসওয়ার্ড URL হারিয়েছে</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb index 80da907..06e8d797d 100644 --- a/chrome/app/resources/generated_resources_cs.xtb +++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Vyhledávání...</translation> <translation id="1316495628809031177">Synchronizace je pozastavena</translation> <translation id="1319979322914001937">Aplikace, která zobrazuje filtrovaný seznam rozšíření v Internetovém obchodu Chrome. Rozšíření v seznamu lze nainstalovat přímo z této aplikace.</translation> +<translation id="1322046419516468189">Uložená hesla můžete zobrazit a spravovat v: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Chcete-li získat přístup ke kartám ze svých ostatních zařízení, přihlaste se do Chromu.</translation> <translation id="1327074568633507428">Tiskárna ve službě Google Cloud Print</translation> <translation id="1327977588028644528">Brána</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">C&entrum nápovědy</translation> <translation id="162035744160882748">Zapnout synchronizaci, personalizaci a další služby Google</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Obrázky aktuálně nejsou k dispozici. Chcete-li zobrazit sbírky tapet, znovu se připojte k internetu.</translation> <translation id="1624026626836496796">Tato akce proběhne pouze jednou a vaše identifikační údaje nebudou uloženy.</translation> <translation id="1627276047960621195">Deskriptory souborů</translation> <translation id="1627408615528139100">Již staženo</translation> <translation id="1632803087685957583">Umožňuje upravit rychlost opakování klávesnice, předvídání slov a další nastavení</translation> <translation id="1635033183663317347">Nainstaloval váš opatrovník</translation> +<translation id="1635885551358739414">Google vám může prohlížeč Chrome a další služby Google, jako jsou Překladač, Vyhledávání a reklamy, přizpůsobit na základě obsahu některých navštívených webů, aktivity v prohlížeči a dalších interakcí s prohlížečem. Tuto možnost můžete upravit v Nastavení.</translation> <translation id="1637224376458524414">Uložte si tuto záložku do iPhonu</translation> <translation id="1637765355341780467">Při otevírání vašeho profilu se něco pokazilo. Některé funkce mohou být nedostupné.</translation> <translation id="1639239467298939599">Načítání</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Heslo je příliš krátké.</translation> <translation id="1661867754829461514">Chybí kód PIN</translation> <translation id="16620462294541761">Litujeme, heslo nelze ověřit. Zkuste to prosím znovu.</translation> +<translation id="1662550410081243962">Ukládat a vyplňovat platební metody</translation> <translation id="166278006618318542">Algoritmus veřejného klíče subjektu</translation> <translation id="166439687370499867">Změna konfigurace sdílené sítě není povolena</translation> <translation id="1665611772925418501">Soubor se nepodařilo upravit.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> chce zjistit model a značku vašeho bezpečnostního klíče</translation> <translation id="167832068858235403">snížit hlasitost</translation> <translation id="1679068421605151609">Nástroje pro vývojáře</translation> +<translation id="1680849702532889074">Při instalaci vaší aplikace pro Linux došlo k chybě.</translation> <translation id="16815041330799488">Nepovolovat webům přístup k textu a obrázkům zkopírovaným do schránky</translation> <translation id="1682548588986054654">Nové anonymní okno</translation> <translation id="168715261339224929">Chcete-li mít záložky ve všech zařízeních, zapněte synchronizaci.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Odepnout karty</translation> <translation id="1734824808160898225">Je možné, že se <ph name="PRODUCT_NAME" /> nebude moci aktualizovat</translation> <translation id="1736419249208073774">Prozkoumat</translation> +<translation id="1736827427463982819">Ukončit Linux (beta)</translation> <translation id="1737968601308870607">Oznámit chybu</translation> <translation id="1741314857973421784">Pokračovat</translation> <translation id="174173592514158117">Zobrazit všechny složky Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">Stránka <ph name="URL" /> chce trvale ukládat data v místním počítači</translation> <translation id="1997616988432401742">Vaše certifikáty</translation> <translation id="1999115740519098545">Při spuštění</translation> +<translation id="2000419248597011803">Odesílá soubory cookie a vyhledávací dotazy z adresního řádku a vyhledávacího pole a několik souborů cookie vašemu výchozímu vyhledávači</translation> <translation id="2001796770603320721">Spravovat na Disku</translation> <translation id="2004663115385769400">Nelze otevřít pomocí aplikace $1</translation> <translation id="200544492091181894">Kdykoliv to později můžete změnit v nastavení</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Pokračovat v blokování souborů cookie</translation> <translation id="204622017488417136">V zařízení bude obnovena předchozí verze prohlížeče Chrome. Budou odstraněny všechny uživatelské účty a místní data. Tuto operaci nelze vrátit zpět.</translation> <translation id="2048182445208425546">Přístup k provozu na síti</translation> +<translation id="2048653237708779538">Akce není k dispozici</translation> <translation id="204914487372604757">Vytvořit zástupce</translation> <translation id="2050339315714019657">Na výšku</translation> <translation id="2053312383184521053">Údaje o stavu nečinnosti</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Plugin <ph name="PEPPER_PLUGIN_NAME" /> v doméně <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získat přístup k vašemu počítači</translation> <translation id="2178614541317717477">Ohrožení bezpečnosti certifikační autority</translation> <translation id="218070003709087997">Počet kopií, které chcete vytisknout, je třeba zadat jako číslo (od 1 do 999).</translation> +<translation id="2183558561014688873">Když je zařízení aktivní a je odemknuté, můžete Asistenta kdykoliv aktivovat vyslovením fráze „Ok Google“.</translation> <translation id="2187895286714876935">Chyba při importu certifikátu serveru</translation> <translation id="2187906491731510095">Rozšíření byla aktualizována</translation> <translation id="2188881192257509750">Spustit aplikaci <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Proces GPU</translation> <translation id="2282155092769082568">Adresa URL automatické konfigurace:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Ukládat a vyplňovat adresy</translation> <translation id="2286841657746966508">Fakturační adresa</translation> <translation id="2288181517385084064">Přepnout na videokameru</translation> <translation id="2288735659267887385">Nastavení přístupnosti</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Celková velikost souborů</translation> <translation id="2428510569851653187">Popište, co jste dělali, když karta selhala</translation> <translation id="2431027948063157455">Načtení Asistenta Google se nezdařilo, zkontrolujte připojení k síti a zkuste to znovu.</translation> +<translation id="2432753757290432042">Je vyžadována aktualizace systému Linux (beta)</translation> <translation id="2433452467737464329">Chcete-li stránku obnovovat automaticky, přidejte do adresy URL následující parametr dotazu: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Vzhled</translation> <translation id="2433836460518180625">Jen odemknout zařízení</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Upravit otisky prstů</translation> <translation id="2776441542064982094">V síti zřejmě nejsou žádná zařízení dostupná k registraci. Pokud je zařízení zapnuté a připojené k internetu, zkuste je zaregistrovat podle postupu v návodu k použití.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Při instalaci aplikace pro Linux došlo k chybě</translation> <translation id="2783298271312924866">Staženo</translation> <translation id="2783321960289401138">Vytvořit zástupce...</translation> <translation id="2783829359200813069">Vyberte typy šifrování</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Zkuste se odhlásit a opět přihlásit.</translation> <translation id="2812989263793994277">Nezobrazovat žádné obrázky</translation> <translation id="2814489978934728345">Přerušit načítání této stránky</translation> +<translation id="281504910091592009">Zobrazit a spravovat uložená hesla v <ph name="BEGIN_LINK" />účtu Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Lišta záložek</translation> <translation id="2815693974042551705">Složka záložek</translation> <translation id="2818476747334107629">Podrobnosti tiskárny</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Zobrazit dostupná zařízení Bluetooth</translation> <translation id="2941112035454246133">Nízká</translation> <translation id="2942560570858569904">Čekání...</translation> +<translation id="2942581856830209953">Přizpůsobit tuto stránku</translation> <translation id="2943400156390503548">Prezentace</translation> <translation id="2943503720238418293">Použijte kratší název</translation> <translation id="2946119680249604491">Přidat připojení</translation> @@ -1772,6 +1786,7 @@ <translation id="3693415264595406141">Heslo:</translation> <translation id="3694027410380121301">Vybrat předchozí kartu</translation> <translation id="3699624789011381381">E-mailová adresa</translation> +<translation id="3699920817649120894">Vypnout synchronizaci a přizpůsobení?</translation> <translation id="3700888195348409686">Probíhá prezentace (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Mezi počáteční stránky byla přidána adresa <ph name="URL" />.</translation> <translation id="370415077757856453">Byl zablokován JavaScript</translation> @@ -1869,6 +1884,7 @@ <translation id="3827774300009121996">&Celá obrazovka</translation> <translation id="3828029223314399057">Hledat v záložkách</translation> <translation id="3830674330436234648">Přehrávání není k dispozici</translation> +<translation id="3831436149286513437">Návrhy vyhledávacích dotazů z Disku Google</translation> <translation id="3831486154586836914">Byl aktivován režim přehledu okna</translation> <translation id="383161972796689579">Vlastník zařízení zakázal přidávat nové uživatele.</translation> <translation id="3834775135533257713">Aplikaci <ph name="TO_INSTALL_APP_NAME" /> nelze přidat, protože je v konfliktu s aplikací <ph name="INSTALLED_APP_NAME" />.</translation> @@ -1902,6 +1918,7 @@ <translation id="3871092408932389764">Nejnižší</translation> <translation id="3872220884670338524">Další akce, uložený účet <ph name="USERNAME" /> v doméně <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Uvolněte místo na disku, jinak zařízení přestane reagovat.</translation> +<translation id="3873315167136380065">Chcete-li tuto funkci zapnout, <ph name="BEGIN_LINK" />resetováním synchronizace<ph name="END_LINK" /> odstraňte svou heslovou frázi pro synchronizaci</translation> <translation id="3878840326289104869">Vytváření dozorovaného uživatele</translation> <translation id="3879748587602334249">Správce stahování</translation> <translation id="3880709822663530586">Bezpečnostní klíč funguje, když je v zařízení zapnuté rozhraní Bluetooth.</translation> @@ -2024,6 +2041,7 @@ <translation id="4068776064906523561">Uložené otisky prstu</translation> <translation id="407173827865827707">Při kliknutí</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: chyba přihlášení</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certifikát autora podpisu e-mailu</translation> <translation id="407520071244661467">Měřítko</translation> <translation id="4075639477629295004">Soubor <ph name="FILE_NAME" /> nelze odeslat.</translation> @@ -2091,6 +2109,7 @@ <translation id="4192273449750167573">Na další obrazovce zkontrolujte svá nastavení</translation> <translation id="4193154014135846272">Dokument Google</translation> <translation id="4194570336751258953">Aktivovat kliknutí klepnutím</translation> +<translation id="4195249722193633765">Nainstalovat aplikaci pro Linux (beta)</translation> <translation id="4195643157523330669">Otevřít na nové kartě</translation> <translation id="4195814663415092787">Pokračovat tam, kde jste přestali</translation> <translation id="4197674956721858839">Výběr souborů pro komprimaci</translation> @@ -2151,7 +2170,9 @@ <translation id="428608937826130504">Položka č. 8 v poličce</translation> <translation id="4287502004382794929">Nemáte dostatečný počet softwarových licencí k registraci tohoto zařízení. Kontaktujte obchodní oddělení a kupte si další. Pokud se domníváte, že se jedná o chybu, kontaktujte podporu.</translation> <translation id="4289540628985791613">Přehled</translation> +<translation id="4295072614469448764">Aplikace je k dispozici v terminálu. Také může mít ikonu ve Spouštěči.</translation> <translation id="4296575653627536209">Přidat dozorovaného uživatele</translation> +<translation id="4297219207642690536">Restartovat a resetovat</translation> <translation id="4297322094678649474">Změnit jazyky</translation> <translation id="4300305918532693141">Chcete-li toto nastavení změnit, <ph name="BEGIN_LINK" />resetujte synchronizaci<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">dlouhá (2 s)</translation> @@ -2187,6 +2208,7 @@ <translation id="4370975561335139969">Zadaný e-mail a heslo se neshodují.</translation> <translation id="437184764829821926">Rozšířené nastavení písma</translation> <translation id="4372884569765913867">1:1</translation> +<translation id="4374831787438678295">Instalační program Linuxu</translation> <translation id="4375035964737468845">Otevírání stažených souborů</translation> <translation id="4377363674125277448">Došlo k problému s certifikátem serveru.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2305,6 +2327,7 @@ <translation id="4576541033847873020">Párování zařízení Bluetooth</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> nelze odeslat.</translation> <translation id="4580526846085481512">Opravdu chcete tyto položky ($1) smazat?</translation> +<translation id="4582497162516204941">Instalovat pomocí Linuxu (beta)</translation> <translation id="4582563038311694664">Resetovat všechna nastavení</translation> <translation id="4585793705637313973">Úprava stránky</translation> <translation id="4589268276914962177">Nový terminál</translation> @@ -2548,6 +2571,7 @@ <translation id="4953808748584563296">Výchozí oranžový avatar</translation> <translation id="4955814292505481804">Roční</translation> <translation id="4957949153200969297">Povolit jen funkce související se synchronizací prohlížeče <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Hesla se ukládají do vašeho účtu Google, abyste je mohli používat na všech zařízeních</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Vybraná složka obsahuje citlivé soubory. Opravdu chcete aplikaci $1 udělit trvalý přístup ke čtení této složky?</translation> <translation id="4964455510556214366">Uspořádání</translation> @@ -2727,6 +2751,7 @@ <translation id="5240817131241497236">Nastavení, která v Chromu ovládají synchronizaci, personalizaci a další služby Google, se změnila. Může to mít dopad na vaše aktuální nastavení.</translation> <translation id="5241128660650683457">Čtení veškerých dat na navštívených webových stránkách</translation> <translation id="5242724311594467048">Aktivovat rozšíření <ph name="EXTENSION_NAME" />?</translation> +<translation id="5243522832766285132">Zkuste to znovu za okamžik</translation> <translation id="5244474230056479698">Údaje se synchronizují do účtu <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Aplikace <ph name="APP_NAME" /> selhala. Klinutím na tuto bublinu aplikaci restartujete.</translation> <translation id="5247051749037287028">Zobrazovaný název (volitelné)</translation> @@ -2748,6 +2773,7 @@ <translation id="5264148714798105376">Tato akce může chvíli trvat.</translation> <translation id="5264252276333215551">Chcete-li aplikaci spustit v režimu veřejného terminálu, připojte se k internetu.</translation> <translation id="5265562206369321422">Offline déle než týden</translation> +<translation id="5265797726250773323">Při instalaci došlo k chybě</translation> <translation id="5266113311903163739">Chyba při importu certifikační autority</translation> <translation id="5269977353971873915">Tisk se nezdařil</translation> <translation id="5271549068863921519">Uložit heslo</translation> @@ -2770,6 +2796,7 @@ <translation id="529175790091471945">Naformátovat toto zařízení</translation> <translation id="5292195676005197571">Většinu klíčů lze použít stisknutím tlačítka</translation> <translation id="5293170712604732402">Obnovit nastavení na původní výchozí hodnoty</translation> +<translation id="5297082477358294722">Heslo bylo uloženo. Uložená hesla můžete zobrazit a spravovat v: <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Autor motivu</translation> <translation id="5299109548848736476">Do Not Track</translation> <translation id="5299682071747318445">Všechny údaje jsou šifrovány pomocí vlastního hesla pro synchronizaci.</translation> @@ -2998,6 +3025,7 @@ <translation id="5612720917913232150">Web <ph name="URL" /> chce použít polohu vašeho počítače</translation> <translation id="5612734644261457353">Je nám líto, vaše heslo se stále nedaří ověřit. Poznámka: Pokud jste heslo nedávno změnili, vaše nové heslo bude použitelné až po odhlášení. Použijte své staré heslo.</translation> <translation id="5614190747811328134">Sdělení pro uživatele</translation> +<translation id="5614553682702429503">Uložit heslo?</translation> <translation id="561698261642843490">Zavřete Firefox</translation> <translation id="5618075537869101857">Kruci, aplikaci pro režim veřejného terminálu se nepodařilo spustit.</translation> <translation id="5618333180342767515">(Může to trvat i několik minut.)</translation> @@ -3038,6 +3066,7 @@ <translation id="5677503058916217575">Jazyk stránky:</translation> <translation id="5677928146339483299">Zablokováno</translation> <translation id="5678550637669481956">Oprávnění ke čtení a zápisu na jednotku <ph name="VOLUME_NAME" /> bylo uděleno.</translation> +<translation id="5678784840044122290">Aplikace pro Linux bude k dispozici v Terminálu a může se pro ni také zobrazovat ikona ve Spouštěči.</translation> <translation id="5678955352098267522">Čtení vašich dat na webu <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identifikátor položky</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Odpojení od archivu nebo virtuálního disku nelze provést<ph name="END_BOLD" /> @@ -3133,6 +3162,7 @@ <translation id="5832805196449965646">Přidat uživatele</translation> <translation id="583281660410589416">Neznámé</translation> <translation id="5832976493438355584">Uzamčeno</translation> +<translation id="5833397272224757657">Používá k personalizaci obsah navštěvovaných webů a aktivitu a interakce v prohlížeči</translation> <translation id="5833610766403489739">Soubor ve spravovaných umístěních nebyl nalezen. Zkontrolujte prosím nastavení umístění stažených souborů a zkuste to znovu.</translation> <translation id="5833726373896279253">Toto nastavení může upravit pouze vlastník.</translation> <translation id="5834581999798853053">Zbývá přibližně <ph name="TIME" /> min</translation> @@ -3186,6 +3216,7 @@ <translation id="5908769186679515905">Blokovat spouštění obsahu Flash na webech</translation> <translation id="5910363049092958439">Uložit o&brázek jako...</translation> <translation id="5911737117543891828">Dočasné offline soubory na Disku Google budou smazány. Soubory, u kterých jste nastavili dostupnost v režimu offline, z tohoto zařízení smazány nebudou.</translation> +<translation id="5911887972742538906">Při instalaci aplikace pro Linux došlo k chybě.</translation> <translation id="5912378097832178659">Upravit vyhledávače...</translation> <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bitů): <ph name="MODULUS_HEX_DUMP" /> @@ -3372,6 +3403,7 @@ <translation id="6198102561359457428">Odhlaste se a poté se znovu přihlaste...</translation> <translation id="6198252989419008588">Změnit kód PIN</translation> <translation id="6199801702437275229">Čeká se na informace o volném místě...</translation> +<translation id="6201792273624501289">Aplikace pro Linux</translation> <translation id="6204015976622790023">Sledujte relevantní návrhy Asistenta související s obsahem na obrazovce.</translation> <translation id="6205710420833115353">Některé operace trvají neočekávaně dlouho. Chcete je zrušit?</translation> <translation id="6206311232642889873">&Kopírovat obrázek</translation> @@ -3848,6 +3880,7 @@ <translation id="6945221475159498467">Vybrat</translation> <translation id="694592694773692225">Na této stránce bylo zablokováno přesměrování.</translation> <translation id="6949306908218145636">Přidat do záložek otevřené stránky...</translation> +<translation id="6950627417367801484">Obnovit aplikace</translation> <translation id="6951153907720526401">Obslužné nástroje pro platby</translation> <translation id="6955446738988643816">Prozkoumat vyskakovací okna</translation> <translation id="6957231940976260713">Název služby</translation> @@ -3973,6 +4006,7 @@ <translation id="7127980134843952133">Historie stahování</translation> <translation id="7131040479572660648">Čtení vašich dat na webech <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Přidat strá&nku...</translation> +<translation id="7133578150266914903">Administrátor v tomto zařízení obnovuje předchozí verzi systému (<ph name="PROGRESS_PERCENT" />).</translation> <translation id="7134098520442464001">Zmenšit text</translation> <translation id="7136694880210472378">Nastavit jako výchozí</translation> <translation id="7136984461011502314">Vítá vás <ph name="PRODUCT_NAME" /></translation> @@ -4173,6 +4207,7 @@ <translation id="7463006580194749499">Přidat osobu</translation> <translation id="7464490149090366184">Komprimace se nezdařila, položka existuje: $1</translation> <translation id="7465778193084373987">Adresa URL pro odvolání certifikátu Netscape</translation> +<translation id="7469406957790636836">Chcete-li tuto funkci zapnout, nejdříve v sekci <ph name="BEGIN_LINK" />Jazyky a zadávání<ph name="END_LINK" /> zapněte kontrolu pravopisu</translation> <translation id="7469894403370665791">Automaticky připojit k této síti</translation> <translation id="747114903913869239">Chyba: Nelze dekódovat rozšíření</translation> <translation id="7473753388963818366">Připravte si zařízení <ph name="DEVICE_TYPE" /></translation> @@ -4268,6 +4303,7 @@ <translation id="7606992457248886637">Autority</translation> <translation id="7607002721634913082">Přerušeno</translation> <translation id="7607274158153386860">Požadovat stránky pro tablety</translation> +<translation id="7609148976235050828">Připojte se k internetu a zkuste to znovu</translation> <translation id="7611008212562900400">Prohledat zařízení, aplikace, web...</translation> <translation id="7616214729753637086">Registrace zařízení...</translation> <translation id="7617366389578322136">Připojování k zařízení <ph name="DEVICE_NAME" /></translation> @@ -4336,6 +4372,7 @@ <translation id="7730449930968088409">Zachycení obsahu obrazovky</translation> <translation id="7730494089396812859">Zobrazit podrobnosti zálohování do cloudu</translation> <translation id="7732111077498238432">Síť podléhá zásadám</translation> +<translation id="7737238973539693982">Vymazat Linux (beta)</translation> <translation id="773905249182896430">Chrání vás a vaše zařízení před nebezpečnými weby</translation> <translation id="7740996059027112821">Standardně</translation> <translation id="7748528009589593815">Předchozí karta</translation> @@ -4524,6 +4561,7 @@ <translation id="7974936243149753750">Přesah obrazu</translation> <translation id="7977551819349545646">Aktualizace zařízení Chromebox...</translation> <translation id="7978412674231730200">Soukromý klíč</translation> +<translation id="7978450511781612192">Tímto se odhlásíte ze svých účtů Google. Vaše záložky, historie, hesla a další údaje již nebudou synchronizovány.</translation> <translation id="7979036127916589816">Chyba synchronizace</translation> <translation id="7980084013673500153">ID díla: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Předběžně načítat stránky pro rychlejší procházení a vyhledávání</translation> @@ -4688,6 +4726,7 @@ <translation id="8226619461731305576">Fronta</translation> <translation id="8226742006292257240">Níže je náhodně vygenerované heslo modulu TPM, které bylo přiřazeno vašemu počítači:</translation> <translation id="8227119283605456246">Přiložit soubor</translation> +<translation id="8230134520748321204">Uložit heslo pro <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pomozte našim technikům opravit tento problém. Sdělte nám, co se stalo těsně před zobrazením zprávy o chybě profilu:</translation> <translation id="8234989666557591529">Zvolte telefon k odemykání zařízení <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Synchronizovat jako <ph name="FULL_NAME" /></translation> @@ -4806,6 +4845,7 @@ <translation id="8438328416656800239">Přejděte na chytrý prohlížeč</translation> <translation id="8438566539970814960">Vylepšit vyhledávání a procházení</translation> <translation id="8439506636278576865">Nabízet překlad stránek v tomto jazyce</translation> +<translation id="8440630305826533614">Aplikace pro Linux</translation> <translation id="8446884382197647889">Další informace</translation> <translation id="8447409163267621480">Zahrňte klávesu Ctrl nebo Alt</translation> <translation id="8448729345478502352">Umožňuje zvětšit nebo zmenšit položky na obrazovce</translation> @@ -4850,6 +4890,7 @@ <translation id="8497219075884839166">Nástroje Windows</translation> <translation id="8498214519255567734">Usnadnit čtení a sledování obrazovky při tlumeném osvětlení</translation> <translation id="8498395510292172881">Pokračovat ve čtení v Chromu</translation> +<translation id="8502536196501630039">Chcete-li používat aplikace z Google Play, musíte své aplikace nejdříve obnovit. Některá data mohla být ztracena.</translation> <translation id="8503813439785031346">Uživatelské jméno</translation> <translation id="850875081535031620">Nebyl nalezen žádný škodlivý software</translation> <translation id="8509646642152301857">Stažení slovníku pro kontrolu pravopisu se nezdařilo.</translation> @@ -4979,6 +5020,7 @@ <translation id="8698464937041809063">Nákres Google</translation> <translation id="869884720829132584">Nabídka Aplikace</translation> <translation id="869891660844655955">Datum vypršení platnosti</translation> +<translation id="8699566574894671540">Chcete-li tuto funkci zapnout, v nabídce Upravit vyberte Kontrolovat během psaní pravopis</translation> <translation id="870073306461175568">Sdílené síťové složky</translation> <translation id="8701677791353449257">Název zařízení musí odpovídat regulárnímu výrazu <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Tato akce trvá déle, než je obvyklé. Můžete počkat, nebo akci zrušit a zkusit ji provést znovu později.</translation> @@ -5018,6 +5060,7 @@ <p>Konfiguraci můžete provést pomocí příkazového řádku. Další informace o příznacích a proměnných prostředí zobrazíte zadáním příkazu: <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">Větší</translation> +<translation id="8756969031206844760">Aktualizovat heslo?</translation> <translation id="8757090071857742562">Plochu nelze odeslat. Zkontrolujte, zda jste potvrdili výzvu k zahájení sdílení obrazovky.</translation> <translation id="8757640015637159332">Vstoupit do veřejné relace</translation> <translation id="8757742102600829832">Vyberte zařízení Chromebox, ke kterému se chcete připojit</translation> @@ -5174,7 +5217,9 @@ <translation id="9009369504041480176">Nahrávání (<ph name="PROGRESS_PERCENT" /> %)...</translation> <translation id="9011163749350026987">Vždy zobrazovat ikonu</translation> <translation id="9011178328451474963">Poslední karta</translation> +<translation id="9013707997379828817">Administrátor v tomto zařízení obnovil předchozí verzi systému. Uložte důležité soubory a poté zařízení restartujte. Veškerá data v zařízení budou ztracena.</translation> <translation id="9014987600015527693">Zobrazit jiný telefon</translation> +<translation id="9018218886431812662">Instalace byla dokončena</translation> <translation id="901834265349196618">e-mail</translation> <translation id="9019062154811256702">Čtení a změna nastavení automatického vyplňování</translation> <translation id="9020362265352758658">4×</translation> @@ -5198,6 +5243,7 @@ <translation id="9038649477754266430">Používat službu předpovídání k rychlejšímu načítání stránek</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Vypnout zvuk karet</translation> +<translation id="9040661932550800571">Aktualizovat heslo pro web <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Správce přístup k místním souborům v tomto počítači zakázal</translation> <translation id="9042893549633094279">Ochrana soukromí a zabezpečení</translation> <translation id="904451693890288097">Zadejte prosím přístupový klíč pro zařízení <ph name="DEVICE_NAME" />:</translation> @@ -5302,6 +5348,7 @@ <translation id="9203478404496196495">Zapnout zvuk karty</translation> <translation id="9203904171912129171">Vyberte zařízení</translation> <translation id="9203962528777363226">Správce zařízení zakázal přidávat nové uživatele.</translation> +<translation id="9213073329713032541">Instalace byla úspěšně spuštěna.</translation> <translation id="9214520840402538427">Jejda! Vypršel časový limit inicializace atributů doby instalace. Kontaktujte zástupce podpory.</translation> <translation id="9214695392875603905">Sladký košíček</translation> <translation id="9215293857209265904">Bylo přidáno rozšíření <ph name="EXTENSION_NAME" /></translation> @@ -5356,6 +5403,7 @@ <translation id="988978206646512040">Prázdné přístupové heslo není povoleno</translation> <translation id="992032470292211616">Rozšíření, aplikace a motivy mohou poškodit vaše zařízení. Opravdu chcete pokračovat?</translation> <translation id="992592832486024913">Deaktivovat funkci ChromeVox (hlasovou odezvu)</translation> +<translation id="993540765962421562">Probíhá instalace</translation> <translation id="994289308992179865">&Opakovat</translation> <translation id="996250603853062861">Navazování zabezpečeného připojení...</translation> <translation id="998747458861718449">&Prozkoumat</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb index ac45bd8e..41980047 100644 --- a/chrome/app/resources/generated_resources_da.xtb +++ b/chrome/app/resources/generated_resources_da.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Søger...</translation> <translation id="1316495628809031177">Synkroniseringen er sat på pause</translation> <translation id="1319979322914001937">En app, der viser en filtreret liste over udvidelser fra Chrome Webshop. Udvidelserne på listen kan installeres direkte fra appen.</translation> +<translation id="1322046419516468189">Se og administrer gemte adgangskoder på din <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Log ind på Chrome for at få adgang til dine faner på dine andre enheder.</translation> <translation id="1327074568633507428">Printer i Google Cloudprinter</translation> <translation id="1327977588028644528">Gateway</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Hjælp</translation> <translation id="162035744160882748">Aktivér synkronisering, tilpasning og andre Google-tjenester</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Billederne er ikke tilgængelige i øjeblikket. Opret internetforbindelse igen for at se samlingerne med baggrunde.</translation> <translation id="1624026626836496796">Dette vil kun ske én gang, og dine loginoplysninger gemmes ikke.</translation> <translation id="1627276047960621195">Filbeskrivelser</translation> <translation id="1627408615528139100">Er allerede downloadet</translation> <translation id="1632803087685957583">Giver dig mulighed for at justere gentagelseshastighed, ordforslag og meget mere for tastaturet</translation> <translation id="1635033183663317347">Installeret af din tilsynsførende.</translation> +<translation id="1635885551358739414">Google kan bruge indhold på de websites, du besøger, samt browseraktivitet og -interaktioner til at tilpasse Chrome og andre Google-tjenester som f.eks. Oversæt, Søgning og annoncer. Du kan tilpasse dette i Indstillinger.</translation> <translation id="1637224376458524414">Få dette bogmærke på din iPhone</translation> <translation id="1637765355341780467">Der gik noget galt ved åbningen af din profil. Nogle funktioner er muligvis ikke tilgængelige.</translation> <translation id="1639239467298939599">Indlæser...</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">Adgangskoden er for kort.</translation> <translation id="1661867754829461514">Pinkode mangler</translation> <translation id="16620462294541761">Din adgangskode blev ikke bekræftet. Prøv igen.</translation> +<translation id="1662550410081243962">Gem og udfyld betalingsmetoder</translation> <translation id="166278006618318542">Algoritme for emnets offentlige nøgle</translation> <translation id="166439687370499867">Det er ikke tilladt at ændre delte netværkskonfigurationer</translation> <translation id="1665611772925418501">Filen kunne ikke ændres.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546"><ph name="URL" /> ønsker at se din sikkerhedsnøgles fabrikat og model</translation> <translation id="167832068858235403">lyd ned</translation> <translation id="1679068421605151609">Udviklerværktøjer</translation> +<translation id="1680849702532889074">Der opstod en fejl ved installationen af Linux-appen.</translation> <translation id="16815041330799488">Tillad ikke, at websites kan se tekst og billeder, der er kopieret til udklipsholderen</translation> <translation id="1682548588986054654">Nyt inkognitovindue</translation> <translation id="168715261339224929">Aktivér synkronisering for at se dine bogmærker på alle dine enheder.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">Frigiv faner</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> kan muligvis ikke holdes opdateret af sig selv</translation> <translation id="1736419249208073774">Mere</translation> +<translation id="1736827427463982819">Luk Linux (beta)</translation> <translation id="1737968601308870607">Indgiv fejl</translation> <translation id="1741314857973421784">Fortsæt</translation> <translation id="174173592514158117">Vis alle Play-mapper</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567"><ph name="URL" /> anmoder om at gemme store mængder data permanent på din lokale computer</translation> <translation id="1997616988432401742">Dine certifikater</translation> <translation id="1999115740519098545">Ved opstart</translation> +<translation id="2000419248597011803">Sender visse cookies og søgninger fra adresselinjen og søgefeltet til din standardsøgemaskine</translation> <translation id="2001796770603320721">Administrer i Drev</translation> <translation id="2004663115385769400">Der kunne ikke åbnes med $1</translation> <translation id="200544492091181894">Du kan altid ændre dette senere i Indstillinger</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">Fortsæt med at blokere cookies</translation> <translation id="204622017488417136">Enheden nulstilles til sin forrige installerede version af Chrome. Alle brugerkonti og lokale data fjernes. Du kan ikke fortryde denne handling.</translation> <translation id="2048182445208425546">Få adgang til din netværkstrafik</translation> +<translation id="2048653237708779538">Handlingen er ikke tilgængelig</translation> <translation id="204914487372604757">Opret genvej</translation> <translation id="2050339315714019657">Stående</translation> <translation id="2053312383184521053">Data for inaktiv tilstand</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724">Pluginnet <ph name="PEPPER_PLUGIN_NAME" /> på <ph name="PEPPER_PLUGIN_DOMAIN" /> anmoder om adgang til din computer</translation> <translation id="2178614541317717477">Sammensat nøglecenter</translation> <translation id="218070003709087997">Brug et tal til at angive, hvor mange kopier der skal udskrives (1 til 999).</translation> +<translation id="2183558561014688873">Få adgang til Google-assistenten, hver gang du siger "Ok Google", når din enhed er tændt og oplåst.</translation> <translation id="2187895286714876935">Fejl ved import af servercertifikat</translation> <translation id="2187906491731510095">Udvidelserne er opdateret</translation> <translation id="2188881192257509750">Åbn <ph name="APPLICATION" /></translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">GPU-proces</translation> <translation id="2282155092769082568">Webadresse til automatisk konfiguration:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Gem og udfyld adresser</translation> <translation id="2286841657746966508">Faktureringsadresse</translation> <translation id="2288181517385084064">Skift til videooptagelse</translation> <translation id="2288735659267887385">Indstillinger for hjælpefunktioner</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">Samlet filstørrelse</translation> <translation id="2428510569851653187">Beskriv, hvad du foretog dig, da fanen gik ned</translation> <translation id="2431027948063157455">Google Assistent kunne ikke indlæses. Tjek din netværksforbindelse, og prøv igen.</translation> +<translation id="2432753757290432042">Linux (beta) skal opdateres</translation> <translation id="2433452467737464329">Tilføj et forespørgselsparameter i webadressen for at opdatere siden automatisk: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Udseende</translation> <translation id="2433836460518180625">Lås kun denne enhed op</translation> @@ -1182,6 +1193,7 @@ <translation id="2775104091073479743">Rediger fingeraftryk</translation> <translation id="2776441542064982094">Det ser ud til, at der ikke er registreret nogen tilgængelige enheder på netværket. Hvis din enhed er tændt og har forbindelse til internettet, kan du prøve at registrere den ved hjælp af vejledningen i manualen.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Der opstod en fejl ved installation af Linux-appen</translation> <translation id="2783298271312924866">Downloadet</translation> <translation id="2783321960289401138">Opret genvej...</translation> <translation id="2783829359200813069">Vælg krypteringstyper</translation> @@ -1206,6 +1218,7 @@ <translation id="2812944337881233323">Prøv at logge ud og ind igen.</translation> <translation id="2812989263793994277">Vis ikke billeder</translation> <translation id="2814489978934728345">Stop indlæsning af denne side</translation> +<translation id="281504910091592009">Se og administrer gemte adgangskoder på din <ph name="BEGIN_LINK" />Google-konto<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Bogmærkelinje</translation> <translation id="2815693974042551705">Bogmærkemappe</translation> <translation id="2818476747334107629">Printeroplysninger</translation> @@ -1286,6 +1299,7 @@ <translation id="2939938020978911855">Vis tilgængelige Bluetooth-enheder</translation> <translation id="2941112035454246133">Lav</translation> <translation id="2942560570858569904">Venter...</translation> +<translation id="2942581856830209953">Tilpas denne side</translation> <translation id="2943400156390503548">Slides</translation> <translation id="2943503720238418293">Brug et kortere navn</translation> <translation id="2946119680249604491">Tilføj forbindelse</translation> @@ -1772,6 +1786,7 @@ <translation id="3693415264595406141">Adgangskode:</translation> <translation id="3694027410380121301">Vælg forrige fane</translation> <translation id="3699624789011381381">Mailadresse</translation> +<translation id="3699920817649120894">Vil du deaktivere synkronisering og tilpasning?</translation> <translation id="3700888195348409686">Præsenterer (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004"><ph name="URL" /> blev inkluderet i dine opstartssider.</translation> <translation id="370415077757856453">JavaScript er blokeret</translation> @@ -1869,6 +1884,7 @@ <translation id="3827774300009121996">&Fuld skærm</translation> <translation id="3828029223314399057">Søg i bogmærker</translation> <translation id="3830674330436234648">Der er ingen tilgængelig afspilning.</translation> +<translation id="3831436149286513437">Google Drev-søgeforslag</translation> <translation id="3831486154586836914">Tilstanden for vinduesoversigt er aktiveret</translation> <translation id="383161972796689579">Ejeren af denne enhed har deaktiveret tilføjelse af nye brugere</translation> <translation id="3834775135533257713">Appen "<ph name="TO_INSTALL_APP_NAME" />" kunne ikke tilføjes, da den er i strid med "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1902,6 +1918,7 @@ <translation id="3871092408932389764">Laveste</translation> <translation id="3872220884670338524">Flere handlinger – gemt konto for <ph name="USERNAME" /> på <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Din enhed holder op med at svare, hvis du ikke frigør diskplads.</translation> +<translation id="3873315167136380065">Du kan aktivere indstillingen ved at <ph name="BEGIN_LINK" />nulstille synkronisering<ph name="END_LINK" /> for at fjerne din adgangssætning til synkronisering</translation> <translation id="3878840326289104869">Opretter administreret bruger</translation> <translation id="3879748587602334249">Downloadadministrator</translation> <translation id="3880709822663530586">Din sikkerhedsnøgle fungerer kun, når Bluetooth er aktiveret på din enhed</translation> @@ -2025,6 +2042,7 @@ <translation id="4068776064906523561">Gemte fingeraftryk</translation> <translation id="407173827865827707">Ved klik</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: loginfejl</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certifikat til e-mailunderskriver</translation> <translation id="407520071244661467">Skaler</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> kunne ikke castes.</translation> @@ -2092,6 +2110,7 @@ <translation id="4192273449750167573">Gennemgå dine indstillinger på næste skærm</translation> <translation id="4193154014135846272">Google-dokument</translation> <translation id="4194570336751258953">Aktivér berøringsklik</translation> +<translation id="4195249722193633765">Installer appen med Linux (beta)</translation> <translation id="4195643157523330669">Åbn på ny fane</translation> <translation id="4195814663415092787">Fortsæt, hvor du slap</translation> <translation id="4197674956721858839">Valg af komprimering</translation> @@ -2152,7 +2171,9 @@ <translation id="428608937826130504">Hyldeelement 8</translation> <translation id="4287502004382794929">Du har ikke nok softwarelicenser til at tilmelde denne enhed. Kontakt salgsafdelingen for at købe flere. Hvis du mener, at du får vist denne meddelelse ved en fejl, bedes du kontakte support.</translation> <translation id="4289540628985791613">Oversigt</translation> +<translation id="4295072614469448764">Appen er tilgængelig i din terminal. Der vises muligvis også et ikon på din appliste.</translation> <translation id="4296575653627536209">Tilføj en administreret bruger</translation> +<translation id="4297219207642690536">Genstart og nulstil</translation> <translation id="4297322094678649474">Skift sprog</translation> <translation id="4300305918532693141">Hvis du vil ændre denne indstilling, skal du<ph name="BEGIN_LINK" />nulstille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">lang (2 sek.)</translation> @@ -2188,6 +2209,7 @@ <translation id="4370975561335139969">Den mail og adgangskode, du indtastede, stemmer ikke overens</translation> <translation id="437184764829821926">Avancerede indstillinger for skrifttype</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Linux-installationsprogram</translation> <translation id="4375035964737468845">Åbne downloadede filer</translation> <translation id="4377363674125277448">Der opstod et problem med serverens certifikat.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2306,6 +2328,7 @@ <translation id="4576541033847873020">Par Bluetooth-enhed</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> kunne ikke castes.</translation> <translation id="4580526846085481512">Er du sikker på, at du vil slette $1 elementer?</translation> +<translation id="4582497162516204941">Installer med Linux (beta)</translation> <translation id="4582563038311694664">Nulstil alle indstillinger</translation> <translation id="4585793705637313973">Rediger side</translation> <translation id="4589268276914962177">Ny terminal</translation> @@ -2549,6 +2572,7 @@ <translation id="4953808748584563296">Orange standardavatar</translation> <translation id="4955814292505481804">Årligt</translation> <translation id="4957949153200969297">Aktivér kun funktioner, der er relateret til <ph name="IDS_SHORT_PRODUCT_NAME" />-synkronisering</translation> +<translation id="4959262764292427323">Adgangskoder gemmes på din Google-konto, så du kan bruge dem på enhver enhed</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Den mappe, du har valgt, indeholder følsomme filer. Vil du give "$1" permanent læseadgang til denne mappe?</translation> <translation id="4964455510556214366">Opstilling</translation> @@ -2728,6 +2752,7 @@ <translation id="5240817131241497236">De indstillinger, der styrer synkronisering, tilpasning og andre Google-tjenester i Chrome, er blevet ændret. Dette kan påvirke dine aktuelle indstillinger.</translation> <translation id="5241128660650683457">Læs alle dine data på de websites, du besøger</translation> <translation id="5242724311594467048">Skal "<ph name="EXTENSION_NAME" />" aktiveres?</translation> +<translation id="5243522832766285132">Prøv igen om et øjeblik</translation> <translation id="5244474230056479698">Synkroniserer til <ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> er gået ned. Klik her for at genstarte appen.</translation> <translation id="5247051749037287028">Vist navn (valgfrit)</translation> @@ -2750,6 +2775,7 @@ <translation id="5264148714798105376">Dette kan tage et øjeblik.</translation> <translation id="5264252276333215551">Opret forbindelse til internettet for at starte din app i terminaltilstand.</translation> <translation id="5265562206369321422">Offline i mere end en uge</translation> +<translation id="5265797726250773323">Der opstod en fejl ved installationen</translation> <translation id="5266113311903163739">Fejl under import af certificeringsautoritet</translation> <translation id="5269977353971873915">Udskrift mislykkedes</translation> <translation id="5271549068863921519">Gem adgangskode</translation> @@ -2772,6 +2798,7 @@ <translation id="529175790091471945">Formatér denne enhed</translation> <translation id="5292195676005197571">På de fleste nøgler skal du bare trykke på knappen for at bruge dem</translation> <translation id="5293170712604732402">Gendan indstillinger til deres oprindelige standardkonfiguration</translation> +<translation id="5297082477358294722">Adgangskoden blev gemt. Se og administrer gemte adgangskoder på din <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Tema oprettet af</translation> <translation id="5299109548848736476">Do Not Track</translation> <translation id="5299682071747318445">Alle data er krypteret med din adgangssætning til synkronisering</translation> @@ -3000,6 +3027,7 @@ <translation id="5612720917913232150"><ph name="URL" /> anmoder om at anvende computerens placering</translation> <translation id="5612734644261457353">Din adgangskode kunne desværre stadig ikke bekræftes. Bemærk! Hvis du har ændret din adgangskode for nylig, anvendes din nye adgangskode først, når du har logget ud. Du skal bruge den gamle adgangskode her.</translation> <translation id="5614190747811328134">Brugerbesked</translation> +<translation id="5614553682702429503">Vil du gemme adgangskoden?</translation> <translation id="561698261642843490">Luk Firefox</translation> <translation id="5618075537869101857">Kioskapplikationen kunne desværre ikke startes.</translation> <translation id="5618333180342767515">(dette kan tage et par minutter)</translation> @@ -3040,6 +3068,7 @@ <translation id="5677503058916217575">Sidens sprog:</translation> <translation id="5677928146339483299">Blokeret</translation> <translation id="5678550637669481956">Læse- og skriveadgang til <ph name="VOLUME_NAME" /> er blevet tildelt.</translation> +<translation id="5678784840044122290">Linux-appen er tilgængelig i din terminal, og der vises muligvis også et ikon for appen på din appliste.</translation> <translation id="5678955352098267522">Læs dine data på <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Aktiv-id</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Forbindelsen til et arkiv eller en virtuel disk kan ikke afbrydes<ph name="END_BOLD" /> @@ -3135,6 +3164,7 @@ <translation id="5832805196449965646">Tilføj person</translation> <translation id="583281660410589416">Ukendt</translation> <translation id="5832976493438355584">Låst</translation> +<translation id="5833397272224757657">Anvender indhold på websites, du besøger, samt browseraktivitet og -interaktioner, så din brugeroplevelse tilpasses</translation> <translation id="5833610766403489739">Denne fil er blevet væk. Kontrollér indstillingerne for din downloadplacering, og prøv igen.</translation> <translation id="5833726373896279253">Disse indstillinger kan kun ændres af ejeren:</translation> <translation id="5834581999798853053">Omkring <ph name="TIME" /> minutter tilbage</translation> @@ -3188,6 +3218,7 @@ <translation id="5908769186679515905">Bloker websites fra at køre Flash</translation> <translation id="5910363049092958439">Ge&m billede som...</translation> <translation id="5911737117543891828">Midlertidige Google Drev-offlinefiler slettes. Filer, du har angivet som tilgængelige offline, slettes ikke fra denne enhed.</translation> +<translation id="5911887972742538906">Der opstod en fejl ved installationen af Linux-appen.</translation> <translation id="5912378097832178659">&Rediger søgemaskiner...</translation> <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> bit): <ph name="MODULUS_HEX_DUMP" /> @@ -3375,6 +3406,7 @@ <translation id="6198102561359457428">Log ud, og log derefter ind igen...</translation> <translation id="6198252989419008588">Skift pinkode</translation> <translation id="6199801702437275229">Venter på oplysninger om ledig plads...</translation> +<translation id="6201792273624501289">Linux-apps</translation> <translation id="6204015976622790023">Se relevante forslag fra Google-assistenten, som er relateret til det, der vises på skærmen.</translation> <translation id="6205710420833115353">Nogle handlinger tager længere tid end forventet. Vil du afbryde dem?</translation> <translation id="6206311232642889873">Ko&pier billede</translation> @@ -3851,6 +3883,7 @@ <translation id="6945221475159498467">Vælg</translation> <translation id="694592694773692225">Omdirigering er blokeret på denne side.</translation> <translation id="6949306908218145636">Tilføjer åbne sider som bogmærke...</translation> +<translation id="6950627417367801484">Gendan apps</translation> <translation id="6951153907720526401">Betalingshandlere</translation> <translation id="6955446738988643816">Undersøg pop op-vindue</translation> <translation id="6957231940976260713">Tjenestens navn</translation> @@ -3976,6 +4009,7 @@ <translation id="7127980134843952133">Downloadhistorik</translation> <translation id="7131040479572660648">Læs dine data på <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> og <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Tilføj side...</translation> +<translation id="7133578150266914903">Din administrator gendanner en tidligere version på denne enhed (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Gør teksten mindre</translation> <translation id="7136694880210472378">Gør til standard</translation> <translation id="7136984461011502314">Velkommen til <ph name="PRODUCT_NAME" /></translation> @@ -4176,6 +4210,7 @@ <translation id="7463006580194749499">Tilføj person</translation> <translation id="7464490149090366184">Komprimering mislykkedes, elementet findes: "$1"</translation> <translation id="7465778193084373987">Webadresse for tilbagekaldelse af Netscape-certifikat</translation> +<translation id="7469406957790636836">Hvis du vil aktivere indstillingen, skal du først aktivere stavekontrol under <ph name="BEGIN_LINK" />Sprog og indtastning<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Opret automatisk forbindelse til dette netværk</translation> <translation id="747114903913869239">Fejl: Udvidelsen kunne ikke afkodes</translation> <translation id="7473753388963818366">Lad os gøre din <ph name="DEVICE_TYPE" /> klar til dig</translation> @@ -4273,6 +4308,7 @@ <translation id="7606992457248886637">Autoriteter</translation> <translation id="7607002721634913082">Sat på pause</translation> <translation id="7607274158153386860">Anmod om tabletwebsite</translation> +<translation id="7609148976235050828">Opret forbindelse til internettet, og prøv igen.</translation> <translation id="7611008212562900400">Søg på din enhed, i apps, på nettet...</translation> <translation id="7616214729753637086">Tilmelder enhed...</translation> <translation id="7617366389578322136">Opretter forbindelse til "<ph name="DEVICE_NAME" />"</translation> @@ -4341,6 +4377,7 @@ <translation id="7730449930968088409">Tage et screenshot af dit indhold</translation> <translation id="7730494089396812859">Vis oplysninger om sikkerhedskopiering i skyen</translation> <translation id="7732111077498238432">Netværket er underlagt politikker</translation> +<translation id="7737238973539693982">Fjern Linux (beta)</translation> <translation id="773905249182896430">Beskytter dig og din enhed mod farlige websites</translation> <translation id="7740996059027112821">Standard</translation> <translation id="7748528009589593815">Forrige fane</translation> @@ -4528,6 +4565,7 @@ <translation id="7974936243149753750">Overscan</translation> <translation id="7977551819349545646">Chromebox opdateres...</translation> <translation id="7978412674231730200">Privat nøgle</translation> +<translation id="7978450511781612192">Dermed logges du ud af dine Google-konti. Dine bogmærker, din historik, dine adgangskoder m.m. synkroniseres ikke længere.</translation> <translation id="7979036127916589816">Synkroniseringsfejl</translation> <translation id="7980084013673500153">Aktiv-id: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Forudindlæs sider, så du kan browse og søge hurtigere</translation> @@ -4692,6 +4730,7 @@ <translation id="8226619461731305576">Kø</translation> <translation id="8226742006292257240">Nedenfor ses den vilkårlige TPM-adgangskode, der er tilknyttet din computer:</translation> <translation id="8227119283605456246">Vedhæft fil</translation> +<translation id="8230134520748321204">Vil du gemme adgangskoden til <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Hjælp vores softwareudviklere med at løse dette problem. Fortæl os, hvad der skete, lige før du fik fejlmeddelelsen for profilen:</translation> <translation id="8234989666557591529">Vælg en telefon for at låse din <ph name="DEVICE_TYPE" /> op</translation> <translation id="8239020549147958415">Synkroniser som <ph name="FULL_NAME" /></translation> @@ -4810,6 +4849,7 @@ <translation id="8438328416656800239">Skift til en smart browser</translation> <translation id="8438566539970814960">Gør søgninger og browsing endnu bedre</translation> <translation id="8439506636278576865">Tilbyd at oversætte sider på dette sprog</translation> +<translation id="8440630305826533614">Linux-apps</translation> <translation id="8446884382197647889">Få flere oplysninger</translation> <translation id="8447409163267621480">Skal indeholde enten Ctrl eller Alt</translation> <translation id="8448729345478502352">Gør elementer på skærmen mindre eller større</translation> @@ -4854,6 +4894,7 @@ <translation id="8497219075884839166">Windows-værktøjer</translation> <translation id="8498214519255567734">Gør din skærm mere behagelig at læse eller se på i svag belysning</translation> <translation id="8498395510292172881">Fortsæt læsningen i Chrome</translation> +<translation id="8502536196501630039">Hvis du vil bruge apps fra Google Play, skal du først gendanne dine apps. Nogle data kan være gået tabt.</translation> <translation id="8503813439785031346">Brugernavn</translation> <translation id="850875081535031620">Der blev ikke fundet skadelig software</translation> <translation id="8509646642152301857">Download af ordbog til stavekontrol mislykkedes.</translation> @@ -4983,6 +5024,7 @@ <translation id="8698464937041809063">Google-tegning</translation> <translation id="869884720829132584">Programmenu</translation> <translation id="869891660844655955">Udløbsdato</translation> +<translation id="8699566574894671540">Hvis du vil aktivere indstillingen, skal du først vælge Kontrollér stavning under indtastning i menuen Rediger</translation> <translation id="870073306461175568">Fildeling via netværk</translation> <translation id="8701677791353449257">Enhedsnavnet skal matche det regulære udtryk <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Det tager meget længere tid end normalt. Fortsæt med at vente, eller annuller og prøv igen senere.</translation> @@ -5023,6 +5065,7 @@ <p>Du kan dog stadig konfigurere via kommandolinjen. Se <code>man <ph name="PRODUCT_BINARY_NAME" /></code> for at få flere oplysninger om flag og miljøvariabler.</p></translation> <translation id="8755376271068075440">&Større</translation> +<translation id="8756969031206844760">Vil du opdatere adgangskoden?</translation> <translation id="8757090071857742562">Skrivebordet kunne ikke castes. Kontrollér, om du har bekræftet meddelelsen om at starte delingen af din skærm.</translation> <translation id="8757640015637159332">Start en offentlig session</translation> <translation id="8757742102600829832">Vælg en Chromebox, du vil oprette forbindelse til</translation> @@ -5179,7 +5222,9 @@ <translation id="9009369504041480176">Uploader (<ph name="PROGRESS_PERCENT" /> %)...</translation> <translation id="9011163749350026987">Vis altid ikon</translation> <translation id="9011178328451474963">Sidste fane</translation> +<translation id="9013707997379828817">Din administrator har gendannet en tidligere version på denne enhed. Gem vigtige filer, og genstart. Alle data på enheden slettes.</translation> <translation id="9014987600015527693">Vis en anden telefon</translation> +<translation id="9018218886431812662">Installationen er gennemført</translation> <translation id="901834265349196618">mail</translation> <translation id="9019062154811256702">Læse og redigere indstillinger for autofyld</translation> <translation id="9020362265352758658">4x</translation> @@ -5203,6 +5248,7 @@ <translation id="9038649477754266430">Brug en forudsigelsestjeneste til hurtigere sideindlæsning</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Slå fanernes lyd fra</translation> +<translation id="9040661932550800571">Vil du opdatere adgangskoden til <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Din administrator har deaktiveret adgangen til lokale filer på din maskine</translation> <translation id="9042893549633094279">Sikkerhed og privatliv</translation> <translation id="904451693890288097">Angiv adgangskoden for "<ph name="DEVICE_NAME" />":</translation> @@ -5307,6 +5353,7 @@ <translation id="9203478404496196495">Slå fanens lyd til</translation> <translation id="9203904171912129171">Vælg en enhed</translation> <translation id="9203962528777363226">Administratoren af denne enhed har deaktiveret tilføjelse af nye brugere</translation> +<translation id="9213073329713032541">Installationen er startet.</translation> <translation id="9214520840402538427">Ups! Initialiseringen af installationstidens attributter har fået timeout. Kontakt en supportmedarbejder.</translation> <translation id="9214695392875603905">Cupcake</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" er tilføjet</translation> @@ -5361,6 +5408,7 @@ <translation id="988978206646512040">Tomme adgangssætninger er ikke tilladt</translation> <translation id="992032470292211616">Udvidelser, apps og temaer kan skade din enhed. Er du sikker på, at du vil fortsætte?</translation> <translation id="992592832486024913">Deaktiver ChromeVox (talefeedback)</translation> +<translation id="993540765962421562">Installationen er i gang</translation> <translation id="994289308992179865">&Sløjfe</translation> <translation id="996250603853062861">Etablerer sikker forbindelse...</translation> <translation id="998747458861718449">U&ndersøg</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb index 41fb0bed..35b77a1d 100644 --- a/chrome/app/resources/generated_resources_de.xtb +++ b/chrome/app/resources/generated_resources_de.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Suche läuft...</translation> <translation id="1316495628809031177">Synchronisierung pausiert</translation> <translation id="1319979322914001937">Eine App, in der eine gefilterte Liste mit Erweiterungen für den Chrome Web Store angezeigt wird. Die angezeigten Erweiterungen können direkt aus der App installiert werden.</translation> +<translation id="1322046419516468189">Gespeicherte Passwörter in Ihrem <ph name="SAVED_PASSWORDS_STORE" /> aufrufen und verwalten</translation> <translation id="1326317727527857210">Melden Sie sich in Chrome an, um Tabs von Ihren anderen Geräten abzurufen.</translation> <translation id="1327074568633507428">Google Cloud Print-Drucker</translation> <translation id="1327977588028644528">Gateway</translation> @@ -415,11 +416,13 @@ <translation id="1618268899808219593">H&ilfe</translation> <translation id="162035744160882748">Synchronisierung, Personalisierung und andere Google-Dienste aktivieren</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Die Bilder sind momentan nicht verfügbar. Verbinden Sie sich noch einmal, um die Sammlungen anzusehen.</translation> <translation id="1624026626836496796">Die Anmeldung ist nur einmalig erforderlich und Ihre Anmeldedaten werden nicht gespeichert.</translation> <translation id="1627276047960621195">Dateideskriptoren</translation> <translation id="1627408615528139100">Bereits heruntergeladen</translation> <translation id="1632803087685957583">Ermöglicht die Anpassung der Wiederholungsrate, Wortvervollständigung und mehr für die Tastatur</translation> <translation id="1635033183663317347">Von deinem Erziehungsberechtigten installiert</translation> +<translation id="1635885551358739414">Google kann die Inhalte der von Ihnen besuchten Websites, Browseraktivitäten und Ihre anderen Interaktionen nutzen, um Chrome und andere Google-Dienste wie Übersetzer, die Google-Suche und Werbung zu personalisieren. Dies lässt sich in den Einstellungen ändern.</translation> <translation id="1637224376458524414">Dieses Lesezeichen auf dem iPhone abrufen</translation> <translation id="1637765355341780467">Beim Öffnen Ihres Profils ist ein Fehler aufgetreten. Einige Funktionen sind möglicherweise nicht verfügbar.</translation> <translation id="1639239467298939599">Wird geladen...</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">Das Passwort ist zu kurz.</translation> <translation id="1661867754829461514">PIN fehlt</translation> <translation id="16620462294541761">Ihr Passwort konnte nicht bestätigt werden. Bitte versuchen Sie es erneut.</translation> +<translation id="1662550410081243962">Zahlungsmethode speichern und ausfüllen</translation> <translation id="166278006618318542">Algorithmus für öffentlichen Schlüssel des Antragstellers</translation> <translation id="166439687370499867">Freigegebene Netzwerkkonfigurationen dürfen nicht geändert werden</translation> <translation id="1665611772925418501">Die Datei konnte nicht geändert werden.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546"><ph name="URL" /> möchte den Hersteller und das Modell Ihres Sicherheitsschlüssels aufrufen</translation> <translation id="167832068858235403">Leiser</translation> <translation id="1679068421605151609">Entwicklertools</translation> +<translation id="1680849702532889074">Bei der Installation Ihrer Linux-Anwendung ist ein Fehler aufgetreten.</translation> <translation id="16815041330799488">Websites keinen Zugriff auf Texte und Bilder gewähren, die sich in der Zwischenablage befinden</translation> <translation id="1682548588986054654">Neues &Inkognitofenster</translation> <translation id="168715261339224929">Aktivieren Sie die Synchronisierung, um Ihre Lesezeichen auf allen Ihren Geräten zu sehen.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">Tabs loslösen</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> kann sich möglicherweise nicht selbst aktualisieren</translation> <translation id="1736419249208073774">Entdecken</translation> +<translation id="1736827427463982819">Linux (Beta) herunterfahren</translation> <translation id="1737968601308870607">Fehler melden</translation> <translation id="1741314857973421784">Weiter</translation> <translation id="174173592514158117">Alle Google Play-Ordner anzeigen</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567"><ph name="URL" /> möchte umfangreiche Daten dauerhaft auf Ihrem lokalen Computer speichern</translation> <translation id="1997616988432401742">Meine Zertifikate</translation> <translation id="1999115740519098545">Beim Start</translation> +<translation id="2000419248597011803">Suchanfragen, die in die Adressleiste und das Suchfeld eingegeben wurden, sowie einige Cookies werden an Ihre Standardsuchmaschine gesendet</translation> <translation id="2001796770603320721">In Drive verwalten</translation> <translation id="2004663115385769400">Öffnen mit "$1" nicht möglich</translation> <translation id="200544492091181894">Dies kann jederzeit in den Einstellungen geändert werden</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">Cookies weiterhin blockieren</translation> <translation id="204622017488417136">Ihr Gerät wird auf die zuvor installierte Chrome-Version zurückgesetzt und alle Nutzerkonten und lokalen Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.</translation> <translation id="2048182445208425546">Auf Ihren Netzwerkverkehr zugreifen</translation> +<translation id="2048653237708779538">Aktion nicht verfügbar</translation> <translation id="204914487372604757">Verknüpfung erstellen</translation> <translation id="2050339315714019657">Hochformat</translation> <translation id="2053312383184521053">Daten für inaktiven Zustand</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724">Das Plug-in <ph name="PEPPER_PLUGIN_NAME" /> auf <ph name="PEPPER_PLUGIN_DOMAIN" /> möchte auf Ihren Computer zugreifen</translation> <translation id="2178614541317717477">Kompromittierung der Zertifizierungsstelle</translation> <translation id="218070003709087997">Geben Sie eine Zahl ein, um die Anzahl der zu druckenden Exemplare festzulegen (1 bis 999).</translation> +<translation id="2183558561014688873">Bei aktivem Bildschirm und entsperrtem Gerät steht Ihnen Google Assistant jederzeit zur Verfügung, wenn Sie "Ok Google" sagen.</translation> <translation id="2187895286714876935">Fehler beim Importieren des Serverzertifikats</translation> <translation id="2187906491731510095">Erweiterungen wurden aktualisiert</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> öffnen</translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">GPU-Verarbeitung</translation> <translation id="2282155092769082568">URL für Autokonfiguration:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Adressen speichern und ausfüllen</translation> <translation id="2286841657746966508">Rechnungsadresse</translation> <translation id="2288181517385084064">Zum Videorekorder wechseln</translation> <translation id="2288735659267887385">Einstellungen für Bedienungshilfen</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">Gesamtdateigröße</translation> <translation id="2428510569851653187">Beschreiben Sie, was Sie beim Absturz des Tabs getan haben</translation> <translation id="2431027948063157455">Google Assistant konnte nicht geladen werden. Überprüfen Sie Ihre Netzverbindung und versuchen Sie es noch einmal.</translation> +<translation id="2432753757290432042">Linux (Beta)-Update erforderlich</translation> <translation id="2433452467737464329">Fügen Sie einen Anfrageparameter zur URL hinzu, damit die Seite automatisch aktualisiert wird: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Darstellung</translation> <translation id="2433836460518180625">Gerät nur entsperren</translation> @@ -1180,6 +1191,7 @@ <translation id="2775104091073479743">Fingerabdrücke bearbeiten</translation> <translation id="2776441542064982094">Im Netzwerk wurden keine Geräte zum Registrieren gefunden. Wenn Ihr Gerät eingeschaltet und mit dem Internet verbunden ist, registrieren Sie es entsprechend der Anleitung des zugehörigen Gerätehandbuchs.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Fehler beim Installieren der Linux-Anwendung</translation> <translation id="2783298271312924866">Heruntergeladen</translation> <translation id="2783321960289401138">Verknüpfung erstellen...</translation> <translation id="2783829359200813069">Verschlüsselungstypen auswählen</translation> @@ -1204,6 +1216,7 @@ <translation id="2812944337881233323">Melden Sie sich ab und dann wieder an</translation> <translation id="2812989263793994277">Keine Bilder anzeigen</translation> <translation id="2814489978934728345">Seite nicht weiter laden</translation> +<translation id="281504910091592009">Gespeicherte Passwörter in Ihrem <ph name="BEGIN_LINK" />Google-Konto<ph name="END_LINK" /> ansehen und verwalten</translation> <translation id="2815500128677761940">Lesezeichenleiste</translation> <translation id="2815693974042551705">Lesezeichenordner</translation> <translation id="2818476747334107629">Druckerdetails</translation> @@ -1284,6 +1297,7 @@ <translation id="2939938020978911855">Verfügbare Bluetooth-Geräte anzeigen</translation> <translation id="2941112035454246133">Niedrig</translation> <translation id="2942560570858569904">Bitte warten...</translation> +<translation id="2942581856830209953">Diese Seite anpassen</translation> <translation id="2943400156390503548">Präsentationen</translation> <translation id="2943503720238418293">Verwenden Sie einen kürzeren Namen</translation> <translation id="2946119680249604491">Verbindung hinzufügen</translation> @@ -1770,6 +1784,7 @@ <translation id="3693415264595406141">Passwort:</translation> <translation id="3694027410380121301">Vorherigen Tab auswählen</translation> <translation id="3699624789011381381">E-Mail-Adresse</translation> +<translation id="3699920817649120894">Synchronisierung und Personalisierung deaktivieren?</translation> <translation id="3700888195348409686">(<ph name="PAGE_ORIGIN" />) wird präsentiert</translation> <translation id="3702500414347826004">Ihre "Beim Start"-Seiten wurden geändert und enthalten nun <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript blockiert</translation> @@ -1867,6 +1882,7 @@ <translation id="3827774300009121996">&Vollbildmodus</translation> <translation id="3828029223314399057">In Lesezeichen suchen</translation> <translation id="3830674330436234648">Keine Wiedergabe verfügbar</translation> +<translation id="3831436149286513437">Google Drive-Suchvorschläge</translation> <translation id="3831486154586836914">Sie befinden sich nun im Modus "Fensterübersicht".</translation> <translation id="383161972796689579">Der Besitzer dieses Geräts hat die Funktion zum Hinzufügen neuer Nutzer deaktiviert.</translation> <translation id="3834775135533257713">Die App "<ph name="TO_INSTALL_APP_NAME" />" konnte nicht hinzugefügt werden, da sie mit "<ph name="INSTALLED_APP_NAME" />" in Konflikt steht.</translation> @@ -1900,6 +1916,7 @@ <translation id="3871092408932389764">Niedrigste</translation> <translation id="3872220884670338524">Weitere Aktionen; gespeichertes Konto für <ph name="USERNAME" /> in <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Geben Sie Speicherplatz frei oder Ihr Gerät reagiert nicht mehr.</translation> +<translation id="3873315167136380065">Wenn Sie diese Funktion aktivieren möchten, müssen Sie die <ph name="BEGIN_LINK" />Synchronisierung zurücksetzen<ph name="END_LINK" />, um die Synchronisierungspassphrase zu entfernen</translation> <translation id="3878840326289104869">Betreuter Nutzer wird erstellt...</translation> <translation id="3879748587602334249">Download-Manager</translation> <translation id="3880709822663530586">Ihr Sicherheitsschlüssel funktioniert nur, wenn auf Ihrem Gerät Bluetooth aktiviert ist</translation> @@ -2023,6 +2040,7 @@ <translation id="4068776064906523561">Gespeicherte Fingerabdrücke</translation> <translation id="407173827865827707">Bei Klick</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: Anmeldefehler</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Zertifikat für E-Mail-Signaturen</translation> <translation id="407520071244661467">Skalieren</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> kann nicht gestreamt werden.</translation> @@ -2090,6 +2108,7 @@ <translation id="4192273449750167573">Einstellungen auf dem nächsten Bildschirm überprüfen</translation> <translation id="4193154014135846272">Google-Dokument</translation> <translation id="4194570336751258953">Tippen-statt-Klicken aktivieren</translation> +<translation id="4195249722193633765">App mit Linux (Beta) installieren</translation> <translation id="4195643157523330669">In neuem Tab öffnen</translation> <translation id="4195814663415092787">Zuletzt angesehene Seiten öffnen</translation> <translation id="4197674956721858839">Auswahl zippen</translation> @@ -2150,7 +2169,9 @@ <translation id="428608937826130504">Ablageartikel 8</translation> <translation id="4287502004382794929">Sie haben nicht genügend Softwarelizenzen zum Anmelden dieses Geräts. Weitere Lizenzen können Sie beim Vertrieb erwerben. Wenn Sie glauben, dass Sie diese Meldung fälschlicherweise erhalten, kontaktieren Sie den Support.</translation> <translation id="4289540628985791613">Übersicht</translation> +<translation id="4295072614469448764">Die App ist in Ihrem Terminal verfügbar. Möglicherweise sehen Sie auch ein Symbol in Ihrem Launcher.</translation> <translation id="4296575653627536209">Betreuten Nutzer hinzufügen</translation> +<translation id="4297219207642690536">Neu starten und zurücksetzen</translation> <translation id="4297322094678649474">Sprachen ändern</translation> <translation id="4300305918532693141">Wenn Sie diese Einstellung ändern möchten, <ph name="BEGIN_LINK" />setzen Sie die Synchronisierung zurück<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">lang (2 s)</translation> @@ -2186,6 +2207,7 @@ <translation id="4370975561335139969">Die E-Mail-Adresse und das Passwort, die Sie eingegeben haben, stimmen nicht überein.</translation> <translation id="437184764829821926">Erweiterte Schriftarteinstellungen</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Linux-Installationsprogramm</translation> <translation id="4375035964737468845">Heruntergeladene Dateien öffnen</translation> <translation id="4377363674125277448">Beim Zertifikat des Servers ist ein Problem aufgetreten.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2304,6 +2326,7 @@ <translation id="4576541033847873020">Bluetooth-Gerät koppeln</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> kann nicht gestreamt werden.</translation> <translation id="4580526846085481512">Möchten Sie wirklich $1 Elemente löschen?</translation> +<translation id="4582497162516204941">Installation mit Linux (Beta)</translation> <translation id="4582563038311694664">Alle Einstellungen zurücksetzen</translation> <translation id="4585793705637313973">Seite bearbeiten</translation> <translation id="4589268276914962177">Neues Terminal</translation> @@ -2547,6 +2570,7 @@ <translation id="4953808748584563296">Orangefarbener Standardavatar</translation> <translation id="4955814292505481804">Jährlich</translation> <translation id="4957949153200969297">Nur Funktionen aktivieren, die zur <ph name="IDS_SHORT_PRODUCT_NAME" />-Synchronisierung gehören</translation> +<translation id="4959262764292427323">Passwörter werden in Ihrem Google-Konto gespeichert, sodass Sie sie auf jedem Gerät verwenden können</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Der ausgewählte Ordner enthält sensible Dateien. Möchten Sie "$1" wirklich dauerhaft Lesezugriff auf diesen Ordner gewähren?</translation> <translation id="4964455510556214366">Anordnung</translation> @@ -2726,6 +2750,7 @@ <translation id="5240817131241497236">Die Einstellungen für die Synchronisierung, Personalisierung und andere Google-Dienste in Chrome wurden geändert. Dadurch könnten auch Ihre aktuellen Einstellungen geändert worden sein.</translation> <translation id="5241128660650683457">Alle Ihre Daten auf von Ihnen besuchten Websites lesen</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" aktivieren?</translation> +<translation id="5243522832766285132">Bitte versuchen Sie es in einigen Minuten noch einmal</translation> <translation id="5244474230056479698">Mit <ph name="EMAIL" /> synchronisieren</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> ist abgestürzt. Klicken Sie auf dieses Fenster, um die App erneut zu laden.</translation> <translation id="5247051749037287028">Anzeigename (optional)</translation> @@ -2748,6 +2773,7 @@ <translation id="5264148714798105376">Dies kann etwa eine Minute dauern.</translation> <translation id="5264252276333215551">Stellen Sie eine Internetverbindung her, um die App im Kioskmodus zu starten.</translation> <translation id="5265562206369321422">Seit über einer Woche offline</translation> +<translation id="5265797726250773323">Fehler bei der Installation</translation> <translation id="5266113311903163739">Zertifizierungsstelle - Fehler beim Import</translation> <translation id="5269977353971873915">Fehler beim Drucken</translation> <translation id="5271549068863921519">Passwort speichern</translation> @@ -2770,6 +2796,7 @@ <translation id="529175790091471945">Gerät formatieren</translation> <translation id="5292195676005197571">Bei den meisten Schlüsseln genügt es, zur Verwendung die Taste drücken</translation> <translation id="5293170712604732402">Einstellungen auf ursprüngliche Standardwerte zurücksetzen</translation> +<translation id="5297082477358294722">Passwort gespeichert. Gespeicherte Passwörter können Sie in Ihrem <ph name="SAVED_PASSWORDS_STORE" /> aufrufen und verwalten</translation> <translation id="5298219193514155779">Design von</translation> <translation id="5299109548848736476">Do Not Track</translation> <translation id="5299682071747318445">Alle Daten werden mit Ihrer Synchronisierungspassphrase verschlüsselt</translation> @@ -2998,6 +3025,7 @@ <translation id="5612720917913232150"><ph name="URL" /> möchte den Standort Ihres Computers nutzen</translation> <translation id="5612734644261457353">Ihr Passwort konnte leider immer noch nicht bestätigt werden. Hinweis: Falls Sie Ihr Passwort kürzlich geändert haben, wird Ihr neues Passwort übernommen, sobald Sie sich abmelden. Verwenden Sie hier das alte Passwort.</translation> <translation id="5614190747811328134">Nutzerhinweis</translation> +<translation id="5614553682702429503">Passwort speichern?</translation> <translation id="561698261642843490">Firefox schließen</translation> <translation id="5618075537869101857">Die Kioskanwendung konnte nicht gestartet werden.</translation> <translation id="5618333180342767515">(dies kann einige Minuten dauern)</translation> @@ -3038,6 +3066,7 @@ <translation id="5677503058916217575">Sprache der Seite:</translation> <translation id="5677928146339483299">Blockiert</translation> <translation id="5678550637669481956">Lese- und Schreibzugriff auf <ph name="VOLUME_NAME" /> wurde zugelassen.</translation> +<translation id="5678784840044122290">Die Linux-Anwendung ist in Ihrem Terminal verfügbar. Möglicherweise sehen Sie auch ein Symbol in Ihrem Launcher.</translation> <translation id="5678955352098267522">Ihre Daten auf <ph name="WEBSITE_1" /> lesen</translation> <translation id="5684661240348539843">Geräte-ID</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Die Verbindung zu einem Archiv oder einem virtuellen Datenträger kann nicht getrennt werden<ph name="END_BOLD" /> @@ -3133,6 +3162,7 @@ <translation id="5832805196449965646">Person hinzufügen</translation> <translation id="583281660410589416">Unbekannt</translation> <translation id="5832976493438355584">Gesperrt</translation> +<translation id="5833397272224757657">Inhalte von besuchten Websites sowie Browseraktivitäten und -interaktionen werden zur Personalisierung verwendet</translation> <translation id="5833610766403489739">Diese Datei kann nicht gefunden werden. Bitte überprüfen Sie Ihre Einstellung für den Downloadspeicherort und versuchen Sie es erneut.</translation> <translation id="5833726373896279253">Diese Einstellungen können nur vom Eigentümer geändert werden:</translation> <translation id="5834581999798853053">Noch etwa <ph name="TIME" /> Minuten</translation> @@ -3186,6 +3216,7 @@ <translation id="5908769186679515905">Ausführen von Flash für Websites blockieren</translation> <translation id="5910363049092958439">Bi&ld speichern unter...</translation> <translation id="5911737117543891828">Temporäre Offlinedateien aus Google Drive werden gelöscht. Dateien, die entsprechend Ihren Einstellungen offline verfügbar sind, werden nicht von diesem Gerät gelöscht.</translation> +<translation id="5911887972742538906">Bei der Installation Ihrer Linux-Anwendung ist ein Fehler aufgetreten.</translation> <translation id="5912378097832178659">Such&maschinen bearbeiten...</translation> <translation id="5914724413750400082">Modulo (<ph name="MODULUS_NUM_BITS" /> Bits): <ph name="MODULUS_HEX_DUMP" /> @@ -3372,6 +3403,7 @@ <translation id="6198102561359457428">Abmelden und dann erneut anmelden...</translation> <translation id="6198252989419008588">PIN ändern</translation> <translation id="6199801702437275229">Speicherplatzangaben werden abgerufen...</translation> +<translation id="6201792273624501289">Linux-Apps</translation> <translation id="6204015976622790023">Sie erhalten relevante Vorschläge von Google Assistant zu Bildschirminhalten.</translation> <translation id="6205710420833115353">Einige Vorgänge dauern länger als erwartet. Möchten Sie sie abbrechen?</translation> <translation id="6206311232642889873">Bild kop&ieren</translation> @@ -3848,6 +3880,7 @@ <translation id="6945221475159498467">Auswählen</translation> <translation id="694592694773692225">Weiterleitung auf dieser Seite blockiert.</translation> <translation id="6949306908218145636">Offene Seiten als Lesezeichen speichern...</translation> +<translation id="6950627417367801484">Apps wiederherstellen</translation> <translation id="6951153907720526401">Zahlungs-Handler</translation> <translation id="6955446738988643816">Pop-up prüfen</translation> <translation id="6957231940976260713">Name des Dienstes</translation> @@ -3973,6 +4006,7 @@ <translation id="7127980134843952133">Downloadverlauf</translation> <translation id="7131040479572660648">Ihre Daten auf <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> und <ph name="WEBSITE_3" /> lesen</translation> <translation id="713122686776214250">&Seite hinzufügen...</translation> +<translation id="7133578150266914903">Ihr Administrator setzt dieses Gerät zurück (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Schrift verkleinern</translation> <translation id="7136694880210472378">Als Standard festlegen</translation> <translation id="7136984461011502314">Herzlich willkommen bei <ph name="PRODUCT_NAME" /></translation> @@ -4173,6 +4207,7 @@ <translation id="7463006580194749499">Person hinzufügen</translation> <translation id="7464490149090366184">Fehler beim Zippen, Element bereits vorhanden: "$1"</translation> <translation id="7465778193084373987">URL zum Zurückrufen von Netscape-Zertifikaten</translation> +<translation id="7469406957790636836">Wenn Sie diese Funktion aktivieren möchten, müssen Sie zuerst die Rechtschreibprüfung unter <ph name="BEGIN_LINK" />Sprachen und Eingabe<ph name="END_LINK" /> einschalten</translation> <translation id="7469894403370665791">Verbindung zu diesem Netzwerk automatisch herstellen</translation> <translation id="747114903913869239">Fehler: Erweiterung kann nicht entschlüsselt werden.</translation> <translation id="7473753388963818366"><ph name="DEVICE_TYPE" /> einrichten</translation> @@ -4270,6 +4305,7 @@ <translation id="7606992457248886637">Zertifizierungsstellen</translation> <translation id="7607002721634913082">Angehalten</translation> <translation id="7607274158153386860">Tablet-Website anfordern</translation> +<translation id="7609148976235050828">Stellen Sie eine Internetverbindung her und versuchen Sie es dann noch einmal.</translation> <translation id="7611008212562900400">Gerät, Apps, Internet durchsuchen…</translation> <translation id="7616214729753637086">Gerät wird registriert…</translation> <translation id="7617366389578322136">Verbindung zu "<ph name="DEVICE_NAME" />" wird hergestellt</translation> @@ -4338,6 +4374,7 @@ <translation id="7730449930968088409">Inhalt Ihres Bildschirms erfassen</translation> <translation id="7730494089396812859">Details der Cloudsicherung anzeigen</translation> <translation id="7732111077498238432">Das Netzwerk ist richtliniengesteuert</translation> +<translation id="7737238973539693982">Linux (Beta) löschen</translation> <translation id="773905249182896430">Mich und mein Gerät vor schädlichen Websites schützen</translation> <translation id="7740996059027112821">Standard</translation> <translation id="7748528009589593815">Vorheriger Tab</translation> @@ -4526,6 +4563,7 @@ <translation id="7974936243149753750">Overscan</translation> <translation id="7977551819349545646">Chromebox wird aktualisiert...</translation> <translation id="7978412674231730200">Privater Schlüssel</translation> +<translation id="7978450511781612192">Dadurch werden Sie aus Ihren Google-Konten abgemeldet. Ihre Lesezeichen, Ihr Verlauf, Ihre Passwörter usw. werden nicht mehr synchronisiert.</translation> <translation id="7979036127916589816">Synchronisierungsfehler</translation> <translation id="7980084013673500153">Geräte-ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Seiten vorab laden, um das Surfen und die Suche zu beschleunigen</translation> @@ -4690,6 +4728,7 @@ <translation id="8226619461731305576">Warteschlange</translation> <translation id="8226742006292257240">Hier ist das zufällig generierte TPM-Passwort, das Ihrem Computer zugewiesen wurde:</translation> <translation id="8227119283605456246">Datei anhängen</translation> +<translation id="8230134520748321204">Passwort für <ph name="ORIGIN" /> speichern?</translation> <translation id="8234795456569844941">Bitte helfen Sie unseren Entwicklern bei der Lösung dieses Problems. Beschreiben Sie genau, was passiert ist, bevor Sie die Profilfehlermeldung erhalten haben:</translation> <translation id="8234989666557591529">Smartphone für das Entsperren Ihres <ph name="DEVICE_TYPE" />s auswählen</translation> <translation id="8239020549147958415">Mit <ph name="FULL_NAME" /> synchronisieren</translation> @@ -4809,6 +4848,7 @@ <translation id="8438328416656800239">Steigen Sie auf einen intelligenten Browser um</translation> <translation id="8438566539970814960">Suchanfragen und das Surfen verbessern</translation> <translation id="8439506636278576865">Übersetzung für Seiten in dieser Sprache anbieten</translation> +<translation id="8440630305826533614">Linux-Apps</translation> <translation id="8446884382197647889">Weitere Informationen</translation> <translation id="8447409163267621480">Entweder Strg oder Alt integrieren</translation> <translation id="8448729345478502352">Die Elemente auf dem Bildschirm vergrößern oder verkleinern</translation> @@ -4853,6 +4893,7 @@ <translation id="8497219075884839166">Windows-Dienstprogramme</translation> <translation id="8498214519255567734">Der Bildschirm ist bei schwachem Licht nicht störend hell und kann leichter gelesen werden</translation> <translation id="8498395510292172881">In Chrome weiterlesen</translation> +<translation id="8502536196501630039">Wenn Sie Apps von Google Play verwenden möchten, müssen Sie zuerst Ihre Apps wiederherstellen. Einige Daten sind möglicherweise verloren gegangen.</translation> <translation id="8503813439785031346">Nutzername</translation> <translation id="850875081535031620">Keine schädliche Software gefunden</translation> <translation id="8509646642152301857">Beim Herunterladen des Wörterbuchs für die Rechtschreibprüfung ist ein Fehler aufgetreten.</translation> @@ -4982,6 +5023,7 @@ <translation id="8698464937041809063">Google-Zeichnung</translation> <translation id="869884720829132584">Apps-Menü</translation> <translation id="869891660844655955">Ablaufdatum</translation> +<translation id="8699566574894671540">Wenn Sie diese Funktion aktivieren möchten, müssen Sie zuerst die Option "Rechtschreibung während der Eingabe prüfen" im Menü "Bearbeiten" auswählen</translation> <translation id="870073306461175568">Netzwerkfreigaben</translation> <translation id="8701677791353449257">Der Gerätename muss mit dem regulären Ausdruck <ph name="REGEX" /> übereinstimmen.</translation> <translation id="8704521619148782536">Der Vorgang dauert deutlich länger als erwartet. Sie können weiter warten oder den Vorgang abbrechen und es später erneut versuchen.</translation> @@ -5021,6 +5063,7 @@ <p>Sie können die Konfiguration dennoch über die Befehlszeile vornehmen. Weitere Informationen zu Markierungen und Umgebungsvariablen finden Sie unter <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">&Größer</translation> +<translation id="8756969031206844760">Passwort aktualisieren?</translation> <translation id="8757090071857742562">Der Desktop kann nicht gestreamt werden. Überprüfen Sie, ob Sie die Aufforderung zum Teilen Ihres Bildschirms bestätigt haben.</translation> <translation id="8757640015637159332">Öffentliche Sitzung beginnen</translation> <translation id="8757742102600829832">Wählen Sie eine Chromebox für die Verbindung aus.</translation> @@ -5177,7 +5220,9 @@ <translation id="9009369504041480176">Hochgeladen (<ph name="PROGRESS_PERCENT" /> %)...</translation> <translation id="9011163749350026987">Symbol immer zeigen</translation> <translation id="9011178328451474963">Letzter Tab</translation> +<translation id="9013707997379828817">Ihr Administrator hat dieses Gerät zurückgesetzt. Bitte speichern Sie wichtige Dateien und starten Sie es dann neu. Alle Daten auf dem Gerät werden gelöscht.</translation> <translation id="9014987600015527693">Anderes Telefon zeigen</translation> +<translation id="9018218886431812662">Installation abgeschlossen</translation> <translation id="901834265349196618">E-Mail</translation> <translation id="9019062154811256702">AutoFill-Einstellungen lesen und ändern</translation> <translation id="9020362265352758658">4-fach</translation> @@ -5202,6 +5247,7 @@ </translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Tabs stummschalten</translation> +<translation id="9040661932550800571">Passwort für <ph name="ORIGIN" /> aktualisieren?</translation> <translation id="9041692268811217999">Der Zugriff auf lokale Dateien auf Ihrem Gerät wurde von Ihrem Administrator deaktiviert</translation> <translation id="9042893549633094279">Sicherheit und Datenschutz</translation> <translation id="904451693890288097">Geben Sie bitte den Zugangscode für "<ph name="DEVICE_NAME" />" ein:</translation> @@ -5306,6 +5352,7 @@ <translation id="9203478404496196495">Stummschaltung des Tabs aufheben</translation> <translation id="9203904171912129171">Gerät auswählen</translation> <translation id="9203962528777363226">Der Administrator dieses Geräts hat die Funktion zum Hinzufügen neuer Nutzer deaktiviert.</translation> +<translation id="9213073329713032541">Die Installation wurde gestartet.</translation> <translation id="9214520840402538427">Hoppla! Bei der Initialisierung der Installationszeit-Attribute ist eine Zeitüberschreitung aufgetreten. Bitte wenden Sie sich an Ihren Support-Mitarbeiter.</translation> <translation id="9214695392875603905">Cupcake</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" hinzugefügt</translation> @@ -5360,6 +5407,7 @@ <translation id="988978206646512040">Eine leere Passphrase ist nicht zulässig</translation> <translation id="992032470292211616">Erweiterungen, Apps und Designs können Schäden auf Ihrem Gerät verursachen. Möchten Sie wirklich fortfahren?</translation> <translation id="992592832486024913">ChromeVox deaktivieren (gesprochenes Feedback)</translation> +<translation id="993540765962421562">Die Installation wird ausgeführt</translation> <translation id="994289308992179865">Sch&leife</translation> <translation id="996250603853062861">Sichere Verbindung wird hergestellt...</translation> <translation id="998747458861718449">Untersuchen</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb index 4145c1d..b1c4e162 100644 --- a/chrome/app/resources/generated_resources_fil.xtb +++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Naghahanap...</translation> <translation id="1316495628809031177">Naka-pause ang pag-sync</translation> <translation id="1319979322914001937">Isang app na nagpapakita ng naka-filter na listahan ng mga extension mula sa Chrome Web Store. Maaaring i-install nang direkta ang mga extension mula sa app.</translation> +<translation id="1322046419516468189">Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Upang makuha ang iyong mga tab mula sa iba mo pang mga device, mag-sign in sa Chrome.</translation> <translation id="1327074568633507428">Printer sa Google Cloud Print</translation> <translation id="1327977588028644528">Gateway</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Help Center</translation> <translation id="162035744160882748">I-on ang pag-sync, pag-personalize, at iba pang serbisyo ng Google</translation> <translation id="1620510694547887537">Camera</translation> +<translation id="1623132449929929218">Kasalukuyang hindi available ang mga larawan. Kumonektang muli sa internet para makita ang mga koleksyon ng wallpaper.</translation> <translation id="1624026626836496796">Isang beses lang ito mangyayari, at hindi iiimbak ang iyong mga kredensyal.</translation> <translation id="1627276047960621195">Mga Descriptor ng File</translation> <translation id="1627408615528139100">Na-download na</translation> <translation id="1632803087685957583">Nagbibigay-daan sa iyong i-adjust ang rate ng pag-uulit ng iyong keyboard, paghula ng salita at higit pa</translation> <translation id="1635033183663317347">Na-install ng iyong tagapangalaga.</translation> +<translation id="1635885551358739414">Maaaring gamitin ng Google ang content sa mga site na binibisita mo at ang aktibidad at mga pakikipag-ugnayan sa browser para i-personalize ang Chrome at ang iba pang serbisyo ng Google tulad ng Translate, Search, at mga ad. Maaari mo itong i-customize sa Mga Setting.</translation> <translation id="1637224376458524414">Kunin ang bookmark na ito sa iyong iPhone</translation> <translation id="1637765355341780467">Nagkaproblema noong binubuksan ang iyong profile. Maaaring hindi available ang ilang feature.</translation> <translation id="1639239467298939599">Naglo-load</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Masyadong maikli ang password.</translation> <translation id="1661867754829461514">Nawawala ang PIN</translation> <translation id="16620462294541761">Paumanhin, hindi ma-verify ang iyong password. Pakisubukang muli.</translation> +<translation id="1662550410081243962">I-save at punan ang mga paraan ng pagbabayad</translation> <translation id="166278006618318542">Subject Public Key Algorithm</translation> <translation id="166439687370499867">Hindi pinapayagan ang pagbago sa mga nakabahaging configuration ng network</translation> <translation id="1665611772925418501">Hindi mababago ang file.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546">Gustong tingnan ng <ph name="URL" /> ang manufacturer at modelo ng iyong Security Key</translation> <translation id="167832068858235403">hinaan ang volume</translation> <translation id="1679068421605151609">Mga Tool ng Developer</translation> +<translation id="1680849702532889074">Nagkaroon ng error habang ini-install ang iyong Linux application.</translation> <translation id="16815041330799488">Huwag payagan ang mga site na makita ang text at mga larawang kinopya sa clipboard</translation> <translation id="1682548588986054654">New Incognito Window</translation> <translation id="168715261339224929">Upang mailagay ang iyong mga bookmark sa lahat ng device mo, i-on ang sync.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">I-unpin ang Mga Tab</translation> <translation id="1734824808160898225">Maaaring hindi patuloy na ma-update ng <ph name="PRODUCT_NAME" /> ang sarili nito</translation> <translation id="1736419249208073774">I-explore</translation> +<translation id="1736827427463982819">I-shut Down ang Linux (Beta)</translation> <translation id="1737968601308870607">I-file ang bug</translation> <translation id="1741314857973421784">Magpatuloy</translation> <translation id="174173592514158117">Ipakita ang lahat ng folder ng Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">Gusto ng <ph name="URL" /> na permanenteng mag-store ng malaking data sa iyong lokal na computer</translation> <translation id="1997616988432401742">Iyong mga certificate</translation> <translation id="1999115740519098545">Sa startup</translation> +<translation id="2000419248597011803">Nagpapadala ng ilang cookies at paghahanap mula sa address bar at box para sa paghahanap sa iyong default na search engine</translation> <translation id="2001796770603320721">Pamahalaan sa Drive</translation> <translation id="2004663115385769400">Hindi mabuksan gamit ang $1</translation> <translation id="200544492091181894">Maaari mo itong baguhin sa mga setting sa ibang pagkakataon, anumang oras</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Ipagpatuloy ang pag-block ng cookies</translation> <translation id="204622017488417136">Ibabalik ang iyong device sa dating naka-install na bersyon ng Chrome. Aalisin ang lahat ng user account at lokal na data. Hindi na ito maaaring bawiin.</translation> <translation id="2048182445208425546">I-access ang trapiko ng iyong network</translation> +<translation id="2048653237708779538">Hindi available ang pagkilos</translation> <translation id="204914487372604757">Lumikha ng shortcut sa </translation> <translation id="2050339315714019657">Portrait</translation> <translation id="2053312383184521053">Data sa Idle na Estado</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Gustong i-access ng <ph name="PEPPER_PLUGIN_NAME" /> sa <ph name="PEPPER_PLUGIN_DOMAIN" /> ang iyong computer</translation> <translation id="2178614541317717477">CA Compromise</translation> <translation id="218070003709087997">Gumamit ng numero upang maisaad kung gaano karaming kopya ang ipi-print (1 hanggang 999).</translation> +<translation id="2183558561014688873">I-access ang iyong Assistant anumang oras na sabihin mo ang "OK Google" kapag nakailaw at naka-unlock ang iyong device.</translation> <translation id="2187895286714876935">Error sa Pag-import ng Certificate ng Server</translation> <translation id="2187906491731510095">Na-update ang mga extension</translation> <translation id="2188881192257509750">Buksan ang <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Proseso ng GPU</translation> <translation id="2282155092769082568">Autoconfiguration URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">I-save at punan ang mga address</translation> <translation id="2286841657746966508">Billing address</translation> <translation id="2288181517385084064">Lumipat sa video recorder</translation> <translation id="2288735659267887385">Mga setting ng pagiging naa-access</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Kabuuang laki ng file</translation> <translation id="2428510569851653187">Ilarawan ang ginagawa mo noong nag-crash ang tab</translation> <translation id="2431027948063157455">Hindi na-load ang Google Assistant, pakitingnan ang iyong koneksyon sa network at subukang muli.</translation> +<translation id="2432753757290432042">Kinakailangang i-update ang Linux (Beta)</translation> <translation id="2433452467737464329">Magdagdag ng query param sa URL upang i-auto-refresh ang pahina: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Hitsura</translation> <translation id="2433836460518180625">I-unlock lang ang device</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">I-edit ang Mga Fingerprint</translation> <translation id="2776441542064982094">Mukhang walang available na mga device na irerehistro sa network. Kung naka-on ang iyong device at nakakonekta sa internet, subukan itong iparehistro gamit ang mga tagubilin sa manual ng mga tagubilin nito.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Nagkaroon ng error sa pag-install ng Linux application</translation> <translation id="2783298271312924866">Na-download</translation> <translation id="2783321960289401138">Gumawa ng shortcut...</translation> <translation id="2783829359200813069">Pumili ng mga uri ng pag-encrypt</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Subukang mag-sign out at muling mag-sign in</translation> <translation id="2812989263793994277">Huwag magpakita ng anumang mga larawan</translation> <translation id="2814489978934728345">Ihinto ang pagkarga sa pahinang ito</translation> +<translation id="281504910091592009">Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="BEGIN_LINK" />Google Account<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Bar ng Bookmark</translation> <translation id="2815693974042551705">Folder ng bookmark</translation> <translation id="2818476747334107629">Mga detalye ng printer</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Ipakita ang mga available na Bluetooth device</translation> <translation id="2941112035454246133">Mababa</translation> <translation id="2942560570858569904">Naghihintay...</translation> +<translation id="2942581856830209953">I-customize ang page na ito</translation> <translation id="2943400156390503548">Slides</translation> <translation id="2943503720238418293">Gumamit ng mas maikling pangalan</translation> <translation id="2946119680249604491">Magdagdag ng koneksyon</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Password:</translation> <translation id="3694027410380121301">Select Previous Tab</translation> <translation id="3699624789011381381">Email address</translation> +<translation id="3699920817649120894">I-off ang pag-sync at pag-personalize?</translation> <translation id="3700888195348409686">Ipinapakita (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Binago ang iyong mga page sa pagsisimula upang isama ang <ph name="URL" />.</translation> <translation id="370415077757856453">Na-block ang JavaScript</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Full Screen</translation> <translation id="3828029223314399057">Bookmark sa paghahanap</translation> <translation id="3830674330436234648">Walang available na playback</translation> +<translation id="3831436149286513437">Mga suhestyon sa paghahanap sa Google Drive</translation> <translation id="3831486154586836914">Pumasok ka sa overview mode ng window</translation> <translation id="383161972796689579">Hindi pinagana ng may-ari ng device na ito ang pagdaragdag ng mga bagong user</translation> <translation id="3834775135533257713">Hindi maidagdag ang application na "<ph name="TO_INSTALL_APP_NAME" />" dahil sumasalungat ito sa "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Pinakamababa</translation> <translation id="3872220884670338524">Higit pang pagkilos, naka-save na account para sa <ph name="USERNAME" /> sa <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Magbakante ng espasyo sa disk o hindi gagana nang maayos ang iyong device.</translation> +<translation id="3873315167136380065">Para i-on ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" /> para alisin ang iyong passphrase sa pag-sync</translation> <translation id="3878840326289104869">Gumagawa ng pinangangasiwaang user</translation> <translation id="3879748587602334249">Download manager</translation> <translation id="3880709822663530586">Gumagana lang ang iyong Security Key kapag naka-on ang Bluetooth ng device mo</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Mga naka-save na fingerprint</translation> <translation id="407173827865827707">Sa pag-click</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: error sa pag-sign in</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">Certificate ng Email Signer</translation> <translation id="407520071244661467">Scale</translation> <translation id="4075639477629295004">Hindi ma-cast ang <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Suriin ang iyong mga setting sa susunod na screen</translation> <translation id="4193154014135846272">Dokumento ng Google</translation> <translation id="4194570336751258953">Paganahin ang tap-to-click</translation> +<translation id="4195249722193633765">I-install ang app gamit ang Linux (Beta)</translation> <translation id="4195643157523330669">Buksan sa bagong tab</translation> <translation id="4195814663415092787">Magpatuloy kung saan ka tumigil</translation> <translation id="4197674956721858839">Pagpili ng zip</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Item 8 sa shelf</translation> <translation id="4287502004382794929">Wala kang sapat na mga lisensya ng software upang ipatala ang device na ito. Mangyaring makipag-ugnay sa sales upang bumili nang higit pa. Kung naniniwala ka na nakikita mo ang mensaheng ito dahil sa error, mangyaring makipag-ugnay sa suporta.</translation> <translation id="4289540628985791613">Pangkalahatang-ideya</translation> +<translation id="4295072614469448764">Available ang app sa iyong terminal. Maaari ding magkaroon ng icon sa iyong Launcher.</translation> <translation id="4296575653627536209">Magdagdag ng Pinapangasiwaang User</translation> +<translation id="4297219207642690536">I-restart at i-reset</translation> <translation id="4297322094678649474">Palitan ang Mga Wika</translation> <translation id="4300305918532693141">Upang baguhin ang setting na ito, <ph name="BEGIN_LINK" />i-reset ang pag-sync<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">mahaba (2s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Hindi nagtutugma ang inilagay mong email at password</translation> <translation id="437184764829821926">Mga advanced na setting ng font</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Installer ng Linux</translation> <translation id="4375035964737468845">Buksan ang mga na-download na file</translation> <translation id="4377363674125277448">Nagkaroon ng problema sa certificate ng server.</translation> <translation id="4378154925671717803">Telepono</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Magpares ng Bluetooth device</translation> <translation id="4579581181964204535">Hindi ma-cast ang <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Sigurado ka bang gusto mong tanggalin ang $1 (na) item?</translation> +<translation id="4582497162516204941">I-install gamit ang Linux (Beta)</translation> <translation id="4582563038311694664">I-reset lahat ng setting</translation> <translation id="4585793705637313973">I-edit ang page</translation> <translation id="4589268276914962177">Bagong terminal</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Default na orange na avatar</translation> <translation id="4955814292505481804">Taunan</translation> <translation id="4957949153200969297">Ang mga feature lang na nauugnay sa <ph name="IDS_SHORT_PRODUCT_NAME" /> Sync ang ie-enable</translation> +<translation id="4959262764292427323">Sine-save ang mga password sa iyong Google Account para magamit mo ang mga ito sa anumang device</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Naglalaman ng mga sensitibong file ang folder na iyong pinili. Sigurado ka bang gusto mong magbigay ng "PhP50" na permanenteng read access sa folder na ito?</translation> <translation id="4964455510556214366">Kaayusan</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Ang mga setting na nabago ng pagkontrol sa pag-sync, pag-personalize, at iba pang serbisyo ng Google sa Chrome. Maaari itong makaapekto sa iyong mga kasalukuyang setting.</translation> <translation id="5241128660650683457">Basahin ang lahat ng iyong data sa mga website na binibisita mo</translation> <translation id="5242724311594467048">I-enable ang "<ph name="EXTENSION_NAME" />"?</translation> +<translation id="5243522832766285132">Pakisubukang muli pagkalipas ng ilang sandali</translation> <translation id="5244474230056479698">Sini-sync sa <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Nag-crash ang <ph name="APP_NAME" />. Mag-click sa lobong ito upang i-restart ang app.</translation> <translation id="5247051749037287028">Display name (opsyonal)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Maaari itong abutin nang isang minuto o higit pa.</translation> <translation id="5264252276333215551">Mangyaring kumonekta sa Internet upang ilunsad ang iyong app sa kiosk mode.</translation> <translation id="5265562206369321422">Offline nang mahigit sa isang linggo</translation> +<translation id="5265797726250773323">Nagkaroon ng error habang nag-i-install</translation> <translation id="5266113311903163739">Error sa Pag-import ng Certification Authority</translation> <translation id="5269977353971873915">Nabigo ang Pag-print</translation> <translation id="5271549068863921519">I-save ang password</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">I-format ang device na ito</translation> <translation id="5292195676005197571">Para magamit ang karamihan sa mga key, pindutin lang ang button</translation> <translation id="5293170712604732402">I-restore ang mga setting sa mga orihinal na default ng mga ito</translation> +<translation id="5297082477358294722">Na-save ang password. Tingnan at pamahalaan ang mga naka-save na password sa iyong <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Ang tema ay nilikha ni</translation> <translation id="5299109548848736476">Huwag Subaybayan</translation> <translation id="5299682071747318445">Ine-encrypt ang lahat ng data gamit ang iyong passphrase sa pag-sync</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150">Gustong gamitin ng <ph name="URL" /> ang lokasyon ng iyong computer</translation> <translation id="5612734644261457353">Paumanhin, hindi pa rin ma-verify ang iyong password. Tandaan: kung pinalitan mo kamakailan ang iyong password, malalapat ang iyong bagong password sa sandaling mag-sign out ka, pakigamit ang lumang password dito.</translation> <translation id="5614190747811328134">Notice sa User</translation> +<translation id="5614553682702429503">I-save ang password?</translation> <translation id="561698261642843490">Isara ang Firefox</translation> <translation id="5618075537869101857">Naku, hindi mailunsad ang kiosk application.</translation> <translation id="5618333180342767515">(maaaring tumagal ito nang ilang minuto)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Wika ng page:</translation> <translation id="5677928146339483299">Naka-block</translation> <translation id="5678550637669481956">Ipinagkaloob na sa <ph name="VOLUME_NAME" /> ang access sa pagbasa at pagsulat.</translation> +<translation id="5678784840044122290">Magiging available ang Linux application sa iyong Terminal at maaari din itong magpakita ng icon sa Launcher mo.</translation> <translation id="5678955352098267522">Basahin ang iyong data sa <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identifier ng Asset</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Hindi makadiskonekta sa isang archive o virtual disk<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Magdagdag ng Tao</translation> <translation id="583281660410589416">Hindi-alam</translation> <translation id="5832976493438355584">Naka-lock</translation> +<translation id="5833397272224757657">Ginagamit ang content sa mga site na binibisita mo at ang aktibidad at mga pakikipag-ugnayan sa browser para sa pag-personalize</translation> <translation id="5833610766403489739">Nawala ang file na ito. Pakitingnan ang iyong setting ng lokasyon ng pag-download at subukang muli.</translation> <translation id="5833726373896279253">Mababago lang ang mga setting na ito ng may-ari:</translation> <translation id="5834581999798853053">Mga <ph name="TIME" /> (na) minuto ang natitira</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">I-block ang mga site sa pagpapatakbo ng Flash</translation> <translation id="5910363049092958439">I-sa&ve ang Imahe Bilang...</translation> <translation id="5911737117543891828">Made-delete ang mga pansamantalang offline na file sa Google Drive. Ang mga file na itinakda mo bilang available offline ay hindi made-delete sa device na ito.</translation> +<translation id="5911887972742538906">Nagkaroon ng error habang ini-install ang iyong Linux application.</translation> <translation id="5912378097832178659">&I-edit ang mga search engine...</translation> <translation id="5914724413750400082">Modulus (<ph name="MODULUS_NUM_BITS" /> (na) bit): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Mag-sign out pagkatapos ay mag-sign in muli...</translation> <translation id="6198252989419008588">Palitan ang PIN</translation> <translation id="6199801702437275229">Hinihintay ang impormasyon ng espasyo...</translation> +<translation id="6201792273624501289">Mga Linux App</translation> <translation id="6204015976622790023">Makakita ng mga nauugnay na suhestyon mula sa iyong Assistant na nauugnay sa kung ano ang nasa screen mo.</translation> <translation id="6205710420833115353">Mas matagal kaysa sa inaasahan ang ilang operasyon. Gusto mo bang i-abort ang mga ito?</translation> <translation id="6206311232642889873">Kop&yahin ang Imahe</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Pumili</translation> <translation id="694592694773692225">Na-block ang pag-redirect sa page na ito.</translation> <translation id="6949306908218145636">I-bookmark ang Mga Nakabukas na Pahina...</translation> +<translation id="6950627417367801484">I-restore ang mga app</translation> <translation id="6951153907720526401">Mga Tagapangasiwa ng Pagbabayad</translation> <translation id="6955446738988643816">Siyasatin ang Popup</translation> <translation id="6957231940976260713">Pangalan ng serbisyo</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Kasaysayan ng pag-download</translation> <translation id="7131040479572660648">Basahin ang iyong data sa <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> at <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Magdagdag ng Pahina...</translation> +<translation id="7133578150266914903">Niro-roll back ng iyong administrator ang device na ito (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Gawing Mas Maliit ang Teksto</translation> <translation id="7136694880210472378">Gawing default</translation> <translation id="7136984461011502314">Maligayang Pagdating sa <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Magdagdag ng tao</translation> <translation id="7464490149090366184">Nabigo ang pag-zip, umiiral ang item: "$1"</translation> <translation id="7465778193084373987">URL ng Pagpapawalang-bisa ng Netscape Certificate</translation> +<translation id="7469406957790636836">Para i-on ito, i-on muna ang pang-check ng pagbabaybay sa <ph name="BEGIN_LINK" />Mga wika at input<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Awtomatikong kumonekta sa network na ito</translation> <translation id="747114903913869239">Error: Hindi magawang i-decode ang extension</translation> <translation id="7473753388963818366">Ihanda natin ang <ph name="DEVICE_TYPE" /> mo para sa iyo</translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Mga Awtoridad</translation> <translation id="7607002721634913082">I-pause</translation> <translation id="7607274158153386860">Humiling ng site ng tablet</translation> +<translation id="7609148976235050828">Kumonekta sa internet at subukang muli.</translation> <translation id="7611008212562900400">Hanapin ang iyong device, mga app, web...</translation> <translation id="7616214729753637086">Ine-enroll ang device...</translation> <translation id="7617366389578322136">Kumokonekta sa "<ph name="DEVICE_NAME" />"</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Kunan ang nilalaman ng iyong screen</translation> <translation id="7730494089396812859">Ipakita ang mga detalye ng pag-back up sa Cloud</translation> <translation id="7732111077498238432">Kinokontrol ng patakaran ang network</translation> +<translation id="7737238973539693982">I-delete ang Linux (Beta)</translation> <translation id="773905249182896430">Pinoprotektahan ka at ang iyong device mula sa mapapanganib na site</translation> <translation id="7740996059027112821">Karaniwan</translation> <translation id="7748528009589593815">Nakaraang tab</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Overscan</translation> <translation id="7977551819349545646">Ina-update ang Chromebox...</translation> <translation id="7978412674231730200">Private na key</translation> +<translation id="7978450511781612192">Dahil dito, masa-sign out ka sa iyong mga Google Account. Hindi na masi-sync ang iyong mga bookmark, history, mga password, at higit pa.</translation> <translation id="7979036127916589816">Error sa Pag-sync</translation> <translation id="7980084013673500153">Asset ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">I-preload ang mga page para sa mas mabilis na pag-browse at paghahanap</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">I-queue</translation> <translation id="8226742006292257240">Sa ibaba ay ang random na binubuong TPM password na itinalaga sa iyong computer:</translation> <translation id="8227119283605456246">Mag-attach ng file</translation> +<translation id="8230134520748321204">I-save ang password para sa <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pakitulungan ang aming mga engineer na ayusin ang problemang ito. Sabihin sa amin kung ano ang nangyari bago mo nakuha ang mensahe ng error sa profile:</translation> <translation id="8234989666557591529">Pumili ng telepono upang i-unlock ang iyong <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">I-sync bilang <ph name="FULL_NAME" /></translation> @@ -4813,6 +4852,7 @@ <translation id="8438566539970814960">Mas pahusayin ang mga paghahanap at pag-browse</translation> <translation id="8439506636278576865">Mag-alok na magsalin ng mga page sa wikang ito </translation> +<translation id="8440630305826533614">Mga Linux app</translation> <translation id="8446884382197647889">Matuto nang Higit Pa</translation> <translation id="8447409163267621480">Isama ang Ctrl o Alt</translation> <translation id="8448729345478502352">Paliitin o palakihin ang mga item sa iyong screen</translation> @@ -4857,6 +4897,7 @@ <translation id="8497219075884839166">Mga Utility ng Windows</translation> <translation id="8498214519255567734">Pinapadali nitong tumingin sa iyong screen o magbasa sa dilim</translation> <translation id="8498395510292172881">Ipagpatuloy ang pagbabasa sa Chrome</translation> +<translation id="8502536196501630039">Para magamit ang mga app mula sa Google Play, dapat mo munang i-restore ang iyong mga app. Maaaring mawala ang ilang data.</translation> <translation id="8503813439785031346">Username</translation> <translation id="850875081535031620">Walang nahanap na mapaminsalang software</translation> <translation id="8509646642152301857">Nabigo ang pag-download ng diksyunaryo ng pang-check ng pagbabaybay.</translation> @@ -4986,6 +5027,7 @@ <translation id="8698464937041809063">Drawing ng Google</translation> <translation id="869884720829132584">Menu ng mga application</translation> <translation id="869891660844655955">Expiration date</translation> +<translation id="8699566574894671540">Para i-on ito, piliin muna ang Suriin ang Pagbabaybay Habang Nagta-type sa menu na I-edit</translation> <translation id="870073306461175568">Mga Pagbabahagi ng File sa Network</translation> <translation id="8701677791353449257">Dapat tumugma ang pangalan ng device sa karaniwang expression na <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Nagtatagal ito nang higit sa karaniwan. Magagawa mong magpatuloy sa paghihintay, o kanselahin ito at subukang muli sa ibang pagkakataon.</translation> @@ -5025,6 +5067,7 @@ <p>Ngunit magagawa mo pa ring mag-configure sa pamamagitan ng command line. Pakitingnan ang <code>man <ph name="PRODUCT_BINARY_NAME" /></code> para sa higit pang impormasyon tungkol sa mga flag at variable ng environment.</p></translation> <translation id="8755376271068075440">&Mas Malaki</translation> +<translation id="8756969031206844760">I-update ang password?</translation> <translation id="8757090071857742562">Hindi ma-cast ang desktop. Tingnan kung nakumpirma mo ang prompt upang simulan ang pagbabahagi ng iyong screen.</translation> <translation id="8757640015637159332">Pumasok sa pampublikong session</translation> <translation id="8757742102600829832">Pumili ng Chromebox na kokonektahan</translation> @@ -5182,7 +5225,9 @@ <translation id="9009369504041480176">Nag-a-upload (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Palaging ipakita ang icon</translation> <translation id="9011178328451474963">Huling tab</translation> +<translation id="9013707997379828817">Na-roll back ng iyong administrator ang device na ito. Paki-save ang mahahalagang file, pagkatapos ay mag-restart. Made-delete ang lahat ng data sa device.</translation> <translation id="9014987600015527693">Magpakita ng isa pang telepono</translation> +<translation id="9018218886431812662">Tapos na ang pag-install</translation> <translation id="901834265349196618">email</translation> <translation id="9019062154811256702">Basahin at baguhin ang mga setting ng autofill</translation> <translation id="9020362265352758658">4x</translation> @@ -5206,6 +5251,7 @@ <translation id="9038649477754266430">Gumamit ng serbisyo sa paghula upang ma-load ang mga page nang mas mabilis</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Mag-mute ng Mga Tab</translation> +<translation id="9040661932550800571">I-update ang password para sa <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Na-disable ng iyong administrator ang access sa mga lokal na file sa iyong machine</translation> <translation id="9042893549633094279">Privacy at seguridad</translation> <translation id="904451693890288097">Pakilagay ang passkey para sa "<ph name="DEVICE_NAME" />":</translation> @@ -5310,6 +5356,7 @@ <translation id="9203478404496196495">I-unmute ang tab</translation> <translation id="9203904171912129171">Pumili ng device</translation> <translation id="9203962528777363226">Hindi pinagana ng administrator ng device na ito ang pagdaragdag ng mga bagong user</translation> +<translation id="9213073329713032541">Matagumpay na nasimulan ang pag-install.</translation> <translation id="9214520840402538427">Oops! Nag-time out ang pagpapasimula sa mga katangian ng pag-install at panahon. Mangyaring makipag-ugnay sa iyong kinatawan ng suporta.</translation> <translation id="9214695392875603905">Cupcake</translation> <translation id="9215293857209265904">Idinagdag ang "<ph name="EXTENSION_NAME" />"</translation> @@ -5364,6 +5411,7 @@ <translation id="988978206646512040">Hindi pinapayagan ang passphrase na walang laman</translation> <translation id="992032470292211616">Maaaring mapinsala ng mga extension, apps at mga tema ang iyong device. Sigurado kang gusto mong magpatuloy?</translation> <translation id="992592832486024913">I-disable ang ChromeVox (pasalitang feedback)</translation> +<translation id="993540765962421562">Ini-install</translation> <translation id="994289308992179865">&Loop</translation> <translation id="996250603853062861">Itinataguyod ang secure na koneksyon...</translation> <translation id="998747458861718449">Surii&n</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb index a1957d25..c20f2856 100644 --- a/chrome/app/resources/generated_resources_gu.xtb +++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">શોધી રહ્યું છે ...</translation> <translation id="1316495628809031177">સિંક થોભાવ્યું છે</translation> <translation id="1319979322914001937">એક ઍપ્લિકેશન કે જે Chrome વેબ દુકાનથી ફિલ્ટર કરેલ એક્સ્ટેન્શન્સની સૂચિ દર્શાવે છે. સૂચિમાંના એક્સ્ટેન્શન્સ સીધા જ ઍપ્લિકેશનથી ઇન્સ્ટોલ કરી શકાય છે.</translation> +<translation id="1322046419516468189">સાચવેલા પાસવર્ડ તમારા <ph name="SAVED_PASSWORDS_STORE" />માં જુઓ અને મેનેજ કરો</translation> <translation id="1326317727527857210">તમારા અન્ય ઉપકરણો પરથી તમારા ટૅબ્સ મેળવવા માટે, Chrome માં સાઇન ઇન કરો.</translation> <translation id="1327074568633507428">Google મેઘ મુદ્રણ પર પ્રિન્ટર</translation> <translation id="1327977588028644528">ગેટવે</translation> @@ -414,11 +415,13 @@ <translation id="1618268899808219593">સ&હાય કેન્દ્ર</translation> <translation id="162035744160882748">સિંક, વૈયક્તિકરણ અને અન્ય Google સેવાઓ ચાલુ કરો</translation> <translation id="1620510694547887537">કૅમેરો</translation> +<translation id="1623132449929929218">હાલમાં છબીઓ ઉપલબ્ધ નથી. વૉલપેપરના સંગ્રહો જોવા માટે, કૃપા કરીને ઇન્ટરનેટ સાથે ફરીથી કનેક્ટ કરો.</translation> <translation id="1624026626836496796">આ ફક્ત એક જ વાર થશે અને તમારા ઓળખપત્રો સંગ્રહિત કરવામાં આવશે નહીં.</translation> <translation id="1627276047960621195">ફાઇલ વર્ણનકર્તા</translation> <translation id="1627408615528139100">પહેલેથી જ ડાઉનલોડ કરેલ છે</translation> <translation id="1632803087685957583">તમને તમારા કીબોર્ડ પુનરાવર્તન દર, શબ્દ પૂર્વાનુમાન અને વધુને સમાયોજિત કરવાની મંજૂરી આપે છે</translation> <translation id="1635033183663317347">તમારા સંરક્ષક દ્વારા ઇન્સ્ટોલ કરાયું</translation> +<translation id="1635885551358739414">Google તમે મુલાકાત લીધેલ સાઇટના કન્ટેન્ટનો તથા બ્રાઉઝરની પ્રવૃત્તિ અને ક્રિયાપ્રતિક્રિયાઓનો ઉપયોગ Chrome અને બીજી Google સેવાઓ જેમ કે અનુવાદ, શોધ અને જાહેરાતોને વ્યક્તિગત બનાવવા માટે કરી શકે છે. તમે સેટિંગમાં કોઈપણ સમયે તેને કસ્ટમાઇઝ કરી શકો છો.</translation> <translation id="1637224376458524414">આ બુકમાર્ક તમારા iPhone પર મેળવો</translation> <translation id="1637765355341780467">તમારી પ્રોફાઇલ ખોલતી વખતે કંઈક ખોટું થયું. કેટલીક સુવિધાઓ અનુપલબ્ધ હોઈ શકે છે.</translation> <translation id="1639239467298939599">લોડ કરી રહ્યું છે</translation> @@ -449,6 +452,7 @@ <translation id="166179487779922818">પાસવર્ડ ખૂબ ટૂંકો છે.</translation> <translation id="1661867754829461514">PIN ખૂટે છે</translation> <translation id="16620462294541761">માફ કરશો, તમારો પાસવર્ડ ચકાસી શકાયો નથી. કૃપા કરીને ફરીથી પ્રયત્ન કરો.</translation> +<translation id="1662550410081243962">ચુકવણી પદ્ધતિઓ સાચવો અને ભરો</translation> <translation id="166278006618318542">વિષય સાર્વજનિક કી અલ્ગોરિધમ</translation> <translation id="166439687370499867">શેર કરેલ નેટવર્કની ગોઠવણીમાં ફેરફાર કરવાની મંજૂરી નથી</translation> <translation id="1665611772925418501">ફાઇલ સંશોધિત કરી શકાઈ નથી.</translation> @@ -458,6 +462,7 @@ <translation id="1673137583248014546"><ph name="URL" /> તમારી સુરક્ષા કીની બનાવટ અને મૉડલ જોવા માગે છે</translation> <translation id="167832068858235403">વૉલ્યુમ ઘટાડો</translation> <translation id="1679068421605151609">વિકાસકર્તા સાધનો</translation> +<translation id="1680849702532889074">તમારી Linux ઍપ્લિકેશનના ઇન્સ્ટૉલેશન દરમિયાન ભૂલ આવી.</translation> <translation id="16815041330799488">સાઇટને ક્લિપબોર્ડ પર કૉપિ કરેલ ટેક્સ્ટ અને છબીઓ જોવાની મંજૂરી આપશો નહીં</translation> <translation id="1682548588986054654">નવી છુપી વિંડો</translation> <translation id="168715261339224929">તમારા બધા ઉપકરણો પર તમારા બુકમાર્ક મેળવવા માટે, સિંક કરવાનું ચાલુ કરો.</translation> @@ -493,6 +498,7 @@ <translation id="1732215134274276513">ટૅબ્સ અનપિન કરો</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> પોતાને અપડેટ રાખી શકશે નહીં</translation> <translation id="1736419249208073774">શોધખોળ કરો</translation> +<translation id="1736827427463982819">Linux (બીટા) બંધ કરો</translation> <translation id="1737968601308870607">બગ ફાઇલ કરો</translation> <translation id="1741314857973421784">ચાલુ રાખો</translation> <translation id="174173592514158117">બધા Play ફોલ્ડરો બતાવો</translation> @@ -665,6 +671,7 @@ <translation id="1997484222658892567"><ph name="URL" /> તમારા સ્થાનિક કમ્પ્યુટર પર કાયમી ધોરણે વિશાળ ડેટા સ્ટોર કરવા માગે છે</translation> <translation id="1997616988432401742">તમારા પ્રમાણપત્રો</translation> <translation id="1999115740519098545">સ્ટાર્ટઅપ પર</translation> +<translation id="2000419248597011803">ઍડ્રેસ બાર અને શોધ બૉક્સમાંથી કેટલીક કુકી અને શોધને તમારા ડિફૉલ્ટ શોધ એંજિન પર મોકલે છે</translation> <translation id="2001796770603320721">ડ્રાઇવમાં મેનેજ કરો</translation> <translation id="2004663115385769400">$1 વડે ખોલી શકતાં નથી</translation> <translation id="200544492091181894">તમે થોડા સમય પછી સેટિંગમાં જઈને હંમેશાં આને બદલી શકો છો</translation> @@ -691,6 +698,7 @@ <translation id="2045969484888636535">કૂકીઝ અવરોધિત કરવાનું ચાલુ રાખો</translation> <translation id="204622017488417136">તમારું ઉપકરણ Chrome ના અગાઉ ઇન્ટોલ કરેલાં સંસ્કરણ પર પરત ફરશે. તમામ વપરાશકર્તા એકાઉન્ટ્સ અને સ્થાનિક ડેટા દૂર કરવામાં આવશે. આ પૂર્વવત્ કરી શકાતું નથી.</translation> <translation id="2048182445208425546">તમારા નેટવર્ક ટ્રાફિકની ઍક્સેસ</translation> +<translation id="2048653237708779538">ક્રિયા ઉપલબ્ધ નથી</translation> <translation id="204914487372604757">શૉર્ટકટ બનાવો </translation> <translation id="2050339315714019657">પોર્ટ્રેટ</translation> <translation id="2053312383184521053">નિષ્ક્રિય સ્થિતિ ડેટા</translation> @@ -779,6 +787,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> પરનું <ph name="PEPPER_PLUGIN_NAME" /> તમારા કમ્પ્યુટરને ઍક્સેસ કરવા માગે છે</translation> <translation id="2178614541317717477">CA સમાધાન</translation> <translation id="218070003709087997">કેટલી કૉપિઝ છાપવાની છે તે બતાવવા માટે સંખ્યાનો ઉપયોગ કરો (1 થી 999 સુધીની).</translation> +<translation id="2183558561014688873">જ્યારે તમારું ઉપકરણ સક્રિય અને અનલૉક કરેલું હોય, ત્યારે તમે ઇચ્છો ત્યારે "ઓકે Google" બોલીને આસિસ્ટંટની સહાય મેળવો.</translation> <translation id="2187895286714876935">સર્વર પ્રમાણપત્ર આયાત કરવામાં ભૂલ</translation> <translation id="2187906491731510095">એક્સ્ટેંશન અપડેટ કર્યા</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> ખોલો</translation> @@ -850,6 +859,7 @@ <translation id="2282146716419988068">GPU પ્રક્રિયા</translation> <translation id="2282155092769082568">સ્વતઃગોઠવણી URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">સરનામાં સાચવો અને ભરો</translation> <translation id="2286841657746966508">બિલિંગ સરનામું</translation> <translation id="2288181517385084064">વીડિઓ રેકોર્ડર પર સ્વિચ કરો</translation> <translation id="2288735659267887385">ઍક્સેસિબિલિટી સેટિંગ્સ</translation> @@ -931,6 +941,7 @@ <translation id="2425665904502185219">કુલ ફાઇલ કદ</translation> <translation id="2428510569851653187">ટૅબ ક્રેશ થઈ ત્યારે તમે શું કરતા હતા તેનું વર્ણન કરો</translation> <translation id="2431027948063157455">Google સહાયક લોડ થવામાં અસમર્થ રહ્યું, કૃપા કરીને તમારું નેટવર્ક કનેક્શન તપાસો અને ફરી પ્રયાસ કરો.</translation> +<translation id="2432753757290432042">Linux (બીટા) અપડેટ આવશ્યક છે</translation> <translation id="2433452467737464329">પૃષ્ઠને સ્વતઃ તાજું કરવા માટે URL માં ક્વેરી પરમ ઉમેરો: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">દેખાવ</translation> <translation id="2433836460518180625">માત્ર ઉપકરણને અનલૉક કરો</translation> @@ -1180,6 +1191,7 @@ <translation id="2775104091073479743">ફિંગરપ્રિન્ટ સંપાદિત કરો</translation> <translation id="2776441542064982094">એવું લાગે છે કે નેટવર્ક પર કોઈ નોંધવા માટે કોઈ ઉપકરણો ઉપલબ્ધ નથી. જો તમારું ઉપકરણ ચાલુ છે અને ઇન્ટરનેટથી કનેક્ટ કરેલું છે, તો તેને તેના સૂચના મેન્યુઅલમાંની સૂચનાઓનો ઉપયોગ કરીને નોંધવાનો પ્રયાસ કરો.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Linux ઍપ્લિકેશન ઇન્સ્ટૉલ કરવામાં ભૂલ</translation> <translation id="2783298271312924866">ડાઉનલોડ કરેલ</translation> <translation id="2783321960289401138">શૉર્ટકટ બનાવો...</translation> <translation id="2783829359200813069">એન્ક્રિપ્શન પ્રકારો પસંદ કરો</translation> @@ -1204,6 +1216,7 @@ <translation id="2812944337881233323">સાઇન આઉટ કરીને ફરી પાછા સાઇન ઇન કરવાનો પ્રયાસ કરો</translation> <translation id="2812989263793994277">કોઈ પણ છબીઓ બતાવશો નહીં</translation> <translation id="2814489978934728345">આ પૃષ્ઠ લોડ કરવાનું રોકો</translation> +<translation id="281504910091592009">સાચવેલા પાસવર્ડ તમારા <ph name="BEGIN_LINK" />Google એકાઉન્ટ<ph name="END_LINK" />માં જુઓ અને મેનેજ કરો</translation> <translation id="2815500128677761940">બુકમાર્ક બાર</translation> <translation id="2815693974042551705">બુકમાર્ક ફોલ્ડર</translation> <translation id="2818476747334107629">પ્રિન્ટરની વિગતો</translation> @@ -1284,6 +1297,7 @@ <translation id="2939938020978911855">ઉપલબ્ધ Bluetooth ઉપકરણો બતાવો</translation> <translation id="2941112035454246133">નીચું</translation> <translation id="2942560570858569904">રાહ જોઈ રહ્યાં છીએ...</translation> +<translation id="2942581856830209953">આ પેજને કસ્ટમાઇઝ કરો</translation> <translation id="2943400156390503548">સ્લાઇડ્સ</translation> <translation id="2943503720238418293">વધુ ટૂંકા નામનો ઉપયોગ કરો</translation> <translation id="2946119680249604491">કનેક્શન ઉમેરો</translation> @@ -1770,6 +1784,7 @@ <translation id="3693415264595406141">પાસવર્ડ:</translation> <translation id="3694027410380121301">પહેલાનું ટૅબ પસંદ કરો</translation> <translation id="3699624789011381381">ઇમેઇલ સરનામું</translation> +<translation id="3699920817649120894">સિંક અને વૈયક્તિકરણ બંધ કરીએ?</translation> <translation id="3700888195348409686">(<ph name="PAGE_ORIGIN" />) પ્રસ્તુત કરીએ છીએ</translation> <translation id="3702500414347826004"><ph name="URL" /> ને શામેલ કરવા માટે તમારું સ્ટાર્ટઅપ પૃષ્ઠ બદલ્યું હતું.</translation> <translation id="370415077757856453">JavaScript અવરોધિત</translation> @@ -1867,6 +1882,7 @@ <translation id="3827774300009121996">&પૂર્ણ સ્ક્રીન</translation> <translation id="3828029223314399057">બુકમાર્ક્સ શોધો</translation> <translation id="3830674330436234648">કોઇ પ્લેબેક ઉપલબ્ધ નથી.</translation> +<translation id="3831436149286513437">Google ડ્રાઇવ શોધ સૂચનો</translation> <translation id="3831486154586836914">વિંડો વિહંગાવલોકન મોડમાં દાખલ થયાં</translation> <translation id="383161972796689579">આ ઉપકરણનાં માલિકે નવા વપરાશકર્તાઓને ઉમેરવાથી અક્ષમ કર્યા છે</translation> <translation id="3834775135533257713">ઍપ્લિકેશન "<ph name="TO_INSTALL_APP_NAME" />" ઉમેરી શક્યાં નથી કારણ કે તે "<ph name="INSTALLED_APP_NAME" />" સાથે વિરોધાભાસ ઉભો કરે છે.</translation> @@ -1900,6 +1916,7 @@ <translation id="3871092408932389764">ન્યૂનતમ</translation> <translation id="3872220884670338524">વધુ ક્રિયાઓ, <ph name="DOMAIN" /> પર <ph name="USERNAME" /> માટે સાચવેલ એકાઉન્ટ</translation> <translation id="3872991219937722530">ડિસ્ક સ્થાન ખાલી કરો અથવા ઉપકરણ પ્રતિભાવવિહીન બની જશે.</translation> +<translation id="3873315167136380065">આ ચાલુ કરવા માટે, તમારો સિંક પાસફ્રેઝ કાઢી નાખવા માટે <ph name="BEGIN_LINK" />સિંકને રીસેટ કરો<ph name="END_LINK" /></translation> <translation id="3878840326289104869">નિરીક્ષણ કરેલ વપરાશકર્તા બનાવે છે</translation> <translation id="3879748587602334249">ડાઉનલોડ મેનેજર</translation> <translation id="3880709822663530586">તમારી સુરક્ષા કી ફક્ત ત્યારે જ કામ કરે છે જ્યારે તમારા ઉપકરણનું બ્લૂટૂથ ચાલુ હોય</translation> @@ -2023,6 +2040,7 @@ <translation id="4068776064906523561">સાચવેલ ફિંગરપ્રિન્ટ</translation> <translation id="407173827865827707">ક્લિક કરવા પર</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: સાઇન ઇન ભૂલ</translation> +<translation id="4071828814509176232">ઓકે Google</translation> <translation id="4074900173531346617">ઇમેઇલ હસ્તાક્ષરકર્તા પ્રમાણપત્ર</translation> <translation id="407520071244661467">સ્કેલ</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" />ને કાસ્ટ કરવામાં અસમર્થ.</translation> @@ -2090,6 +2108,7 @@ <translation id="4192273449750167573">આગલી સ્ક્રીન પર તમારી સેટિંગનો રિવ્યૂ કરો</translation> <translation id="4193154014135846272">Google દસ્તાવેજ</translation> <translation id="4194570336751258953">ટૅપ-ટુ-ક્લિક સક્ષમ કરો</translation> +<translation id="4195249722193633765">Linux (બીટા)વાળી ઍપ ઇન્સ્ટૉલ કરો</translation> <translation id="4195643157523330669">નવા ટૅબમાં ખોલો</translation> <translation id="4195814663415092787">તમે જ્યાંથી છોડેલું ત્યાંથી ચાલુ કરો</translation> <translation id="4197674956721858839">ઝિપ પસંદગી</translation> @@ -2150,7 +2169,9 @@ <translation id="428608937826130504">શેલ્ફ આઇટમ 8</translation> <translation id="4287502004382794929">તમારી પાસે આ ઉપકરણની નોંધણી કરવા માટે પર્યાપ્ત સૉફ્ટવેર લાઇસન્સ નથી. કૃપા કરીને વધુ ખરીદવા માટે વેચાણનો સંપર્ક કરો. જો તમે માનતા હો કે આ સંદેશ તમને ભૂલથી દેખાઈ રહ્યો છે, તો કૃપા કરીને સપોર્ટનો સંપર્ક કરો.</translation> <translation id="4289540628985791613">વિહંગાવલોકન</translation> +<translation id="4295072614469448764">ઍપ તમારા ટર્મિનલમાં ઉપલબ્ધ છે. ત્યાં તમારા લૉન્ચરમાં આઇકન પણ હોઈ શકે છે.</translation> <translation id="4296575653627536209">નિરીક્ષિત વપરાશકર્તા ઉમેરો</translation> +<translation id="4297219207642690536">ફરી શરૂ કરો અને રીસેટ કરો</translation> <translation id="4297322094678649474">ભાષાઓ બદલો</translation> <translation id="4300305918532693141">આ સેટિંગ બદલવા માટે, <ph name="BEGIN_LINK" />સમન્વયનને ફરીથી સેટ કરો<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">લાંબો વિલંબ (2 સે)</translation> @@ -2186,6 +2207,7 @@ <translation id="4370975561335139969">તમે દાખલ કરેલ ઇમેઇલ અને પાસવર્ડ મેળ ખાતા નથી</translation> <translation id="437184764829821926">વિગતવાર ફોન્ટ સેટિંગ્સ</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Linux ઇન્સ્ટૉલર</translation> <translation id="4375035964737468845">ડાઉનલોડ કરેલી ફાઇલોને ખોલો</translation> <translation id="4377363674125277448">સર્વરનાં પ્રમાણપત્ર સાથે કોઈ સમસ્યા હતી.</translation> <translation id="4378154925671717803">ફોન</translation> @@ -2304,6 +2326,7 @@ <translation id="4576541033847873020">Bluetooth ઉપકરણની જોડી કરો</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> કાસ્ટ કરવામાં અસમર્થ.</translation> <translation id="4580526846085481512">શું તમે ખરેખર $1 આઇટમ્સને કાઢવા માંગો છો?</translation> +<translation id="4582497162516204941">Linux (બીટા) ઇન્સ્ટૉલ કરો</translation> <translation id="4582563038311694664">તમામ સેટિંગ્સને ફરીથી સેટ કરો</translation> <translation id="4585793705637313973">પૃષ્ઠ સંપાદિત કરો</translation> <translation id="4589268276914962177">નવું ટર્મિનલ</translation> @@ -2547,6 +2570,7 @@ <translation id="4953808748584563296">ડિફોલ્ટ નારંગી અવતાર</translation> <translation id="4955814292505481804">વાર્ષિક</translation> <translation id="4957949153200969297">માત્ર <ph name="IDS_SHORT_PRODUCT_NAME" /> સિંક સંબંધિત સુવિધાઓ ચાલુ કરો</translation> +<translation id="4959262764292427323">પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવવામાં આવે છે, જેથી તમે કોઈપણ ઉપકરણ પર તેનો ઉપયોગ કરી શકો</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">તમે પસંદ કરેલું ફોલ્ડર સંવેદનશીલ ફાઇલો ધરાવે છે. શું તમે ખરેખર "$1" ને આ ફોલ્ડરની કાયમી વાંચવાની ઍક્સેસ આપવા માંગો છો?</translation> <translation id="4964455510556214366">ગોઠવણી</translation> @@ -2726,6 +2750,7 @@ <translation id="5240817131241497236">Chromeમાં સિંક, વૈયક્તિકરણ અને અન્ય Google સેવાઓ નિયંત્રિત કરતી સેટિંગ બદલવામાં આવી છે. તેની તમારી વર્તમાન સેટિંગ પર અસર થઈ શકે છે.</translation> <translation id="5241128660650683457">તમે મુલાકાત લો છો તે વેબસાઇટ્સ પરનો તમારો બધો ડેટા વાંચો</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" ને સક્ષમ કરીએ?</translation> +<translation id="5243522832766285132">કૃપા કરીને થોડીવારમાં ફરી પ્રયાસ કરો</translation> <translation id="5244474230056479698"><ph name="EMAIL" /> પર સમન્વયિત કરી રહ્યાં છે</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> ક્રેશ થયું છે. એપ્લિકેશનને ફરીથી પ્રારંભ કરવા માટે આ બલૂન ક્લિક કરો.</translation> <translation id="5247051749037287028">ડિસ્પ્લે નામ (વૈકલ્પિક)</translation> @@ -2748,6 +2773,7 @@ <translation id="5264148714798105376">આમાં એક મિનિટ જેટલો સમય લાગી શકે છે.</translation> <translation id="5264252276333215551">કૃપા કરીને કિઓસ્ક મોડમાં તમારી એપ્લિકેશનને લોંચ કરવા માટે ઇન્ટરનેટથી કનેક્ટ કરો.</translation> <translation id="5265562206369321422">એક અઠવાડિયા કરત વધુ માટે ઑફલાઇન</translation> +<translation id="5265797726250773323">ઇન્સ્ટૉલ કરતી વખતે ભૂલ આવી</translation> <translation id="5266113311903163739">પ્રમાણન અધિકારી આયાત ભૂલ</translation> <translation id="5269977353971873915">છાપો નિષ્ફળ થયું</translation> <translation id="5271549068863921519">પાસવર્ડ સાચવો</translation> @@ -2770,6 +2796,7 @@ <translation id="529175790091471945">આ ઉપકરણને ફોર્મેટ કરો</translation> <translation id="5292195676005197571">મોટાભાગની કીનો ઉપયોગ કરવા માટે, માત્ર બટન દબાવો</translation> <translation id="5293170712604732402">સેટિંગ્સને તેમના મૂળ ડિફૉલ્ટ પર પુનઃસ્થાપિત કરો</translation> +<translation id="5297082477358294722">પાસવર્ડ સાચવ્યો. સાચવેલા પાસવર્ડ તમારા <ph name="SAVED_PASSWORDS_STORE" />માં જુઓ અને મેનેજ કરો.</translation> <translation id="5298219193514155779">થીમ રચનાકાર</translation> <translation id="5299109548848736476">ટ્રૅક કરશો નહીં</translation> <translation id="5299682071747318445">તમારા સમન્વયન પાસફ્રેઝ સાથે તમામ ડેટા એન્ક્રિપ્ટ કરાયો છે</translation> @@ -2999,6 +3026,7 @@ <translation id="5612720917913232150"><ph name="URL" /> તમારા કમ્પ્યુટરનાં સ્થાનનો ઉપયોગ કરવા માગે છે</translation> <translation id="5612734644261457353">માફ કરશો, તમારો પાસવર્ડ હજી ચકાસી શકાયો નથી. નોંધ: જો તમે તાજેતરમાં તમારો પાસવર્ડ બદલ્યો હોય, તો તમારો નવો પાસવર્ડ તમે એક વાર સાઇન આઉટ કરી લો તે પછી લાગુ થશે, કૃપા કરીને અહીં જૂના પાસવર્ડનો ઉપયોગ કરો.</translation> <translation id="5614190747811328134">વપરાશકર્તા સૂચના</translation> +<translation id="5614553682702429503">પાસવર્ડ સાચવીએ?</translation> <translation id="561698261642843490">Firefox બંધ કરો</translation> <translation id="5618075537869101857">ડાર્ન, કિઓસ્ક ઍપ્લિકેશન લોંચ કરી શકાઇ નથી.</translation> <translation id="5618333180342767515">(આમાં થોડો સમય લાગી શકે છે)</translation> @@ -3040,6 +3068,7 @@ <translation id="5677503058916217575">પૃષ્ઠ ભાષા:</translation> <translation id="5677928146339483299">અવરોધિત</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> ને વાંચવા લખવાની ઍક્સેસ મંજૂર કરવામાં આવી છે.</translation> +<translation id="5678784840044122290">Linux ઍપ્લિકેશન તમારા ટર્મિનલમાં ઉપલબ્ધ થશે અને તમારા લૉન્ચરમાં આઇકન પણ બતાવી શકે છે.</translation> <translation id="5678955352098267522"><ph name="WEBSITE_1" /> પર તમારો ડેટા વાંચી શકે છે</translation> <translation id="5684661240348539843">સંપત્તિ ઓળખકર્તા</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />આર્કાઇવ અથવા વર્ચ્યુઅલ ડિસ્ક પરથી ડિસ્કનેક્ટ કરી શકતાં નથી<ph name="END_BOLD" /> @@ -3135,6 +3164,7 @@ <translation id="5832805196449965646">વ્યક્તિ ઉમેરો</translation> <translation id="583281660410589416">અજ્ઞાત</translation> <translation id="5832976493438355584">લૉક કરેલ</translation> +<translation id="5833397272224757657">વૈયક્તિકરણ માટે, તમે મુલાકાત લીધેલી સાઇટના કન્ટેન્ટનો, ઉપરાંત બ્રાઉઝરની પ્રવૃત્તિ અને ક્રિયાપ્રતિક્રિયાઓનો ઉપયોગ કરે છે</translation> <translation id="5833610766403489739">આ ફાઇલ આમતેમ ક્યાંક પડેલી છે. કૃપા કરીને તમારી ડાઉનલોડ સ્થાન સેટિંગ તપાસો અને ફરી પ્રયાસ કરો.</translation> <translation id="5833726373896279253">આ સેટિંગ્સ ફક્ત માલિક દ્વારા જ સંશોધિત થઈ શકે છે:</translation> <translation id="5834581999798853053">લગભગ <ph name="TIME" /> મિનિટ બાકી</translation> @@ -3188,6 +3218,7 @@ <translation id="5908769186679515905">સાઇટ્સને ફ્લેશ ચલાવવાથી અવરોધિત કરો</translation> <translation id="5910363049092958439">છબીને આ રૂપે સા&ચવો...</translation> <translation id="5911737117543891828">અસ્થાયી રૂપે Google ડ્રાઇવ ઑફલાઇન ફાઇલો કાઢી નાખવામાં આવશે. તમે ઑફલાઇન ઉપલબ્ધ તરીકે સેટ કરેલી ફાઇલો આ ઉપકરણમાંથી કાઢી નાખવામાં આવશે નહીં.</translation> +<translation id="5911887972742538906">તમારી Linux ઍપ્લિકેશનના ઇન્સ્ટૉલેશન દરમિયાન ભૂલ આવી.</translation> <translation id="5912378097832178659">&શોધ એન્જિન્સ સંપાદિત કરો...</translation> <translation id="5914724413750400082">મૉડ્યૂલ્સ (<ph name="MODULUS_NUM_BITS" /> બિટ્સ): <ph name="MODULUS_HEX_DUMP" /> @@ -3374,6 +3405,7 @@ <translation id="6198102561359457428">સાઇન આઉટ કરો પછી ફરી સાઇન કરો...</translation> <translation id="6198252989419008588">PIN બદલો</translation> <translation id="6199801702437275229">સ્થાન માહિતી માટે રાહ જોઈ રહ્યું છે...</translation> +<translation id="6201792273624501289">Linux ઍપ</translation> <translation id="6204015976622790023">તમારા આસિસ્ટંટના તમારી સ્ક્રીન પરની વસ્તુઓથી સંબંધિત સૂચનો જુઓ.</translation> <translation id="6205710420833115353">કેટલાક ઑપરેશન્સમાં અપેક્ષિત કરતાં વધુ સમય લાગી રહ્યો છે. શું તમે તેમને નિરસ્ત કરવા માગો છો?</translation> <translation id="6206311232642889873">છબીની કૉ&પિ બનાવો</translation> @@ -3850,6 +3882,7 @@ <translation id="6945221475159498467">પસંદ કરો</translation> <translation id="694592694773692225">આ પેજ પર રીડાયરેક્ટ કરવાનું બ્લૉક કર્યું.</translation> <translation id="6949306908218145636">ખુલ્લા પૃષ્ઠોને બુકમાર્ક કરો...</translation> +<translation id="6950627417367801484">ઍપ પુનઃપ્રાપ્ત કરો</translation> <translation id="6951153907720526401">ચુકવણી હૅન્ડલર</translation> <translation id="6955446738988643816">પૉપઅપની તપાસ કરો</translation> <translation id="6957231940976260713">સેવાનું નામ</translation> @@ -3975,6 +4008,7 @@ <translation id="7127980134843952133">ડાઉનલોડ ઇતિહાસ</translation> <translation id="7131040479572660648"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> અને <ph name="WEBSITE_3" /> પર તમારો ડેટા વાંચી શકે છે</translation> <translation id="713122686776214250">પૃ&ષ્ઠ ઉમેરો...</translation> +<translation id="7133578150266914903">તમારા વ્યવસ્થાપક આ ઉપકરણને રોલ બૅક કરી રહ્યા છે (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">ટેક્સ્ટને વધુ નાનો બનાવો</translation> <translation id="7136694880210472378">ડિફૉલ્ટ બનાવો</translation> <translation id="7136984461011502314"><ph name="PRODUCT_NAME" /> માં આપનું સ્વાગત છે</translation> @@ -4175,6 +4209,7 @@ <translation id="7463006580194749499">વ્યક્તિ ઉમેરો</translation> <translation id="7464490149090366184">ઝિપ કરવાનું નિષ્ફળ, આઇટમ અસ્તિત્વમાં છે: "$1"</translation> <translation id="7465778193084373987">નેટસ્કેપ પ્રમાણપત્ર રિવોકેશન URL</translation> +<translation id="7469406957790636836">આ ચાલુ કરવા માટે, પહેલા <ph name="BEGIN_LINK" />ભાષાઓ અને ઇનપુટ<ph name="END_LINK" />માં જોડણીની તપાસ કાર્ય ચાલુ કરો</translation> <translation id="7469894403370665791">આ નેટવર્કથી આપમેળે કનેક્ટ થાઓ</translation> <translation id="747114903913869239">ભૂલ: એક્સટેન્શનને ડિકોડ કરવામાં અક્ષમ</translation> <translation id="7473753388963818366">ચાલો, તમારા <ph name="DEVICE_TYPE" />ને તમારા માટે તૈયાર કરીએ</translation> @@ -4272,6 +4307,7 @@ <translation id="7606992457248886637">અધિકારીઓ</translation> <translation id="7607002721634913082">થોભાવેલું</translation> <translation id="7607274158153386860">ટેબ્લેટ સાઇટની વિનંતી કરો</translation> +<translation id="7609148976235050828">કૃપા કરીને ઇન્ટરનેટથી કનેક્ટ થાઓ અને ફરી પ્રયાસ કરો.</translation> <translation id="7611008212562900400">તમારું ઉપકરણ, ઍપ્લિકેશનો, વેબ શોધો...</translation> <translation id="7616214729753637086">ઉપકરણની નોંધણી કરી રહ્યું છે...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" થી કનેક્ટ કરી રહ્યું છે</translation> @@ -4340,6 +4376,7 @@ <translation id="7730449930968088409">તમારી સ્ક્રીનની સામગ્રી કેપ્ચર કરો</translation> <translation id="7730494089396812859">મેઘ બેકઅપ વિગતો દર્શાવો</translation> <translation id="7732111077498238432">નેટવર્ક નીતિ દ્વારા નિયંત્રિત છે</translation> +<translation id="7737238973539693982">Linux (બીટા) ડિલીટ કરો</translation> <translation id="773905249182896430">તમને તથા તમારા ઉપકરણને જોખમી સાઇટથી સુરક્ષિત કરે છે</translation> <translation id="7740996059027112821">માનક</translation> <translation id="7748528009589593815">પહેલાંનું ટૅબ</translation> @@ -4527,6 +4564,7 @@ <translation id="7974936243149753750">ઓવરસ્કૅન</translation> <translation id="7977551819349545646">Chromebox અપડેટ થઈ રહ્યું છે...</translation> <translation id="7978412674231730200">ખાનગી કી</translation> +<translation id="7978450511781612192">આનાથી તમે તમારા Google એકાઉન્ટમાંથી સાઇન આઉટ થઈ જશો. ત્યાર પછી તમારાં બુકમાર્ક, ઇતિહાસ, પાસવર્ડ અને ઘણું બધું સિંક કરવામાં નહીં આવે.</translation> <translation id="7979036127916589816">સમન્વય ભૂલ</translation> <translation id="7980084013673500153">સંપત્તિ ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">ઝડપી બ્રાઉઝિંગ અને શોધ માટે પેજને પહેલેથી લોડ કરો</translation> @@ -4686,6 +4724,7 @@ <translation id="8226619461731305576">કતારમાં</translation> <translation id="8226742006292257240">નીચે રેંડમલી બનાવેલો TPM પાસવર્ડ છે જે તમારા કમ્પ્યુટરને અસાઇન કરવામાં આવ્યો છે:</translation> <translation id="8227119283605456246">ફાઇલ જોડો</translation> +<translation id="8230134520748321204"><ph name="ORIGIN" /> માટેનો પાસવર્ડ સાચવીએ?</translation> <translation id="8234795456569844941">કૃપા કરી અમારા એન્જિનિયરોને આ સમસ્યા ઠીક કરવામાં સહાય કરો. તમને પ્રોફાઇલમાં ભૂલ આવ્યાનો સંદેશ મળ્યો બિલકુલ તે પહેલા શું થયું હતું તે અમને જણાવો:</translation> <translation id="8234989666557591529">તમારું <ph name="DEVICE_TYPE" /> અનલૉક કરવા માટે એક ફોન પસંદ કરો</translation> <translation id="8239020549147958415"><ph name="FULL_NAME" /> તરીકે સિંક કરો</translation> @@ -4804,6 +4843,7 @@ <translation id="8438328416656800239">એક સ્માર્ટ બ્રાઉઝર પર સ્વિચ કરો</translation> <translation id="8438566539970814960">શોધ અને બ્રાઉઝિંગ વધુ સારું બનાવો</translation> <translation id="8439506636278576865">આ ભાષામાં પૃષ્ઠોનું અનુવાદ કરવાની ઓફર આપે છે</translation> +<translation id="8440630305826533614">Linux ઍપ</translation> <translation id="8446884382197647889">વધુ જાણો</translation> <translation id="8447409163267621480">કાં તો Ctrl અથવા Alt શામેલ કરો</translation> <translation id="8448729345478502352">તમારી સ્ક્રીન પર આઇટમો નાની અથવા મોટી કરો</translation> @@ -4848,6 +4888,7 @@ <translation id="8497219075884839166">વિંડોની ઉપયોગીતાઓ</translation> <translation id="8498214519255567734">ઓછા પ્રકાશમાં તમારી સ્ક્રીન પર જોવાનું અથવા વાંચવાનું સરળ બનાવે છે</translation> <translation id="8498395510292172881">Chromeમાં વાંચવાનું ચાલુ રાખો</translation> +<translation id="8502536196501630039">Google Playમાંથી ઍપનો ઉપયોગ કરવા માટે, પહેલા તમારે તમારી ઍપ પુનઃપ્રાપ્ત કરવી જરૂરી છે. કેટલોક ડેટા ગુમ થયો હોઈ શકે છે.</translation> <translation id="8503813439785031346">વપરાશકર્તાનામ</translation> <translation id="850875081535031620">કોઈ નુકસાનકારક સૉફ્ટવેર મળ્યું નથી</translation> <translation id="8509646642152301857">જોડણી તપાસ ડાઉનલોડ કરવાનું નિષ્ફળ ગયું.</translation> @@ -4977,6 +5018,7 @@ <translation id="8698464937041809063">Google રેખાંકન</translation> <translation id="869884720829132584">ઍપ્લિકેશનો મેનૂ</translation> <translation id="869891660844655955">સમાપ્તિ તારીખ</translation> +<translation id="8699566574894671540">આ ચાલુ કરવા માટે, પહેલા સંપાદન મેનૂમાં ટાઇપિંગ વખતે જોડણી તપાસો પસંદ કરો</translation> <translation id="870073306461175568">નેટવર્ક ફાઇલ શેર</translation> <translation id="8701677791353449257">ઉપકરણનું નામ રેગ્યુલર એક્સપ્રેશન <ph name="REGEX" /> સાથે મેળ ખાતું હોવું જોઈએ.</translation> <translation id="8704521619148782536">આ સામાન્ય કરતાં વધુ સમય લઈ રહ્યું છે. તમે રાહ જોઈ શકો છો અથવા રદ કરી અને પછીથી ફરી પ્રયાસ કરી શકો છો.</translation> @@ -5016,6 +5058,7 @@ <p>પણ તમે કમાન્ડ લાઇન દ્વારા હજી પણ ગોઠવી શકો છો. કૃપા કરીને ફ્લેગ્સ અને વાતાવરણ વેરીએબલ્સ પર વધુ માહિતી માટે <code>પુરુષ <ph name="PRODUCT_BINARY_NAME" /></code> જુઓ.</p></translation> <translation id="8755376271068075440">&વધુ મોટું</translation> +<translation id="8756969031206844760">પાસવર્ડ અપડેટ કરીએ?</translation> <translation id="8757090071857742562">ડેસ્કટોપ કાસ્ટ કરવામાં અસમર્થ. તમે તમારી સ્ક્રીનને શેર કરવાનું શરૂ કરવા માટેના સંકેતની પુષ્ટિ કરી છે કે કેમ તે ચકાસો.</translation> <translation id="8757640015637159332">સાર્વજનિક સત્ર દાખલ કરો</translation> <translation id="8757742102600829832">કનેક્ટ કરવા માટે Chromebox પસંદ કરો</translation> @@ -5172,7 +5215,9 @@ <translation id="9009369504041480176">અપલોડ થઈ રહ્યું છે (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">હંમેશાં આઇકન બતાવો</translation> <translation id="9011178328451474963">છેલ્લું ટૅબ</translation> +<translation id="9013707997379828817">તમારા વ્યવસ્થાપકે આ ઉપકરણને રોલ બૅક કર્યું છે. કૃપા કરીને મહત્ત્વપૂર્ણ ફાઇલો સાચવી લો પછી ફરી શરૂ કરો. ઉપકરણમાંનો બધો ડેટા ડિલીટ કરવામાં આવશે.</translation> <translation id="9014987600015527693">અન્ય ફોન દર્શાવો</translation> +<translation id="9018218886431812662">ઇન્સ્ટૉલેશન પૂર્ણ</translation> <translation id="901834265349196618">ઇમેઇલ</translation> <translation id="9019062154811256702">સ્વતઃભરણ સેટિંગ્સ વાંચો અને બદલો</translation> <translation id="9020362265352758658">4x</translation> @@ -5196,6 +5241,7 @@ <translation id="9038649477754266430">પૃષ્ઠોને વધુ ઝડપથી લોડ કરવા માટે પૂર્વાનુમાન સેવાનો ઉપયોગ કરો</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">ટૅબ્સને મ્યૂટ કરો</translation> +<translation id="9040661932550800571"><ph name="ORIGIN" /> માટેનો પાસવર્ડ અપડેટ કરીએ?</translation> <translation id="9041692268811217999">તમારા વ્યવસ્થાપકે તમારા મશીન પરની સ્થાનિક ફાઇલોનો ઍક્સેસ બંધ કરેલ છે</translation> <translation id="9042893549633094279">ગોપનીયતા અને સુરક્ષા</translation> <translation id="904451693890288097">કૃપા કરીને "<ph name="DEVICE_NAME" />" માટે પાસકી દાખલ કરો:</translation> @@ -5300,6 +5346,7 @@ <translation id="9203478404496196495">ટૅબને અનમ્યૂટ કરો</translation> <translation id="9203904171912129171">ઉપકરણ પસંદ કરો</translation> <translation id="9203962528777363226">આ ઉપકરણનાં વ્યવસ્થાપકે નવા વપરાશકર્તાઓને ઉમેરવાથી અક્ષમ કર્યા છે</translation> +<translation id="9213073329713032541">ઇન્સ્ટૉલેશન સફળતાપૂર્વક શરૂ થયું.</translation> <translation id="9214520840402538427">અરે! ઇન્સ્ટોલેશન-સમયનો પ્રારંભ એટ્રિબ્યૂટ્સનો સમય સમાપ્ત થયો. કૃપા કરીને તમારા સપોર્ટ પ્રતિનિધિનો સંપર્ક કરો.</translation> <translation id="9214695392875603905">કપકૅક</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ઉમેરાયું</translation> @@ -5354,6 +5401,7 @@ <translation id="988978206646512040">ખાલી પાસફ્રેઝને મંજૂરી નથી</translation> <translation id="992032470292211616">એક્સ્ટેંશન્સ, ઍપ્લિકેશનો અને થીમ્સ તમારા ઉપકરણને નુકસાન પહોંચાડી શકે છે. શું તમે ખરેખર ચાલુ રાખવા માંગો છો?</translation> <translation id="992592832486024913">ChromeVox (બોલાયેલ પ્રતિસાદ) અક્ષમ કરો</translation> +<translation id="993540765962421562">ઇન્સ્ટૉલેશન થઈ રહ્યું છે</translation> <translation id="994289308992179865">&લૂપ કરો</translation> <translation id="996250603853062861">સુરક્ષિત કનેક્શન સ્થાપિત કરી રહ્યું છે...</translation> <translation id="998747458861718449">ત&પાસ કરો</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb index da1c4a1..5366524 100644 --- a/chrome/app/resources/generated_resources_hi.xtb +++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">खोज रहा है...</translation> <translation id="1316495628809031177">सिंक रोका हुआ है</translation> <translation id="1319979322914001937">ऐसा ऐप जो Chrome वेब स्टोर से एक्सटेंशन की फ़िल्टर की गई सूची दिखाता है. सूची में मौजूद एक्सटेंशन सीधे ऐप से इंस्टॉल किए गए हो सकते हैं.</translation> +<translation id="1322046419516468189">अपने <ph name="SAVED_PASSWORDS_STORE" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें</translation> <translation id="1326317727527857210">अपने अन्य डिवाइस से अपने टैब प्राप्त करने के लिए, Chrome में प्रवेश करें.</translation> <translation id="1327074568633507428">Google क्लाउड प्रिंट पर प्रिंटर</translation> <translation id="1327977588028644528">गेटवे</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">&सहायता केंद्र</translation> <translation id="162035744160882748">'सिंक करें', 'मनमुताबिक बनाएं' और दूसरी 'Google सेवाएं' चालू करें</translation> <translation id="1620510694547887537">कैमरा</translation> +<translation id="1623132449929929218">इमेज फ़िलहाल उपलब्ध नहीं हैं. वॉलपेपर के संग्रह देखने के लिए कृपया इंटरनेट से फिर से कनेक्ट करें.</translation> <translation id="1624026626836496796">ऐसा केवल एक बार होगा, और आपके क्रेडेंशियल संग्रहित नहीं किए जाएंगे.</translation> <translation id="1627276047960621195">फ़ाइल वर्णनकर्ता</translation> <translation id="1627408615528139100">पहले से डाउनलोड की हुई है</translation> <translation id="1632803087685957583">आपको अपने कीबोर्ड को दोहराने की दर, शब्द पूर्वानुमान आदि समायोजित करने देती है</translation> <translation id="1635033183663317347">आपके संरक्षक द्वारा इंस्टॉल किया गया.</translation> +<translation id="1635885551358739414">Google उन साइटों की सामग्री, जिन पर आप जाते हैं, के साथ ही आपकी ब्राउज़र गतिविधि और इंटरैक्शन का इस्तेमाल Chrome और दूसरी 'Google सेवाओं', जैसे कि 'अनुवाद', 'सर्च' और विज्ञापनों को आपकी पसंद के मुताबिक बनाने के लिए कर सकता है. आप ‘सेटिंग‘ में जाकर इसे अपनी पसंद के मुताबिक बना सकते हैं.</translation> <translation id="1637224376458524414">यह बुकमार्क अपने iPhone पर पाएं</translation> <translation id="1637765355341780467">आपकी प्रोफ़ाइल खोलते समय कुछ गलत हो गया. हो सकता है कि कुछ सुविधाएं अनुपलब्ध हों.</translation> <translation id="1639239467298939599">लोड हो रहा है</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">पासवर्ड बहुत छोटा है.</translation> <translation id="1661867754829461514">पिन गुम</translation> <translation id="16620462294541761">क्षमा करें, आपका पासवर्ड सत्यापित नहीं हो सका. कृपया फिर से प्रयास करें.</translation> +<translation id="1662550410081243962">भुगतान के तरीके सेव करें और भरें</translation> <translation id="166278006618318542">विषय सार्वजनिक कुंजी कलन विधि</translation> <translation id="166439687370499867">शेयर किए गए नेटवर्क कॉन्फ़िगरेशन बदलने की अनुमति नहीं है</translation> <translation id="1665611772925418501">फ़ाइल को संशोधित नहीं किया जा सका.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> आपकी सुरक्षा कुंजी के निर्माता और मॉडल को देखना चाहता है</translation> <translation id="167832068858235403">वॉल्यूम कम करें</translation> <translation id="1679068421605151609">डेवलपर टूल</translation> +<translation id="1680849702532889074">आपका Linux ऐप्लिकेशन इंस्टॉल करते समय कोई गड़बड़ी हुई.</translation> <translation id="16815041330799488">साइटों को क्लिपबोर्ड पर कॉपी किए गए लेख और इमेज न देखने दें</translation> <translation id="1682548588986054654">नई &गुप्त विंडो</translation> <translation id="168715261339224929">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए, सिंक चालू करें.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">टैब बड़ी करें</translation> <translation id="1734824808160898225">हो सकता है कि <ph name="PRODUCT_NAME" /> खुद को अपडेट नहीं रख पाए</translation> <translation id="1736419249208073774">बेहतर जानें</translation> +<translation id="1736827427463982819">Linux (बीटा) बंद करें</translation> <translation id="1737968601308870607">बग की सूचना दें</translation> <translation id="1741314857973421784">जारी रखें</translation> <translation id="174173592514158117">Play के सभी फ़ोल्डर दिखाएं</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> आपके स्थानीय कंप्यूटर पर हमेशा के लिए बड़ी मात्रा में डेटा संग्रहित करना चाहता है</translation> <translation id="1997616988432401742">आपके प्रमाणपत्र</translation> <translation id="1999115740519098545">प्रारंभ करने पर</translation> +<translation id="2000419248597011803">'पता बार' और 'खोज बॉक्स' की कुछ कुकी और खोजों को आपके डिफ़ॉल्ट खोज इंजन पर भेजा जाता है</translation> <translation id="2001796770603320721">डिस्क में प्रबंधित करें</translation> <translation id="2004663115385769400">$1 के साथ नहीं खोला जा सका</translation> <translation id="200544492091181894">आप बाद में सेटिंग में जाकर इसे कभी भी बदल सकते हैं</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">कुकी अवरोधित करना जारी रखें</translation> <translation id="204622017488417136">आपके डिवाइस को Chrome के पूर्व में इंस्टॉल किए गए वर्ज़न पर वापस ले जाया जाएगा. सभी उपयोगकर्ता खाते और स्थानीय डेटा निकाल दिया जाएगा. इसे पूर्ववत नहीं किया जा सकता.</translation> <translation id="2048182445208425546">अपना नेटवर्क ट्रैफ़िक ऐक्सेस करें</translation> +<translation id="2048653237708779538">कार्रवाई उपलब्ध नहीं है</translation> <translation id="204914487372604757">शॉर्टकट बनाएं</translation> <translation id="2050339315714019657">पोर्ट्रेट</translation> <translation id="2053312383184521053">निष्क्रिय स्थिति डेटा</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> पर <ph name="PEPPER_PLUGIN_NAME" /> आपके कंप्यूटर को एक्सेस करना चाहता है</translation> <translation id="2178614541317717477">CA समझौता</translation> <translation id="218070003709087997">प्रिंट की जाने वाली कॉपी की संख्या (1 से 999) दर्शाने के लिए किसी संख्या का उपयोग करें.</translation> +<translation id="2183558561014688873">अपना डिवाइस चालू होने और अनलॉक होने पर कभी भी "OK Google" बोलें और अपनी Assistant सेवा एक्सेस करें.</translation> <translation id="2187895286714876935">सर्वर प्रमाणपत्र आयात गड़बड़ी</translation> <translation id="2187906491731510095">एक्सटेंशन अपडेट किए गए</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> खोलें</translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">GPU प्रक्रिया</translation> <translation id="2282155092769082568">URL का अपने आप कॉन्फ़िगरेशन:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">पतों की जानकारी सेव करें और भरें</translation> <translation id="2286841657746966508">बिलिंग पता</translation> <translation id="2288181517385084064">वीडियो रिकॉर्डर पर स्विच करें</translation> <translation id="2288735659267887385">एक्सेस-योग्यता सेटिंग</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">फ़ाइल का कुल आकार</translation> <translation id="2428510569851653187">बताएं कि जब टैब क्रैश हुआ तब आप क्या कर रहे थे</translation> <translation id="2431027948063157455">Google Assistant को लोड नहीं किया जा सका, कृपया अपना नेटवर्क कनेक्शन जांच लें और फिर से कोशिश करें.</translation> +<translation id="2432753757290432042">Linux (बीटा) अपडेट ज़रूरी है</translation> <translation id="2433452467737464329">पेज को अपने आप रीफ्रेश करने के लिए URL में क्वेरी पैरामीटर जोड़ें: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">प्रकटन</translation> <translation id="2433836460518180625">सिर्फ़ डिवाइस अनलॉक करें</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">फ़िंगरप्रिंट संपादित करें</translation> <translation id="2776441542064982094">ऐसा लगता है कि नेटवर्क पर पंजीकृत करने के लिए कोई डिवाइस उपलब्ध नहीं हैं. यदि आपका डिवाइस चालू है और इंटरनेट से कनेक्ट है, तो उसके निर्देश मैन्युअल में दिए गए निर्देशों का उपयोग करके उसे पंजीकृत करने का प्रयास करें.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Linux ऐप्लिकेशन इंस्टॉल करते समय गड़बड़ी</translation> <translation id="2783298271312924866">डाउनलोड किए गए</translation> <translation id="2783321960289401138">शॉर्टकट बनाएं...</translation> <translation id="2783829359200813069">सुरक्षा प्रकार चुनें</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">प्रस्थान करके और वापस प्रवेश करके देखें</translation> <translation id="2812989263793994277">कोई भी चित्र न दिखाएं</translation> <translation id="2814489978934728345">इस पेज को लोड करना रोकें</translation> +<translation id="281504910091592009">अपने <ph name="BEGIN_LINK" />Google खाते<ph name="END_LINK" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें</translation> <translation id="2815500128677761940">बुकमार्क बार</translation> <translation id="2815693974042551705">बुकमार्क फ़ोल्डर</translation> <translation id="2818476747334107629">प्रिंटर विवरण</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">उपलब्ध ब्लूटूथ डिवाइस दिखाएं</translation> <translation id="2941112035454246133">कम</translation> <translation id="2942560570858569904">इंतज़ार कर रही है...</translation> +<translation id="2942581856830209953">यह पेज पसंद के मुताबिक बनाएं</translation> <translation id="2943400156390503548">स्लाइड</translation> <translation id="2943503720238418293">थोड़े छोटे नाम का इस्तेमाल करें</translation> <translation id="2946119680249604491">कनेक्शन जोड़ें</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">पासवर्ड:</translation> <translation id="3694027410380121301">पिछला टैब को चुनें</translation> <translation id="3699624789011381381">ईमेल पता</translation> +<translation id="3699920817649120894">सिंक करना और मनमुताबिक बनाना बंद करें?</translation> <translation id="3700888195348409686">पेश है (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">आपके स्टार्टअप पेज <ph name="URL" /> को शामिल करने के लिए बदल दिए गए थे.</translation> <translation id="370415077757856453">JavaScript को ब्लॉक किया गया</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&पूर्ण स्क्रीन</translation> <translation id="3828029223314399057">बुकमार्क खोजें</translation> <translation id="3830674330436234648">कोई प्लेबैक उपलब्ध नहीं है</translation> +<translation id="3831436149286513437">'Google डिस्क' के खोज सुझाव</translation> <translation id="3831486154586836914">विंडो संक्षिप्त विवरण मोड में प्रवेश किया</translation> <translation id="383161972796689579">इस डिवाइस के मालिक ने नए उपयोगकर्ता जोड़े जाना अक्षम कर दिया है</translation> <translation id="3834775135533257713">"<ph name="TO_INSTALL_APP_NAME" />" ऐप्लिकेशन जोड़ा नहीं जा सका क्योंकि उसका "<ph name="INSTALLED_APP_NAME" />" से विरोध है.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">सबसे कम</translation> <translation id="3872220884670338524">अधिक कार्रवाइयां, <ph name="DOMAIN" /> पर <ph name="USERNAME" /> के लिए सेव किया गया खाता</translation> <translation id="3872991219937722530">डिस्क में स्पेस खाली करें अन्यथा डिवाइस प्रतिक्रिया नहीं देगा.</translation> +<translation id="3873315167136380065">इसे चालू करने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /> ताकि आपका सिंक करने का लंबा पासवर्ड हटाया जा सके</translation> <translation id="3878840326289104869">'निगरानी में रखा गया उपयोगकर्ता' बनाना</translation> <translation id="3879748587602334249">डाउनलोड मैनेजर</translation> <translation id="3880709822663530586">आपकी 'सुरक्षा चाबी' तभी काम करती है जब आपके डिवाइस का ब्लूटूथ चालू हो</translation> @@ -2026,6 +2043,7 @@ <translation id="4068776064906523561">सहेजे गए फ़िंगरप्रिंट</translation> <translation id="407173827865827707">क्लिक करने पर</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: प्रवेश करने संबंधी गड़बड़ी</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">ईमेल हस्ताक्षरकर्ता प्रमाणपत्र</translation> <translation id="407520071244661467">स्केल</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> कास्ट नहीं हो पा रहा है.</translation> @@ -2093,6 +2111,7 @@ <translation id="4192273449750167573">अगली स्क्रीन पर अपनी सेटिंग देखें</translation> <translation id="4193154014135846272">Google दस्तावेज़</translation> <translation id="4194570336751258953">क्लिक-के-लिए-टैप सक्षम करें</translation> +<translation id="4195249722193633765">Linux (बीटा) वाला ऐप्लिकेशन इंस्टॉल करें</translation> <translation id="4195643157523330669">नए टैब में खोलें</translation> <translation id="4195814663415092787">वहीं से जारी रखें जहां आपने छोड़ा था</translation> <translation id="4197674956721858839">ज़िप चयन</translation> @@ -2153,7 +2172,9 @@ <translation id="428608937826130504">अलमारी आइटम 8</translation> <translation id="4287502004382794929">इस डिवाइस का नामांकन करने के लिए आपके पास पर्याप्त सॉफ़्टवेयर लाइसेंस नहीं हैं. कृपया और अधिक खरीदने के लिए विक्रय विभाग से संपर्क करें. यदि आपको लगता है कि आपको यह संदेश त्रुटिवश दिखाई दे रहा है, तो कृपया सहायता से संपर्क करें.</translation> <translation id="4289540628985791613">संक्षिप्त विवरण</translation> +<translation id="4295072614469448764">ऐप्लिकेशन आपके टर्मिनल में उपलब्ध है. आपके 'लॉन्चर' में एक आइकॉन भी मौजूद हो सकता है.</translation> <translation id="4296575653627536209">'निगरानी में रखा गया उपयोगकर्ता' जोड़ें</translation> +<translation id="4297219207642690536">रीस्टार्ट करें और रीसेट करें</translation> <translation id="4297322094678649474">भाषाएं बदलें</translation> <translation id="4300305918532693141">यह सेटिंग बदलने के लिए, <ph name="BEGIN_LINK" />सिंक रीसेट करें<ph name="END_LINK" /></translation> <translation id="4305227814872083840">लंबा (2 सेकंड)</translation> @@ -2189,6 +2210,7 @@ <translation id="4370975561335139969">आपके द्वारा डाले गए ईमेल और पासवर्ड का मिलान नहीं हो रहा</translation> <translation id="437184764829821926">उन्नत फ़ॉन्ट सेटिंग</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Linux इंस्टॉलर</translation> <translation id="4375035964737468845">डाउनलोड की गई फ़ाइलें खोलें</translation> <translation id="4377363674125277448">सर्वर के प्रमाणपत्र में कोई समस्या थी.</translation> <translation id="4378154925671717803">फ़ोन</translation> @@ -2307,6 +2329,7 @@ <translation id="4576541033847873020">ब्लूटूथ डिवाइस युग्मित करें</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> को कास्ट करने में असमर्थ.</translation> <translation id="4580526846085481512">क्या आप वाकई $1 आइटम हटाना चाहते हैं?</translation> +<translation id="4582497162516204941">Linux (बीटा) वाला पैकेज इंस्टॉल करें</translation> <translation id="4582563038311694664">सभी सेटिंग रीसेट करें</translation> <translation id="4585793705637313973">पेज संपादित करें</translation> <translation id="4589268276914962177">नया टर्मिनल</translation> @@ -2550,6 +2573,7 @@ <translation id="4953808748584563296">डिफ़ॉल्ट नारंगी अवतार</translation> <translation id="4955814292505481804">वार्षिक</translation> <translation id="4957949153200969297">सिर्फ़ उन्हीं सुविधाओं को चालू करें जो <ph name="IDS_SHORT_PRODUCT_NAME" /> सिंक से जुड़ी हैं</translation> +<translation id="4959262764292427323">पासवर्ड आपके Google खाते में सेव किए जाते हैं ताकि आप किसी भी डिवाइस पर उनका इस्तेमाल कर सकें</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">आपके द्वारा चुने गए फ़ोल्डर में संवेदनशील फ़ाइलें हैं. क्या आप वाकई इस फ़ोल्डर को "$1" स्थायी पढ़ने की एक्सेस देना चाहते हैं?</translation> <translation id="4964455510556214366">व्यवस्था</translation> @@ -2729,6 +2753,7 @@ <translation id="5240817131241497236">Chrome में 'सिंक करें', 'मनमुताबिक बनाएं' और दूसरी 'Google सेवाओं' को नियंत्रित करने वाली सेटिंग बदल गई हैं. आपकी मौजूदा सेटिंग पर इसका असर पड़ सकता है.</translation> <translation id="5241128660650683457">जिन वेबसाइट पर आप जाते हैं, उन पर मौजूद अपना सारा डेटा पढ़ें</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" को सक्षम करें?</translation> +<translation id="5243522832766285132">कृपया कुछ देर बाद दोबारा कोशिश करें</translation> <translation id="5244474230056479698"><ph name="EMAIL" /> से समन्वयित हो रहा है</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> क्रैश हो गया है. ऐप्लिकेशन पुन: प्रारंभ करने के लिए यह गुब्बारा क्लिक करें.</translation> <translation id="5247051749037287028">दिखाई देने वाला नाम (वैकल्पिक)</translation> @@ -2751,6 +2776,7 @@ <translation id="5264148714798105376">इसमें एक मिनट या कुछ ज़्यादा समय लग सकता है.</translation> <translation id="5264252276333215551">किओस्क मोड में अपने ऐप्लिकेशन लॉन्च करने के लिए कृपया इंटरनेट से कनेक्ट करें.</translation> <translation id="5265562206369321422">एक सप्ताह से अधिक समय से ऑफ़लाइन</translation> +<translation id="5265797726250773323">इंस्टॉल करते समय गड़बड़ी हुई</translation> <translation id="5266113311903163739">प्रमाणन प्राधिकरण आयात गड़बड़ी</translation> <translation id="5269977353971873915">प्रिंट विफल</translation> <translation id="5271549068863921519">पासवर्ड सहेजें</translation> @@ -2773,6 +2799,7 @@ <translation id="529175790091471945">यह डिवाइस फ़ॉर्मेट करें</translation> <translation id="5292195676005197571">ज़्यादातर चाबियों का इस्तेमाल करने के लिए, बस बटन को दबाएं</translation> <translation id="5293170712604732402">सेटिंग को उनके मूल डिफ़ॉल्ट पर बहाल करें</translation> +<translation id="5297082477358294722">पासवर्ड सेव किया गया. अपने <ph name="SAVED_PASSWORDS_STORE" /> में सेव किए गए पासवर्ड देखें और उन्हें प्रबंधित करें.</translation> <translation id="5298219193514155779">थीम निर्माता</translation> <translation id="5299109548848736476">नज़र न रखें</translation> <translation id="5299682071747318445">सभी डेटा आपके समन्वयन पासफ़्रेज़ के साथ एन्क्रिप्ट किया जाएगा</translation> @@ -3001,6 +3028,7 @@ <translation id="5612720917913232150"><ph name="URL" /> आपके कंप्यूटर के स्थान का उपयोग करना चाहता है</translation> <translation id="5612734644261457353">क्षमा करें, आपका पासवर्ड अभी भी सत्यापित नहीं किया जा सकता. ध्यान दें: यदि आपने हाल ही में अपना पासवर्ड बदला है, तो आपके प्रस्थान करते ही आपका नया पासवर्ड लागू हो जाएगा, कृपया यहां पुराने पासवर्ड का उपयोग करें.</translation> <translation id="5614190747811328134">उपयोगकर्ता सूचना</translation> +<translation id="5614553682702429503">पासवर्ड सेव करें?</translation> <translation id="561698261642843490">Firefox बंद करें</translation> <translation id="5618075537869101857">अरे नहीं, कियोस्क ऐप्स लॉन्च नहीं किया जा सका.</translation> <translation id="5618333180342767515">(इसमें कुछ मिनट लग सकते हैं.)</translation> @@ -3041,6 +3069,7 @@ <translation id="5677503058916217575">पेज की भाषा:</translation> <translation id="5677928146339483299">अवरोधित</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> पर पढ़ने और लिखने की ऐक्सेस दी गई है.</translation> +<translation id="5678784840044122290">Linux ऐप्लिकेशन आपके 'टर्मिनल' में उपलब्ध होगा और आपके 'लॉन्चर' में एक आइकॉन भी दिखाई दे सकता है.</translation> <translation id="5678955352098267522"><ph name="WEBSITE_1" /> पर अपना डेटा पढ़ें</translation> <translation id="5684661240348539843">एसेट पहचानकर्ता</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />किसी संग्रह या वर्चुअल डिस्क से डिसकनेक्ट नहीं किया जा सकता<ph name="END_BOLD" /> @@ -3136,6 +3165,7 @@ <translation id="5832805196449965646">व्यक्ति जोड़ें</translation> <translation id="583281660410589416">अज्ञात</translation> <translation id="5832976493438355584">लॉक किया गया</translation> +<translation id="5833397272224757657">आप जिन साइटों पर जाते हैं उनकी सामग्री के साथ ही ब्राउज़र गतिविधि और इंटरैक्शन का इस्तेमाल आपके मनमुताबिक बनाने के लिए करता है</translation> <translation id="5833610766403489739">यह फ़ाइल कहीं इधर-उधर हो गई है. कृपया अपनी डाउनलोड स्थान सेटिंग जाँचें और पुन: प्रयास करें.</translation> <translation id="5833726373896279253">ये सेटिंग केवल मालिक द्वारा ही संशोधित की जा सकती हैं:</translation> <translation id="5834581999798853053">लगभग <ph name="TIME" /> मिनट शेष हैं</translation> @@ -3189,6 +3219,7 @@ <translation id="5908769186679515905">साइट को Flash चलाने से अवरुद्ध करें</translation> <translation id="5910363049092958439">इस रूप में चित्र स&हेजें...</translation> <translation id="5911737117543891828">अस्थायी Google डिस्क ऑफ़लाइन फ़ाइलें हटा दी जाएंगी. ऐसी फ़ाइलें, जिन्हें आपने ऑफ़लाइन उपलब्ध के रूप में सेट किया है, उन्हें इस डिवाइस से नहीं हटाया जाएगा.</translation> +<translation id="5911887972742538906">आपका Linux ऐप्लिकेशन इंस्टॉल करते समय कोई गड़बड़ी हुई.</translation> <translation id="5912378097832178659">खोज इंजन &संपादित करें ...</translation> <translation id="5914724413750400082">मापांक (<ph name="MODULUS_NUM_BITS" /> बिट): <ph name="MODULUS_HEX_DUMP" /> @@ -3375,6 +3406,7 @@ <translation id="6198102561359457428">प्रस्थान करें फिर पुन: प्रवेश करें...</translation> <translation id="6198252989419008588">पिन बदलें</translation> <translation id="6199801702437275229">स्थान जानकारी की प्रतीक्षा कर रहा है...</translation> +<translation id="6201792273624501289">Linux ऐप्लिकेशन</translation> <translation id="6204015976622790023">अपनी स्क्रीन पर मौजूद सामग्री के बारे में अपनी Assistant की ओर से मिलने वाले सुझाव देखें.</translation> <translation id="6205710420833115353">कुछ कार्य अपेक्षा से अधिक समय ले रहे हैं. क्या आप उन्हें निरस्त करना चाहते हैं?</translation> <translation id="6206311232642889873">चित्र की प्र&तिलिपि बनाएं</translation> @@ -3851,6 +3883,7 @@ <translation id="6945221475159498467">चुनें</translation> <translation id="694592694773692225">इस पेज पर रीडायरेक्ट ब्लॉक किया गया.</translation> <translation id="6949306908218145636">खुले पृष्ठों को बुकमार्क करें...</translation> +<translation id="6950627417367801484">ऐप्लिकेशन बहाल करें</translation> <translation id="6951153907720526401">भुगतान हैंडलर</translation> <translation id="6955446738988643816">पॉपअप का निरीक्षण करें</translation> <translation id="6957231940976260713">सेवा का नाम</translation> @@ -3976,6 +4009,7 @@ <translation id="7127980134843952133">डाउनलोड इतिहास</translation> <translation id="7131040479572660648">अपना डेटा <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> और <ph name="WEBSITE_3" /> पर पढ़ें</translation> <translation id="713122686776214250">पृ&ष्ठ जोड़ें...</translation> +<translation id="7133578150266914903">आपका एडमिन इस डिवाइस को बहाल कर रहा है (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">लेख को छोटा करें</translation> <translation id="7136694880210472378">डिफ़ॉल्ट बनाएं</translation> <translation id="7136984461011502314"><ph name="PRODUCT_NAME" /> में आपका स्वागत है</translation> @@ -4176,6 +4210,7 @@ <translation id="7463006580194749499">व्यक्ति जोड़ें</translation> <translation id="7464490149090366184">ज़िप करना विफल रहा, मौजूद आइटम: "$1"</translation> <translation id="7465778193084373987">Netscape प्रमाणपत्र रद्द करने संबंधी URL</translation> +<translation id="7469406957790636836">इसे चालू करने के लिए, पहले <ph name="BEGIN_LINK" />भाषाएं और इनपुट<ph name="END_LINK" /> में जाकर 'वर्तनी जांच' सुविधा चालू करें</translation> <translation id="7469894403370665791">इस नेटवर्क से अपने आप कनेक्ट करें</translation> <translation id="747114903913869239">गड़बड़ी: एक्सटेंशन डिकोड करने में असमर्थ</translation> <translation id="7473753388963818366">आइए आपके लिए आपके <ph name="DEVICE_TYPE" /> को तैयार करते हैं</translation> @@ -4273,6 +4308,7 @@ <translation id="7606992457248886637">प्राधिकारी</translation> <translation id="7607002721634913082">रोका गया</translation> <translation id="7607274158153386860">टैबलेट साइट का अनुरोध करें</translation> +<translation id="7609148976235050828">कृपया इंटरनेट से कनेक्ट करें और फिर से कोशिश करें.</translation> <translation id="7611008212562900400">अपना डिवाइस, ऐप्लिकेशन, वेब खोजें...</translation> <translation id="7616214729753637086">डिवाइस का नाम दर्ज किया जा रहा है...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" से कनेक्ट हो रहा है</translation> @@ -4341,6 +4377,7 @@ <translation id="7730449930968088409">अपनी स्क्रीन की सामग्री कैप्चर करें</translation> <translation id="7730494089396812859">क्लाउड बैकअप विवरण दिखाएं</translation> <translation id="7732111077498238432">नेटवर्क, नीति से नियंत्रित है</translation> +<translation id="7737238973539693982">Linux (बीटा) मिटाएं</translation> <translation id="773905249182896430">आपको और आपके डिवाइस को खतरनाक साइटों से बचाती है</translation> <translation id="7740996059027112821">मानक</translation> <translation id="7748528009589593815">पिछला टैब</translation> @@ -4529,6 +4566,7 @@ <translation id="7974936243149753750">ओवरस्कैन</translation> <translation id="7977551819349545646">Chromebox अपडेट कर रहा है...</translation> <translation id="7978412674231730200">निजी कुंजी</translation> +<translation id="7978450511781612192">इससे आप अपने Google खातों से साइन आउट हो जाएंगे. आपके बुकमार्क, इतिहास, पासवर्ड और कई चीज़ें अब सिंक नहीं की जाएंगी.</translation> <translation id="7979036127916589816">समन्वयन गड़बड़ी</translation> <translation id="7980084013673500153">एसेट आईडी: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">ज़्यादा तेज़ी से ब्राउज़ करने और खोजने के लिए पेज पहले से लोड करें</translation> @@ -4693,6 +4731,7 @@ <translation id="8226619461731305576">सूची</translation> <translation id="8226742006292257240">नीचे यादृच्छिक रूप से निर्मित TPM पासवर्ड है जो कि आपके कंप्यूटर के लिए असाइन किया गया है:</translation> <translation id="8227119283605456246">फ़ाइल अटैच करें</translation> +<translation id="8230134520748321204"><ph name="ORIGIN" /> के लिए पासवर्ड सेव करें?</translation> <translation id="8234795456569844941">कृपया इस समस्या को ठीक करने में हमारे इंजीनियरों की सहायता करें. हमें बताएं कि प्रोफ़ाइल से जुड़ी गड़बड़ी का संदेश मिलने से ठीक पहले क्या हुआ था:</translation> <translation id="8234989666557591529">अपना <ph name="DEVICE_TYPE" /> अनलॉक करने के लिए कोई फ़ोन चुनें</translation> <translation id="8239020549147958415"><ph name="FULL_NAME" /> के रूप में सिंक करें</translation> @@ -4811,6 +4850,7 @@ <translation id="8438328416656800239">किसी स्मार्ट ब्राउज़र पर जाएं</translation> <translation id="8438566539970814960">खोजों और ब्राउज़िेंग को बेहतर बनाएं</translation> <translation id="8439506636278576865">इस भाषा में पृष्ठों का अनुवाद करने का ऑफ़र दें</translation> +<translation id="8440630305826533614">Linux ऐप्लिकेशन</translation> <translation id="8446884382197647889">अधिक जानें</translation> <translation id="8447409163267621480">Ctrl या Alt में से किसी एक को शामिल करें</translation> <translation id="8448729345478502352">अपनी स्क्रीन पर मौजूद आइटम को छोटा या बड़ा करें</translation> @@ -4855,6 +4895,7 @@ <translation id="8497219075884839166">Windows सुविधाएं</translation> <translation id="8498214519255567734">यह मंद रोशनी में आपकी स्क्रीन देखना या पढ़ना आसान बनाती है</translation> <translation id="8498395510292172881">Chrome में पढ़ना जारी रखें</translation> +<translation id="8502536196501630039">Google Play के ऐप्लिकेशन इस्तेमाल करने के लिए, पहले आपको अपने ऐप्लिकेशन बहाल करने होंगे. कुछ डेटा का नुकसान हो सकता है.</translation> <translation id="8503813439785031346">उपयोगकर्ता नाम</translation> <translation id="850875081535031620">नुकसान पहुंचाने वाला कोई सॉफ़्टवेयर नहीं मिला</translation> <translation id="8509646642152301857">वर्तनी जाँच शब्दकोश डाउनलोड विफल रहा.</translation> @@ -4984,6 +5025,7 @@ <translation id="8698464937041809063">Google ड्रॉइंग</translation> <translation id="869884720829132584">ऐप्स मेनू</translation> <translation id="869891660844655955">समय समाप्ति दिनांक</translation> +<translation id="8699566574894671540">इसे चालू करने के लिए, पहले 'बदलाव करें' मेन्यू में जाकर 'लिखते समय वर्तनी जांचें' चुनें</translation> <translation id="870073306461175568">Network File Shares</translation> <translation id="8701677791353449257">डिवाइस के नाम का मिलान रेगुलर एक्सप्रेशन <ph name="REGEX" /> से होना चाहिए.</translation> <translation id="8704521619148782536">इसमें सामान्य से अधिक समय लग रहा है. आप प्रतीक्षा कर सकते हैं, या रद्द कर सकते हैं और बाद में फिर से प्रयास कर सकते हैं.</translation> @@ -5023,6 +5065,7 @@ <p>लेकिन आप फिर भी कमांड लाइन के ज़रिए कॉन्फ़िगर कर सकते हैं. फ़्लैग और वातावरण वैरिएबल पर ज़्यादा जानकारी के लिए कृपया <code>man <ph name="PRODUCT_BINARY_NAME" /></code> देखें.</p></translation> <translation id="8755376271068075440">&बड़ा</translation> +<translation id="8756969031206844760">पासवर्ड अपडेट करें?</translation> <translation id="8757090071857742562">डेस्कटॉप कास्ट करने में असमर्थ. यह देखने के लिए जाँचें कि आपने अपनी स्क्रीन शेयर करना शुरू करने के लिए संकेत की पुष्टि की है या नहीं.</translation> <translation id="8757640015637159332">सार्वजनिक सत्र में प्रवेश करें</translation> <translation id="8757742102600829832">कनेक्ट होने के लिए कोई Chromebox चुनें</translation> @@ -5179,7 +5222,9 @@ <translation id="9009369504041480176">अपलोड हो रहा है (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">आइकॉन हमेशा दिखाएं</translation> <translation id="9011178328451474963">अंतिम टैब</translation> +<translation id="9013707997379828817">आपके एडमिन ने यह डिवाइस बहाल कर दिया है. कृपया ज़रूरी फ़ाइलें सेव कर लें, उसके बाद रीस्टार्ट करें. डिवाइस पर मौजूद सारा डेटा मिटा दिया जाएगा.</translation> <translation id="9014987600015527693">दूसरा मोबाइल दिखाएं</translation> +<translation id="9018218886431812662">इंस्टॉलेशन हो गया है</translation> <translation id="901834265349196618">ईमेल</translation> <translation id="9019062154811256702">ऑटोमैटिक भरने वाली सेटिंग को पढ़ें और बदलें</translation> <translation id="9020362265352758658">4x</translation> @@ -5203,6 +5248,7 @@ <translation id="9038649477754266430">अधिक तेज़ी से पेज लोड करने के लिए किसी पूर्वानुमान सेवा का उपयोग करें</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">टैब की आवाज़ बंद करें</translation> +<translation id="9040661932550800571"><ph name="ORIGIN" /> के लिए पासवर्ड अपडेट करें?</translation> <translation id="9041692268811217999">आपके एडमिन ने आपकी मशीन पर स्थानीय फ़ाइलों की एक्सेस बंद कर दी है</translation> <translation id="9042893549633094279">निजता और सुरक्षा</translation> <translation id="904451693890288097">कृपया "<ph name="DEVICE_NAME" />" के लिए पासकुंजी दर्ज करें:</translation> @@ -5307,6 +5353,7 @@ <translation id="9203478404496196495">टैब अनम्यूट करें</translation> <translation id="9203904171912129171">डिवाइस चुनें</translation> <translation id="9203962528777363226">इस डिवाइस के व्यवस्थापक ने नए उपयोगकर्ता जोड़े जाना अक्षम कर दिया है</translation> +<translation id="9213073329713032541">इंस्टॉल करना ठीक से शुरू हो गया है.</translation> <translation id="9214520840402538427">ओह! इंस्टॉलेशन-समय विशेषताएं आरंभ करने की समय सीमा समाप्त हो गई है. कृपया अपने सहायता प्रतिनिधि से संपर्क करें.</translation> <translation id="9214695392875603905">कपकेक</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" जोड़ा गया</translation> @@ -5361,6 +5408,7 @@ <translation id="988978206646512040">खाली पासफ़्रेज़ की अनुमति नहीं है</translation> <translation id="992032470292211616">एक्सटेंशन, ऐप्स , और थीम आपके डिवाइस को हानि पहुंचा सकते हैं. क्या आप वाकई जारी रखना चाहते हैं?</translation> <translation id="992592832486024913">ChromeVox (कंप्यूटर का बोलकर दिया जाने वाला जवाब) बंद करें</translation> +<translation id="993540765962421562">इंस्टॉल किया जा रहा है</translation> <translation id="994289308992179865">&लूप</translation> <translation id="996250603853062861">सुरक्षित कनेक्शन स्थापित कर रहा है...</translation> <translation id="998747458861718449">नि&रीक्षण करें</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb index b612d679..e895696 100644 --- a/chrome/app/resources/generated_resources_hr.xtb +++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Pretraživanje...</translation> <translation id="1316495628809031177">Sinkronizacija je pauzirana</translation> <translation id="1319979322914001937">Aplikacija koja prikazuje filtrirani popis proširenja iz Chrome web-trgovine. Proširenja na popisu mogu se instalirati izravno iz te aplikacije.</translation> +<translation id="1322046419516468189">Spremljene zaporke možete pregledati i upravljati njima ovdje: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Da bi se prikazale kartice s vaših ostalih uređaja, prijavite se na Chrome.</translation> <translation id="1327074568633507428">Pisač na usluzi Google Cloud Print</translation> <translation id="1327977588028644528">Pristupnik</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Centar za pomoć</translation> <translation id="162035744160882748">Uključite sinkronizaciju, prilagodbu i druge Googleove usluge</translation> <translation id="1620510694547887537">Fotoaparat</translation> +<translation id="1623132449929929218">Slike trenutačno nisu dostupne. Ponovo se povežite s internetom da biste pregledali zbirke pozadina.</translation> <translation id="1624026626836496796">To će se dogoditi samo jedanput i vaše vjerodajnice neće biti spremljene.</translation> <translation id="1627276047960621195">Deskriptori datoteke</translation> <translation id="1627408615528139100">Već je preuzeto</translation> <translation id="1632803087685957583">Omogućuje prilagodbu stope ponavljanja, predviđanja riječi i ostalih značajki tipkovnice</translation> <translation id="1635033183663317347">Instalirao tvoj skrbnik.</translation> +<translation id="1635885551358739414">Google može upotrebljavati sadržaj na web-lokacijama koje posjećujete, kao i vaše aktivnosti i interakcije u pregledniku, kako bi prilagodio Chrome i druge Googleove usluge kao što su Prevoditelj, Pretraživanje i oglasi. To možete prilagoditi u Postavkama.</translation> <translation id="1637224376458524414">Koristite ovu oznaku na svojem iPhoneu</translation> <translation id="1637765355341780467">Prilikom otvaranja profila dogodila se pogreška. Neke značajke možda nisu dostupne.</translation> <translation id="1639239467298939599">Učitavanje</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Zaporka je prekratka.</translation> <translation id="1661867754829461514">Nedostaje PIN</translation> <translation id="16620462294541761">Žao nam je, nije bilo moguće potvrditi zaporku. Pokušajte ponovo.</translation> +<translation id="1662550410081243962">Spremi i popuni načine plaćanja</translation> <translation id="166278006618318542">Algoritam predmeta javnog ključa</translation> <translation id="166439687370499867">Promjena zajedničkih konfiguracija mreže nije dopuštena</translation> <translation id="1665611772925418501">Nije bilo moguće mijenjati datoteku.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> želi vidjeti marku i model vašeg sigurnosnog ključa</translation> <translation id="167832068858235403">stišavanje</translation> <translation id="1679068421605151609">Alati za razvojne programere</translation> +<translation id="1680849702532889074">Došlo je do pogreške tijekom instalacije Linux aplikacije.</translation> <translation id="16815041330799488">Ne dopuštaj web-lokacijama uvid u tekst i slike kopirane u međuspremnik</translation> <translation id="1682548588986054654">&Novi anoniman prozor</translation> <translation id="168715261339224929">Da bi se vaše oznake prikazale na svim vašim uređajima, uključite sinkronizaciju.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Otkvači kartice</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> možda se neće moći sam ažurirati</translation> <translation id="1736419249208073774">Istražite</translation> +<translation id="1736827427463982819">Isključi Linux (Beta)</translation> <translation id="1737968601308870607">Bug datoteke</translation> <translation id="1741314857973421784">Nastavi</translation> <translation id="174173592514158117">Prikaži sve mape s Playa</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> želi trajno pohraniti veliku količinu podataka na vaše lokalno računalo</translation> <translation id="1997616988432401742">Vaši certifikati</translation> <translation id="1999115740519098545">Prilikom pokretanja</translation> +<translation id="2000419248597011803">Zadanoj tražilici šalje neke kolačiće i pretraživanja iz adresne trake i okvira za pretraživanje</translation> <translation id="2001796770603320721">Upravljaj na Disku</translation> <translation id="2004663115385769400">Otvaranje pomoću aplikacije $1 nije moguće</translation> <translation id="200544492091181894">To možete promijeniti kasnije u postavkama</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Nastavi blokirati kolačiće</translation> <translation id="204622017488417136">Uređaj će se vratiti na prethodno instaliranu verziju Chromea, a svi korisnički računi i lokalni podaci bit će uklonjeni. Tu radnju nije moguće poništiti.</translation> <translation id="2048182445208425546">pristupiti vašem mrežnom prometu</translation> +<translation id="2048653237708779538">Radnja nije dostupna</translation> <translation id="204914487372604757">Stvori prečac</translation> <translation id="2050339315714019657">Portret</translation> <translation id="2053312383184521053">Podaci o stanju mirovanja</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> na domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi pristupiti vašem računalu</translation> <translation id="2178614541317717477">CA kompromis</translation> <translation id="218070003709087997">Upotrijebite broj kako biste odredili broj primjeraka za ispis (od 1 do 999).</translation> +<translation id="2183558561014688873">Pristupite Asistentu svaki put kad izgovorite "OK Google", a uređaj je aktivan i otključan.</translation> <translation id="2187895286714876935">Pogreška pri uvozu Certifikata poslužitelja</translation> <translation id="2187906491731510095">Proširenja ažurirana</translation> <translation id="2188881192257509750">Otvori aplikaciju <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">GPU proces</translation> <translation id="2282155092769082568">URL za automatsku konfiguraciju:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Spremi i popuni adrese</translation> <translation id="2286841657746966508">Adresa za naplatu</translation> <translation id="2288181517385084064">Prijeđi na videorekorder</translation> <translation id="2288735659267887385">Postavke pristupačnosti</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Ukupna veličina datoteka</translation> <translation id="2428510569851653187">Opišite što ste radili kada se kartica srušila</translation> <translation id="2431027948063157455">Učitavanje Google asistenta nije uspjelo, provjerite mrežnu vezu i pokušajte ponovo.</translation> +<translation id="2432753757290432042">Potrebno je ažurirati Linux (Beta)</translation> <translation id="2433452467737464329">Dodajte parametar upita u URL da biste automatski osvježili stranicu: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Prikaz</translation> <translation id="2433836460518180625">Otključaj samo uređaj</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Uređivanje otisaka prstiju</translation> <translation id="2776441542064982094">Izgleda da nema dostupnih uređaja za registriranje na mreži. Ako je vaš uređaj uključen i povezan s internetom, pokušajte ga registrirati prema uputama iz korisničkog priručnika.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Pogreška pri instaliranju Linux aplikacije</translation> <translation id="2783298271312924866">Preuzeto</translation> <translation id="2783321960289401138">Izradi prečac...</translation> <translation id="2783829359200813069">Odabir vrsta enkripcije</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Odjavite se, pa se ponovo prijavite</translation> <translation id="2812989263793994277">Ne prikazuj nikakve slike</translation> <translation id="2814489978934728345">Prekini učitavanje ove stranice</translation> +<translation id="281504910091592009">Spremljene zaporke možete pregledati i upravljati njima na svojem <ph name="BEGIN_LINK" />Google računu<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Traka oznaka</translation> <translation id="2815693974042551705">Mapa oznaka</translation> <translation id="2818476747334107629">Pojedinosti o pisaču</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Prikaži dostupne Bluetooth uređaje</translation> <translation id="2941112035454246133">Nizak</translation> <translation id="2942560570858569904">Čekanje...</translation> +<translation id="2942581856830209953">Prilagodba stranice</translation> <translation id="2943400156390503548">Prezentacije</translation> <translation id="2943503720238418293">Upotrijebite kraći naziv</translation> <translation id="2946119680249604491">Dodaj vezu</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Zaporka:</translation> <translation id="3694027410380121301">Odaberi prethodnu karticu</translation> <translation id="3699624789011381381">E-adresa</translation> +<translation id="3699920817649120894">Želite li isključiti sinkronizaciju i prilagođavanje?</translation> <translation id="3700888195348409686">Prikazivanje (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Vaše polazne stranice promijenjene su tako da uključuju <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript je blokiran</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Cijeli zaslon</translation> <translation id="3828029223314399057">Pretraži oznake</translation> <translation id="3830674330436234648">Nema dostupnih reprodukcija</translation> +<translation id="3831436149286513437">Prijedlozi za pretraživanje Google diska</translation> <translation id="3831486154586836914">Otvoren je način pregleda u prozoru</translation> <translation id="383161972796689579">Vlasnik ovog uređaja onemogućio je dodavanje novih korisnika</translation> <translation id="3834775135533257713">Nije moguće dodati aplikaciju "<ph name="TO_INSTALL_APP_NAME" />" jer je u sukobu s aplikacijom "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Najniži</translation> <translation id="3872220884670338524">Više radnji, spremljeni račun za korisnika <ph name="USERNAME" /> na domeni <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Oslobodite prostor na disku ili će uređaj prestati reagirati.</translation> +<translation id="3873315167136380065">Da biste uključili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" /> radi uklanjanja vaše šifre za sinkronizaciju</translation> <translation id="3878840326289104869">Izrada nadziranog korisnika</translation> <translation id="3879748587602334249">Upravitelj preuzimanja</translation> <translation id="3880709822663530586">Vaš sigurnosni ključ funkcionira samo kada je na vašem uređaju uključen Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Spremljeni otisci prstiju</translation> <translation id="407173827865827707">Na klik</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: pogreška prijave</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certifikat potpisnika e-pošte</translation> <translation id="407520071244661467">Skaliranje</translation> <translation id="4075639477629295004">Nije moguće emitirati <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Pregledajte svoje postavke na sljedećem zaslonu</translation> <translation id="4193154014135846272">Googleov dokument</translation> <translation id="4194570336751258953">Omogući dodir umjesto klika</translation> +<translation id="4195249722193633765">Instalacija aplikacije uz Linux (Beta)</translation> <translation id="4195643157523330669">Otvori u novoj kartici</translation> <translation id="4195814663415092787">Nastavite tamo gdje ste stali</translation> <translation id="4197674956721858839">Komprimiraj odabrano</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Stavka police 8</translation> <translation id="4287502004382794929">Nemate dovoljno softverskih licenci za prijavu ovog uređaja. Obratite se prodaji da biste kupili više. Ako smatrate da vam se ova poruka prikazuje pogreškom, obratite se podršci.</translation> <translation id="4289540628985791613">Pregled</translation> +<translation id="4295072614469448764">Aplikacija je dostupna na vašem terminalu. Možda se i u Pokretaču prikazuje ikona.</translation> <translation id="4296575653627536209">Dodaj nadziranog korisnika</translation> +<translation id="4297219207642690536">Ponovo pokreni i vrati na prethodno</translation> <translation id="4297322094678649474">Promijeni jezike</translation> <translation id="4300305918532693141">Da biste promijenili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizaciju<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">duga (2 s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Unijeli ste e-adresu i zaporku koje se ne podudaraju</translation> <translation id="437184764829821926">Napredne postavke fonta</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Program za instalaciju Linuxa</translation> <translation id="4375035964737468845">otvoriti preuzete datoteke</translation> <translation id="4377363674125277448">Pojavio se problem s certifikatom poslužitelja.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Uparivanje Bluetooth uređaja</translation> <translation id="4579581181964204535">Ne može se emitirati <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Jeste li sigurni da želite izbrisati ovoliko stavki: $1?</translation> +<translation id="4582497162516204941">Instalacija uz Linux (Beta)</translation> <translation id="4582563038311694664">Vraćanje svih postavki na zadano</translation> <translation id="4585793705637313973">Uredi stranicu</translation> <translation id="4589268276914962177">Novi terminal</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Zadani narančasti avatar</translation> <translation id="4955814292505481804">Godišnji</translation> <translation id="4957949153200969297">Omogući samo značajke vezane uz <ph name="IDS_SHORT_PRODUCT_NAME" /> sinkronizaciju</translation> +<translation id="4959262764292427323">Zaporke se spremaju na vaš Google račun kako biste ih mogli upotrebljavati na bilo kojem uređaju</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Mapa koju ste odabrali sadrži osjetljive datoteke. Jeste li sigurni da želite dodijeliti aplikaciji "$1" trajni pristup za čitanje za tu mapu?</translation> <translation id="4964455510556214366">Poredak</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Promijenjene su postavke koje upravljaju sinkronizacijom, prilagodbom i drugim Googleovim uslugama u Chromeu. To može utjecati na vaše trenutačne postavke.</translation> <translation id="5241128660650683457">čitati sve vaše podatke s web-lokacija koje posjetite</translation> <translation id="5242724311594467048">Omogućiti proširenje "<ph name="EXTENSION_NAME" />"?</translation> +<translation id="5243522832766285132">Pokušajte ponovo za nekoliko trenutaka.</translation> <translation id="5244474230056479698">Sinkronizacija s računom <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Aplikacija <ph name="APP_NAME" /> srušila se. Kliknite ovaj balon za ponovno pokretanje aplikacije.</translation> <translation id="5247051749037287028">Ime za prikaz (izborno)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">To može potrajati otprilike minutu.</translation> <translation id="5264252276333215551">Povežite se s internetom da biste pokrenuli svoju aplikaciju u načinu kioska.</translation> <translation id="5265562206369321422">Izvan mreže više od tjedan dana</translation> +<translation id="5265797726250773323">Pogreška prilikom instalacije</translation> <translation id="5266113311903163739">Pogreška pri uvozu tijela za izdavanje certifikata</translation> <translation id="5269977353971873915">Ispis nije uspio</translation> <translation id="5271549068863921519">Spremi zaporku</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatiraj ovaj uređaj</translation> <translation id="5292195676005197571">Na većini ključeva jednostavno pritisnite tipku</translation> <translation id="5293170712604732402">Vraćanje postavki na njihove izvorne zadane vrijednosti</translation> +<translation id="5297082477358294722">Zaporka je spremljena. Spremljene zaporke možete pregledati i upravljati njima ovdje: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="5298219193514155779">Temu je stvorio autor</translation> <translation id="5299109548848736476">Nemoj pratiti</translation> <translation id="5299682071747318445">Svi su podaci šifrirani vašom zaporkom za sinkronizaciju</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> želi upotrijebiti lokaciju vašeg računala</translation> <translation id="5612734644261457353">Nažalost, vaša zaporka i dalje nije mogla biti potvrđena. Napomena: ako ste nedavno promijenili zaporku, vaša nova zaporka primjenjivat će se nakon što se odjavite. Ovdje upotrijebite staru zaporku.</translation> <translation id="5614190747811328134">Korisnička obavijest</translation> +<translation id="5614553682702429503">Želite li spremiti zaporku?</translation> <translation id="561698261642843490">Zatvaranje Firefoxa</translation> <translation id="5618075537869101857">K vrapcu, aplikacija kioska ne može se pokrenuti.</translation> <translation id="5618333180342767515">(može potrajati nekoliko minuta)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Jezik stranice:</translation> <translation id="5677928146339483299">Blokirano</translation> <translation id="5678550637669481956">Odobren je pristup za čitanje jedinice <ph name="VOLUME_NAME" /> i zapisivanje na nju.</translation> +<translation id="5678784840044122290">Linux aplikacija bit će dostupna na vašem terminalu, a možda će se i u Pokretaču prikazati ikona.</translation> <translation id="5678955352098267522">čitati vaše podatke s web-lokacije <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identifikator uređaja</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Prekid veze s arhivom ili virtualnim diskom nije moguć<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Dodaj osobu</translation> <translation id="583281660410589416">Nepoznato</translation> <translation id="5832976493438355584">Zaključan</translation> +<translation id="5833397272224757657">Upotrebljava sadržaj na web-lokacijama koje posjećujete te aktivnosti i interakcije u pregledniku radi prilagodbe</translation> <translation id="5833610766403489739">Datoteka nije pronađena. Provjerite postavku lokacije preuzimanja i pokušajte ponovo.</translation> <translation id="5833726373896279253">Ove postavke može izmjenjivati samo vlasnik:</translation> <translation id="5834581999798853053">Preostalo je oko <ph name="TIME" /> min</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Onemogući web-lokacijama pokretanje Flasha</translation> <translation id="5910363049092958439">Sp&remi sliku kao...</translation> <translation id="5911737117543891828">Privremene offline datoteke s Google diska izbrisat će se. Datoteke koje ste postavili kao datoteke dostupne offline neće se izbrisati s ovog uređaja.</translation> +<translation id="5911887972742538906">Došlo je do pogreške tijekom instalacije vaše Linux aplikacije.</translation> <translation id="5912378097832178659">&Uredi tražilicu...</translation> <translation id="5914724413750400082">Moduli (<ph name="MODULUS_NUM_BITS" /> bitova): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Odjavite se, a zatim ponovo prijavite...</translation> <translation id="6198252989419008588">Promijeni PIN</translation> <translation id="6199801702437275229">Čekanje na informacije o prostoru...</translation> +<translation id="6201792273624501289">Linux aplikacije</translation> <translation id="6204015976622790023">Pogledajte relevantne prijedloge svojeg Asistenta povezane sa sadržajem zaslona.</translation> <translation id="6205710420833115353">Neki procesi traju dulje nego što je to uobičajeno. Želite li ih prekinuti?</translation> <translation id="6206311232642889873">Kop&iraj sliku</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Odaberi</translation> <translation id="694592694773692225">Preusmjeravanje je blokirano na ovoj stranici.</translation> <translation id="6949306908218145636">Označavanje otvorenih stranica...</translation> +<translation id="6950627417367801484">Vrati aplikacije</translation> <translation id="6951153907720526401">Rukovatelji plaćanjem</translation> <translation id="6955446738988643816">Provjeri skočni prozor</translation> <translation id="6957231940976260713">Naziv usluge</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Povijest preuzimanja</translation> <translation id="7131040479572660648">čitati vaše podatke s web-lokacija <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Dodavanje stra&nice...</translation> +<translation id="7133578150266914903">Vaš administrator vraća uređaj na prethodnu verziju sustava (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Smanji tekst</translation> <translation id="7136694880210472378">Postavi kao zadano</translation> <translation id="7136984461011502314">Dobro došli u <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Dodaj osobu</translation> <translation id="7464490149090366184">Komprimiranje nije uspjelo, stavka postoji: "$1"</translation> <translation id="7465778193084373987">URL za opoziv Netscape certifikata</translation> +<translation id="7469406957790636836">Da biste uključili tu postavku, prvo uključite provjeru pravopisa u odjeljku <ph name="BEGIN_LINK" />Jezici i unos<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Automatski se povežite s tom mrežom</translation> <translation id="747114903913869239">Pogreška: Nije moguće dekodirati proširenje</translation> <translation id="7473753388963818366">Idemo pripremiti uređaj <ph name="DEVICE_TYPE" /> za vas</translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Ovlasti</translation> <translation id="7607002721634913082">Pauzirano</translation> <translation id="7607274158153386860">Zahtjev za web-lokaciju tabletnog računala</translation> +<translation id="7609148976235050828">Povežite se s internetom i pokušajte ponovo.</translation> <translation id="7611008212562900400">Pretražite uređaj, aplikacije, web...</translation> <translation id="7616214729753637086">Registriranje uređaja...</translation> <translation id="7617366389578322136">Povezivanje s uređajem "<ph name="DEVICE_NAME" />"</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">snimiti sadržaj vašeg zaslona</translation> <translation id="7730494089396812859">Prikaz pojedinosti sigurnosnog kopiranja u oblaku</translation> <translation id="7732111077498238432">Mreža je kontrolirana pravilima</translation> +<translation id="7737238973539693982">Brisanje Linuxa (Beta)</translation> <translation id="773905249182896430">Štiti vas i vaš uređaj od opasnih web-lokacija</translation> <translation id="7740996059027112821">Standardno</translation> <translation id="7748528009589593815">Prethodna kartica</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Rubno područje zaslona</translation> <translation id="7977551819349545646">Ažuriranje Chromeboxa...</translation> <translation id="7978412674231730200">Osobni ključ</translation> +<translation id="7978450511781612192">Time ćete se odjaviti s Google računa. Vaše se oznake, povijest, zaporke i druge postavke više neće sinkronizirati.</translation> <translation id="7979036127916589816">Sinkronizacijska pogreška</translation> <translation id="7980084013673500153">ID uređaja: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Prethodno učitaj stranice za brže pregledavanje i pretraživanje</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Red čekanja</translation> <translation id="8226742006292257240">Dolje je nasumice generirana zaporka modula pouzdane platforme dodijeljena vašem računalu:</translation> <translation id="8227119283605456246">Priloži datoteku</translation> +<translation id="8230134520748321204">Želite li spremiti zaporku za <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pomognite našim inženjerima da riješe taj problem. Opišite što se dogodilo neposredno prije nego što se prikazala poruka pogreške za profil:</translation> <translation id="8234989666557591529">Odaberite telefon koji će otključavati vaš <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Sinkroniziraj kao <ph name="FULL_NAME" /></translation> @@ -4813,6 +4852,7 @@ <translation id="8438328416656800239">Prijeđite na pametan preglednik</translation> <translation id="8438566539970814960">Poboljšajte pretraživanje i pregledavanje</translation> <translation id="8439506636278576865">Ponudi prevođenje stranica na tom jeziku</translation> +<translation id="8440630305826533614">Linux aplikacije</translation> <translation id="8446884382197647889">Saznajte više</translation> <translation id="8447409163267621480">Mora sadržavati Ctrl ili Alt</translation> <translation id="8448729345478502352">Povećajte ili smanjite stavke na zaslonu</translation> @@ -4857,6 +4897,7 @@ <translation id="8497219075884839166">Uslužni programi za Windowse</translation> <translation id="8498214519255567734">Olakšaj gledanje zaslona ili čitanje pri slabom svjetlu</translation> <translation id="8498395510292172881">Nastavite čitati u Chromeu</translation> +<translation id="8502536196501630039">Da biste upotrebljavali aplikacije s Google Playa, prvo morate vratiti aplikacije. Neki su podaci možda izgubljeni.</translation> <translation id="8503813439785031346">Korisničko ime</translation> <translation id="850875081535031620">Nije pronađen štetan softver</translation> <translation id="8509646642152301857">Preuzimanje rječnika za provjeru pravopisa nije uspjelo.</translation> @@ -4986,6 +5027,7 @@ <translation id="8698464937041809063">Googleov crtež</translation> <translation id="869884720829132584">Izbornik aplikacija</translation> <translation id="869891660844655955">Datum isteka</translation> +<translation id="8699566574894671540">Da biste uključili tu postavku, prvo odaberite opciju Provjeravaj pravopis tijekom pisanja na izborniku Uređivanje</translation> <translation id="870073306461175568">Mrežno dijeljenje datoteka</translation> <translation id="8701677791353449257">Naziv uređaja mora se podudarati s regularnim izrazom <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Ovo traje mnogo dulje nego što je to uobičajeno. Možete pričekati ili odustati pa pokušati ponovo.</translation> @@ -5025,6 +5067,7 @@ <p>Još uvijek možete konfigurirati putem naredbenog retka. Pogledajte <code>man <ph name="PRODUCT_BINARY_NAME" /></code> za više informacija o oznakama i varijablama okruženja.</p></translation> <translation id="8755376271068075440">&Veći</translation> +<translation id="8756969031206844760">Želite li ažurirati zaporku?</translation> <translation id="8757090071857742562">Nije moguće emitirati radnu površinu. Provjerite jeste li potvrdili upit za početak dijeljenja zaslona.</translation> <translation id="8757640015637159332">Ulazak u javnu sesiju</translation> <translation id="8757742102600829832">Odaberi Chromebox za povezivanje</translation> @@ -5181,7 +5224,9 @@ <translation id="9009369504041480176">Prijenos (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Uvijek prikaži ikonu</translation> <translation id="9011178328451474963">Posljednja kartica</translation> +<translation id="9013707997379828817">Vaš administrator vratio je uređaj na prethodnu verziju sustava. Spremite važne datoteke, a zatim ponovo pokrenite uređaj. Izbrisat će se svi podaci s uređaja.</translation> <translation id="9014987600015527693">Prikaži drugi telefon</translation> +<translation id="9018218886431812662">Instalacija je dovršena</translation> <translation id="901834265349196618">e-pošta</translation> <translation id="9019062154811256702">čitati i mijenjati postavke automatskog popunjavanja</translation> <translation id="9020362265352758658">4x</translation> @@ -5205,6 +5250,7 @@ <translation id="9038649477754266430">Upotreba usluge predviđanja za brže učitavanje stranica</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Isključi zvuk na karticama</translation> +<translation id="9040661932550800571">Želite li ažurirati zaporku za <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Pristup lokalnim datotekama na vašem računalu onemogućio je administrator</translation> <translation id="9042893549633094279">Privatnost i sigurnost</translation> <translation id="904451693890288097">Unesite pristupni ključ za uređaj "<ph name="DEVICE_NAME" />":</translation> @@ -5309,6 +5355,7 @@ <translation id="9203478404496196495">Uključi zvuk kartice</translation> <translation id="9203904171912129171">Odaberite uređaj</translation> <translation id="9203962528777363226">Administrator ovog uređaja onemogućio je dodavanje novih korisnika</translation> +<translation id="9213073329713032541">Instalacija je uspješno pokrenuta.</translation> <translation id="9214520840402538427">Ups! Inicijalizacija atributa vremena instalacije istekla je. Obratite se predstavniku podrške.</translation> <translation id="9214695392875603905">Kolač</translation> <translation id="9215293857209265904">Dodano je proširenje "<ph name="EXTENSION_NAME" />"</translation> @@ -5363,6 +5410,7 @@ <translation id="988978206646512040">Prazne šifre nisu dopuštene</translation> <translation id="992032470292211616">Proširenja, aplikacije i teme mogu nauditi vašem uređaju. Jeste li sigurni da želite nastaviti?</translation> <translation id="992592832486024913">Onemogući ChromeVox (govorne povratne informacije)</translation> +<translation id="993540765962421562">Instalacija u tijeku</translation> <translation id="994289308992179865">&Petlja</translation> <translation id="996250603853062861">Uspostavljanje sigurne veze...</translation> <translation id="998747458861718449">P&rovjeri</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb index 08edb944..b4f3a4e 100644 --- a/chrome/app/resources/generated_resources_iw.xtb +++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">מחפש...</translation> <translation id="1316495628809031177">הסינכרון הושהה</translation> <translation id="1319979322914001937">יישום שמציג רשימה מסוננת של תוספים מחנות האינטרנט של Chrome. ניתן להתקין את התוספים שברשימה ישירות מתוך היישום.</translation> +<translation id="1322046419516468189">הצגה וניהול של סיסמאות שמורות במסגרת <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">כדי לקבל את הכרטיסיות מהמכשירים האחרים שלך, היכנס ל-Chrome.</translation> <translation id="1327074568633507428">מדפסת ב-Google Cloud Print</translation> <translation id="1327977588028644528">שער</translation> @@ -297,7 +298,7 @@ <translation id="1433811987160647649">שאל לפני גישה</translation> <translation id="1434696352799406980">פעולה זו תאפס את דף הפתיחה, את דף הכרטיסייה החדשה, את מנוע החיפוש ואת הכרטיסיות המוצמדות שלך. היא גם תשבית את כל התוספים ותמחק נתונים זמניים כגון קובצי Cookie. הסימניות, ההיסטוריה והסיסמאות השמורות לא יימחקו.</translation> <translation id="1434886155212424586">דף הבית הוא הדף 'כרטיסייה חדשה'</translation> -<translation id="1436671784520050284">להמשך הגדרה</translation> +<translation id="1436671784520050284">להמשך ההגדרה</translation> <translation id="1436784010935106834">הוסר</translation> <translation id="1438632560381091872">ביטול השתקת כרטיסיות</translation> <translation id="1442392616396121389">קידומת לניתוב</translation> @@ -415,11 +416,13 @@ <translation id="1618268899808219593">מרכז עזרה</translation> <translation id="162035744160882748">הפעלת סינכרון, התאמה אישית ושירותים אחרים של Google</translation> <translation id="1620510694547887537">מצלמה</translation> +<translation id="1623132449929929218">התמונות לא זמינות בשלב זה. צריך להתחבר מחדש לאינטרנט כדי להציג את אוספי הטפטים.</translation> <translation id="1624026626836496796">זה יקרה רק פעם אחת, והאישורים שלך לא יישמרו.</translation> <translation id="1627276047960621195">מתארי קבצים</translation> <translation id="1627408615528139100">כבר הורד</translation> <translation id="1632803087685957583">הגדרה זו מאפשרת לך להתאים את קצב החזרה של המקלדת, חיזוי מילים ועוד</translation> <translation id="1635033183663317347">הותקן על ידי האפוטרופוס שלך.</translation> +<translation id="1635885551358739414">Google עשויה להשתמש בתוכן מאתרים שאליהם נכנסת, ובפעילות הדפדפן והאינטראקציות שלך, כדי להתאים אישית את Chrome ושירותים אחרים של Google - כמו Translate, חיפוש ומודעות. אפשר להתאים אישית את התכונה הזו ב'הגדרות'.</translation> <translation id="1637224376458524414">שליחה של סימניה זו למכשיר ה-iPhone</translation> <translation id="1637765355341780467">אירעה שגיאה בפתיחת הפרופיל שלך. ייתכן שחלק מהתכונות לא יהיו זמינות.</translation> <translation id="1639239467298939599">טוען</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">הסיסמה קצרה מדי.</translation> <translation id="1661867754829461514">חסר PIN</translation> <translation id="16620462294541761">מצטערים, לא ניתן לאמת את הסיסמה שלך. נסה שוב.</translation> +<translation id="1662550410081243962">שמירה ומילוי של אמצעי תשלום</translation> <translation id="166278006618318542">אלגוריתם מפתח ציבורי של נושא</translation> <translation id="166439687370499867">אין אישור לשנות את תצורת הרשתות המשותפות</translation> <translation id="1665611772925418501">הקובץ לא ניתן לשינוי.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546">האתר <ph name="URL" /> מבקש לראות את היצרן והדגם של מפתח האבטחה שלך</translation> <translation id="167832068858235403">הפחתת עוצמת הקול</translation> <translation id="1679068421605151609">כלים עבור מפתחים</translation> +<translation id="1680849702532889074">התרחשה שגיאה במהלך ההתקנה של אפליקציית Linux.</translation> <translation id="16815041330799488">אין להתיר לאתרים לגשת לטקסט ותמונות שהועתקו ללוח</translation> <translation id="1682548588986054654">חלון נסתר חדש</translation> <translation id="168715261339224929">כדי שהסימניות שלך יופיעו בכל המכשירים, יש להפעיל סינכרון.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">בטל הצמדה של כרטיסיות</translation> <translation id="1734824808160898225">ייתכן ש-<ph name="PRODUCT_NAME" /> לא יוכל להתעדכן</translation> <translation id="1736419249208073774">מידע נוסף</translation> +<translation id="1736827427463982819">השבתת Linux (בטא)</translation> <translation id="1737968601308870607">דיווח על באג</translation> <translation id="1741314857973421784">המשך</translation> <translation id="174173592514158117">הצגת כל תיקיות Play</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567"><ph name="URL" /> רוצה לאחסן כמות גדולה של נתונים במחשב המקומי שלך באופן קבוע</translation> <translation id="1997616988432401742">האישורים שלך</translation> <translation id="1999115740519098545">בעת ההפעלה</translation> +<translation id="2000419248597011803">שליחה של חלק מקובצי ה-Cookie והחיפושים מסרגל הכתובות ומתיבת החיפוש אל מנוע החיפוש שהוגדר כברירת מחדל</translation> <translation id="2001796770603320721">ניהול ב-Drive</translation> <translation id="2004663115385769400">לא ניתן לפתוח עם $1</translation> <translation id="200544492091181894">ניתן לשנות את האפשרות הזו מאוחר יותר בהגדרות</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">המשך לחסום קובצי Cookie</translation> <translation id="204622017488417136">המכשיר שלך יוחזר לגרסה הקודמת המותקנת של Chrome. כל חשבונות המשתמשים והנתונים המקומיים יוסרו. לא ניתן לבטל פעולה זו.</translation> <translation id="2048182445208425546">גישה לתנועת הרשת שלך</translation> +<translation id="2048653237708779538">הפעולה לא זמינה</translation> <translation id="204914487372604757">צור קיצור דרך</translation> <translation id="2050339315714019657">לאורך</translation> <translation id="2053312383184521053">נתוני מצב של חוסר פעילות</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> ב-<ph name="PEPPER_PLUGIN_DOMAIN" /> רוצה גישה למחשב שלך</translation> <translation id="2178614541317717477">רשות האישורים (CA) בסכנה</translation> <translation id="218070003709087997">ציין את מספר העותקים שיש להדפיס (1 עד 999).</translation> +<translation id="2183558561014688873">גישה אל Assistant בכל פעם שאומרים "OK Google" כשהמכשיר ער ולא נעול.</translation> <translation id="2187895286714876935">שגיאת ייבוא של אישור שרת</translation> <translation id="2187906491731510095">התוספים עודכנו</translation> <translation id="2188881192257509750">פתח את <ph name="APPLICATION" /></translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">תהליך GPU</translation> <translation id="2282155092769082568">כתובת אתר של תצורה אוטומטית:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">שמירה ומילוי של כתובות</translation> <translation id="2286841657746966508">כתובת לחיוב</translation> <translation id="2288181517385084064">מעבר למקליט וידאו</translation> <translation id="2288735659267887385">הגדרות של נגישות</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">גודל הקובץ הכולל</translation> <translation id="2428510569851653187">תאר מה עשית לפני שהכרטיסייה קרסה</translation> <translation id="2431027948063157455">לא ניתן היה לטעון את Google Assistant. יש לבדוק את חיבור הרשת ולנסות שוב.</translation> +<translation id="2432753757290432042">צריך לעדכן את Linux (בטא)</translation> <translation id="2433452467737464329">הוסף פרמטר שאילתה בכתובת אתר לרענון אוטומטי של הדף: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">מראה</translation> <translation id="2433836460518180625">ביטול הנעילה של המכשיר בלבד</translation> @@ -1181,6 +1192,7 @@ <translation id="2775104091073479743">עריכת טביעות האצבעות</translation> <translation id="2776441542064982094">נראה שאין מכשירים זמינים לרישום ברשת. אם המכשיר שלך מחובר לאינטרנט, נסה לרשום אותו מחדש באמצעות ההוראות המפורטות במדריך למשתמש שלו.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">שגיאה במהלך ההתקנה של אפליקציית Linux</translation> <translation id="2783298271312924866">ההורדה בוצעה</translation> <translation id="2783321960289401138">צור קיצור דרך...</translation> <translation id="2783829359200813069">בחירת סוגי הצפנה</translation> @@ -1205,6 +1217,7 @@ <translation id="2812944337881233323">נסה לצאת ולהיכנס שוב</translation> <translation id="2812989263793994277">אל תציג אף תמונה</translation> <translation id="2814489978934728345">הפסק את טעינת הדף</translation> +<translation id="281504910091592009">הצגה וניהול של סיסמאות שמורות ב<ph name="BEGIN_LINK" />חשבון Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">סרגל סימניות</translation> <translation id="2815693974042551705">הוסף את התיקייה לסימניות</translation> <translation id="2818476747334107629">פרטי מדפסת</translation> @@ -1285,6 +1298,7 @@ <translation id="2939938020978911855">הצג מכשירי Bluetooth זמינים</translation> <translation id="2941112035454246133">נמוכה</translation> <translation id="2942560570858569904">המערכת ממתינה...</translation> +<translation id="2942581856830209953">התאמה אישית של הדף הזה</translation> <translation id="2943400156390503548">שקופיות</translation> <translation id="2943503720238418293">השם צריך להיות קצר יותר</translation> <translation id="2946119680249604491">הוסף חיבור</translation> @@ -1409,7 +1423,7 @@ <translation id="313205617302240621">שכחת את הסיסמה?</translation> <translation id="3132996321662585180">רענון מדי יום</translation> <translation id="3135204511829026971">סובב את המסך</translation> -<translation id="313638818480447860">מצאנו <ph name="NUMBER_OF_APPS" /> אפליקציות המחוברות לחשבון שלך ושעברו אופטימיזציה למכשיר הזה.</translation> +<translation id="313638818480447860">מצאנו <ph name="NUMBER_OF_APPS" /> אפליקציות שמחוברות לחשבון שלך ועברו אופטימיזציה למכשיר הזה.</translation> <translation id="313963229645891001">בהורדה, <ph name="STATUS" /></translation> <translation id="3139925690611372679">דמות ברירת מחדל צהובה</translation> <translation id="3140353188828248647">התמקד בסרגל הכתובות</translation> @@ -1562,7 +1576,7 @@ <translation id="3389312115541230716">לחץ לחיצה ימנית על הסמל <ph name="SMALL_PRODUCT_LOGO" /> בשורת המשימות</translation> <translation id="3391716558283801616">כרטיסייה 7</translation> <translation id="3396331542604645348">המדפסת שנבחרה אינה זמינה או שאינה מותקנת כראוי. בדוק את המדפסת או נסה לבחור מדפסת אחרת.</translation> -<translation id="3396800784455899911">לחיצה על הלחצן "קבלה והמשך" מהווה את הסכמתך לעיבוד שתואר קודם לכן לגבי השירותים האלה של Google.</translation> +<translation id="3396800784455899911">לחיצה על הלחצן "קבלה והמשך" מבטאת את הסכמתך לעיבוד שתואר קודם לכן לגבי השירותים האלה של Google.</translation> <translation id="3399432415385675819">הודעות יושבתו</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">לא נשמרו סיסמאות לאתר הזה</translation> @@ -1771,6 +1785,7 @@ <translation id="3693415264595406141">סיסמה:</translation> <translation id="3694027410380121301">בחר כרטיסייה קודמת</translation> <translation id="3699624789011381381">כתובת אימייל</translation> +<translation id="3699920817649120894">להשבית את הסנכרון וההתאמה האישית?</translation> <translation id="3700888195348409686">מציג (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">דפי הפתיחה שלך השתנו והם כוללים עכשיו את <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript נחסם</translation> @@ -1868,6 +1883,7 @@ <translation id="3827774300009121996">&מסך מלא</translation> <translation id="3828029223314399057">חפש סימניות</translation> <translation id="3830674330436234648">לא ניתן להפעיל</translation> +<translation id="3831436149286513437">הצעות לחיפושים של Google Drive</translation> <translation id="3831486154586836914">נכנסת למצב סקירת חלון</translation> <translation id="383161972796689579">הבעלים של מכשיר זה השבית את ההוספה של משתמשים חדשים</translation> <translation id="3834775135533257713">לא ניתן היה להוסיף את היישום "<ph name="TO_INSTALL_APP_NAME" />" מפני שהוא מתנגש עם "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1901,6 +1917,7 @@ <translation id="3871092408932389764">הנמוך ביותר</translation> <translation id="3872220884670338524">עוד פעולות, חשבון שמור של <ph name="USERNAME" /> ב-<ph name="DOMAIN" /></translation> <translation id="3872991219937722530">אם לא תפנה שטח אחסון, המכשיר יפסיק להגיב.</translation> +<translation id="3873315167136380065">כדי להפעיל את האפשרות הזאת, צריך <ph name="BEGIN_LINK" />לאפס את הסנכרון<ph name="END_LINK" /> כדי להסיר את ביטוי הסיסמה של הסנכרון</translation> <translation id="3878840326289104869">יוצר משתמש בפיקוח</translation> <translation id="3879748587602334249">מנהל ההורדות</translation> <translation id="3880709822663530586">מפתח האבטחה פועל רק כשה-Bluetooth במכשיר פועל</translation> @@ -2024,6 +2041,7 @@ <translation id="4068776064906523561">טביעות אצבע שמורות</translation> <translation id="407173827865827707">בזמן לחיצה</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: כניסה שגויה</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">אישור חותם אימייל</translation> <translation id="407520071244661467">שנה קנה מידה</translation> <translation id="4075639477629295004">לא ניתן להעביר את <ph name="FILE_NAME" />.</translation> @@ -2091,6 +2109,7 @@ <translation id="4192273449750167573">אפשר לבדוק את ההגדרות במסך הבא</translation> <translation id="4193154014135846272">מסמך Google</translation> <translation id="4194570336751258953">הפעל אפשרות של 'הקש ללחיצה'</translation> +<translation id="4195249722193633765">התקנת אפליקציה באמצעות Linux (בטא)</translation> <translation id="4195643157523330669">פתח בכרטיסייה חדשה</translation> <translation id="4195814663415092787">המשך מהמקום שבו הפסקת</translation> <translation id="4197674956721858839">כווץ את הקבצים שנבחרו</translation> @@ -2151,7 +2170,9 @@ <translation id="428608937826130504">פריט מדף 8</translation> <translation id="4287502004382794929">אין ברשותך מספיק רשיונות תוכנה כדי לרשום מכשיר זה. פנה למחלקת המכירות כדי לרכוש עוד רשיונות. אם אתה סבור שהודעה זו מופיעה בטעות, צור קשר עם מחלקת התמיכה.</translation> <translation id="4289540628985791613">סקירה כללית</translation> +<translation id="4295072614469448764">האפליקציה זמינה במסוף שלך. בחלק מהמקרים מופיע סמל במרכז האפליקציות.</translation> <translation id="4296575653627536209">הוסף משתמש בפיקוח</translation> +<translation id="4297219207642690536">הפעלה מחדש ואתחול</translation> <translation id="4297322094678649474">החלפת שפות</translation> <translation id="4300305918532693141"><ph name="BEGIN_LINK" />אפס את הסנכרון<ph name="END_LINK" /> כדי לשנות את ההגדרה הזו.</translation> <translation id="4305227814872083840">ארוכה (שתי שניות)</translation> @@ -2187,6 +2208,7 @@ <translation id="4370975561335139969">כתובת האימייל והסיסמה שהזנת אינן תואמות</translation> <translation id="437184764829821926">הגדרות גופן מתקדמות</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">מנהל ההתקנה של Linux</translation> <translation id="4375035964737468845">פתיחה של קבצים שהורדו</translation> <translation id="4377363674125277448">הייתה בעיה באישור השרת.</translation> <translation id="4378154925671717803">טלפון</translation> @@ -2305,6 +2327,7 @@ <translation id="4576541033847873020">התאמת מכשיר Bluetooth</translation> <translation id="4579581181964204535">לא ניתן להעביר את <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">האם אתה בטוח שברצונך למחוק את פריטי $1 אלה?</translation> +<translation id="4582497162516204941">התקנה באמצעות Linux (בטא)</translation> <translation id="4582563038311694664">אפס את כל ההגדרות</translation> <translation id="4585793705637313973">עריכת הדף</translation> <translation id="4589268276914962177">מסוף חדש</translation> @@ -2548,6 +2571,7 @@ <translation id="4953808748584563296">דמות ברירת מחדל כתומה</translation> <translation id="4955814292505481804">שנתי</translation> <translation id="4957949153200969297">הפעלה רק של תכונות הקשורות לסינכרון <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">סיסמאות נשמרות בחשבון Google כדי לאפשר לך להשתמש בהן בכל המכשירים</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">התיקיה שבחרת מכילה קבצים רגישים. האם אתה בטוח שברצונך להעניק ל-"$1" גישה קבועה לקריאה בתיקיה זו?</translation> <translation id="4964455510556214366">סידור</translation> @@ -2727,6 +2751,7 @@ <translation id="5240817131241497236">ההגדרות ששולטות בסינכרון, בהתאמה אישית ובשירותים אחרים של Google ב-Chrome השתנו. השינוי עשוי להשפיע על ההגדרות הנוכחיות שלך.</translation> <translation id="5241128660650683457">קריאת כל הנתונים שלך באתרים שבהם אתה מבקר</translation> <translation id="5242724311594467048">האם להפעיל את "<ph name="EXTENSION_NAME" />"?</translation> +<translation id="5243522832766285132">צריך לנסות שוב בעוד כמה רגעים</translation> <translation id="5244474230056479698">מסנכרן ל-<ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> קרס. לחץ על בלון זה כדי להפעיל מחדש את היישום.</translation> <translation id="5247051749037287028">שם תצוגה (אופציונלי)</translation> @@ -2750,6 +2775,7 @@ <translation id="5264148714798105376">הפעולה יכולה להימשך כדקה.</translation> <translation id="5264252276333215551">התחבר לאינטרנט כדי להפעיל את היישום במצב קיוסק.</translation> <translation id="5265562206369321422">לא מקוונת במשך יותר משבוע</translation> +<translation id="5265797726250773323">שגיאה במהלך ההתקנה</translation> <translation id="5266113311903163739">שגיאת ייבוא של רשות אישורים</translation> <translation id="5269977353971873915">ההדפסה נכשלה</translation> <translation id="5271549068863921519">שמור סיסמה</translation> @@ -2772,6 +2798,7 @@ <translation id="529175790091471945">פרמט מכשיר זה</translation> <translation id="5292195676005197571">אפשר פשוט ללחוץ על הלחצן כדי להשתמש ברוב המפתחות</translation> <translation id="5293170712604732402">שחזר את ההגדרות לברירות המחדל המקוריות שלהן</translation> +<translation id="5297082477358294722">הסיסמה נשמרה. אפשר להציג סיסמאות שמורות ולנהל אותן דרך <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">נושא שנוצר על ידי</translation> <translation id="5299109548848736476">ללא מעקב</translation> <translation id="5299682071747318445">כל הנתונים מסונכרנים באמצעות משפט הסיסמה שלך לסנכרון</translation> @@ -3000,6 +3027,7 @@ <translation id="5612720917913232150"><ph name="URL" /> רוצה להשתמש במיקום המחשב שלך</translation> <translation id="5612734644261457353">מצטערים, עדיין לא ניתן לאמת את הסיסמה שלך. שים לב: אם שינית את סיסמתך לאחרונה, הסיסמה החדשה תיכנס לתוקף לאחר שתצא. השתמש בסיסמה הישנה כאן.</translation> <translation id="5614190747811328134">הודעת משתמש</translation> +<translation id="5614553682702429503">לשמור את הסיסמה?</translation> <translation id="561698261642843490">סגירת Firefox</translation> <translation id="5618075537869101857">אוף! לא ניתן היה להפעיל את יישום הקיוסק.</translation> <translation id="5618333180342767515">(פעולה זו עשויה להימשך מספר דקות)</translation> @@ -3040,6 +3068,7 @@ <translation id="5677503058916217575">שפת הדף:</translation> <translation id="5677928146339483299">במצב חסום</translation> <translation id="5678550637669481956">ניתנה הרשאה לקריאה וכתיבה ב-<ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">אפליקציית Linux תהיה זמינה דרך המסוף שלך, ובחלק מהמקרים הסמל שלה יופיע במרכז האפליקציות.</translation> <translation id="5678955352098267522">קריאת הנתונים שלך באתר <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">מזהה נכסים</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />לא ניתן להתנתק מהארכיון או מהדיסק הווירטואלי<ph name="END_BOLD" /> @@ -3135,6 +3164,7 @@ <translation id="5832805196449965646">הוסף משתמש</translation> <translation id="583281660410589416">לא ידוע</translation> <translation id="5832976493438355584">נעול</translation> +<translation id="5833397272224757657">התוכן מאתרים שנכנסת אליהם, פעילות הדפדפן והאינטראקציות שלך ישמשו לצורך התאמה אישית</translation> <translation id="5833610766403489739">הקובץ הזה עבר למקום אחר. בדוק את הגדרות מיקום ההורדה ונסה שוב.</translation> <translation id="5833726373896279253">רק הבעלים יכול לשנות הגדרות אלה:</translation> <translation id="5834581999798853053">נותרו בערך <ph name="TIME" /> דקות</translation> @@ -3188,6 +3218,7 @@ <translation id="5908769186679515905">חסום הפעלה של Flash על-ידי אתרים</translation> <translation id="5910363049092958439">שמ&ור תמונה כ...</translation> <translation id="5911737117543891828">תתבצע מחיקה של קבצים זמניים לא מקוונים ב-Google Drive. הקבצים שהגדרת לגישה במצב לא מקוון לא יימחקו מהמכשיר הזה.</translation> +<translation id="5911887972742538906">התרחשה שגיאה במהלך ההתקנה של אפליקציית Linux.</translation> <translation id="5912378097832178659">&ערוך מנועי חיפוש...</translation> <translation id="5914724413750400082">מודולוס (<ph name="MODULUS_NUM_BITS" /> ביטים): <ph name="MODULUS_HEX_DUMP" /> @@ -3374,6 +3405,7 @@ <translation id="6198102561359457428">צא והיכנס שוב...</translation> <translation id="6198252989419008588">שנה PIN</translation> <translation id="6199801702437275229">מחכה למידע שטח האחסון...</translation> +<translation id="6201792273624501289">אפליקציות Linux</translation> <translation id="6204015976622790023">הצגת הצעות רלוונטיות מה-Assistant הקשורות למה שמופיע במסך.</translation> <translation id="6205710420833115353">פעולות מסוימות נמשכות זמן רב מהצפוי. האם ברצונך לבטל אותן?</translation> <translation id="6206311232642889873">העת&ק תמונה</translation> @@ -3850,6 +3882,7 @@ <translation id="6945221475159498467">בחר</translation> <translation id="694592694773692225">הפניה לכתובת אתר אחרת נחסמה בדף הזה.</translation> <translation id="6949306908218145636">הוספת דפים פתוחים לסימניות...</translation> +<translation id="6950627417367801484">שחזור אפליקציות</translation> <translation id="6951153907720526401">מעבדי handler לתשלומים</translation> <translation id="6955446738988643816">בדוק חלון מוקפץ</translation> <translation id="6957231940976260713">שם שירות</translation> @@ -3975,6 +4008,7 @@ <translation id="7127980134843952133">היסטוריית הורדות</translation> <translation id="7131040479572660648">קריאת הנתונים שלך באתרים <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ו-<ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">הוסף &דף...</translation> +<translation id="7133578150266914903">מנהל המערכת שלך מחזיר את המכשיר הזה למצב קודם (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">הקטן טקסט</translation> <translation id="7136694880210472378">הפוך לברירת מחדל</translation> <translation id="7136984461011502314">ברוך הבא ל-<ph name="PRODUCT_NAME" /></translation> @@ -4175,6 +4209,7 @@ <translation id="7463006580194749499">הוסף משתמש</translation> <translation id="7464490149090366184">הכיווץ נכשל, הפריט קיים: "$1"</translation> <translation id="7465778193084373987">כתובת אתר לביטול אישור של Netscape</translation> +<translation id="7469406957790636836">כדי להפעיל את האפשרות הזאת, צריך להפעיל את בדיקת האיות דרך <ph name="BEGIN_LINK" />שפות וקלט<ph name="END_LINK" /></translation> <translation id="7469894403370665791">התחבר אוטומטית לרשת זו.</translation> <translation id="747114903913869239">שגיאה: לא ניתן לפענח תוסף</translation> <translation id="7473753388963818366">עכשיו נכין את ה-<ph name="DEVICE_TYPE" /> לשימוש</translation> @@ -4270,6 +4305,7 @@ <translation id="7606992457248886637">רשויות</translation> <translation id="7607002721634913082">מושהה</translation> <translation id="7607274158153386860">בקש אתר טאבלט</translation> +<translation id="7609148976235050828">צריך להתחבר לאינטרנט ולנסות שוב.</translation> <translation id="7611008212562900400">חיפוש המכשיר שלך, אפליקציות, אינטרנט...</translation> <translation id="7616214729753637086">רישום המכשיר מתבצע...</translation> <translation id="7617366389578322136">מתחבר אל <ph name="DEVICE_NAME" /></translation> @@ -4338,6 +4374,7 @@ <translation id="7730449930968088409">צילום של תוכן המסך</translation> <translation id="7730494089396812859">הצג פרטים של גיבוי בענן</translation> <translation id="7732111077498238432">הרשת כפופה למדיניות</translation> +<translation id="7737238973539693982">מחיקת Linux (בטא)</translation> <translation id="773905249182896430">הגנה מפני אתרים שעלולים לסכן אותך ואת המכשיר</translation> <translation id="7740996059027112821">רגילה</translation> <translation id="7748528009589593815">הכרטיסייה הקודמת</translation> @@ -4525,6 +4562,7 @@ <translation id="7974936243149753750">סריקת יתר</translation> <translation id="7977551819349545646">מעדכן את Chromebox...</translation> <translation id="7978412674231730200">מפתח פרטי</translation> +<translation id="7978450511781612192">הפעולה הזאת תוציא אותך מחשבונות Google שלך. הסימניות, ההיסטוריה, הסיסמאות ופרטים אחרים יפסיקו לעבור סנכרון.</translation> <translation id="7979036127916589816">שגיאת סנכרון</translation> <translation id="7980084013673500153">מזהה נכס: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">טעינה מראש של דפים כדי לאפשר גלישה וחיפוש מהירים יותר</translation> @@ -4689,6 +4727,7 @@ <translation id="8226619461731305576">תור</translation> <translation id="8226742006292257240">סיסמת TPM שנוצרה באקראי והוקצתה למחשב שלך:</translation> <translation id="8227119283605456246">צרף קובץ</translation> +<translation id="8230134520748321204">האם לשמור את הסיסמה של <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">עזור למהנדסים שלנו לפתור את הבעיה הזו. ספר לנו מה קרה לפני שהוצגה לך הודעת השגיאה לגבי הפרופיל:</translation> <translation id="8234989666557591529">יש לבחור טלפון לביטול הנעילה של <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">סינכרון בשם <ph name="FULL_NAME" /></translation> @@ -4807,6 +4846,7 @@ <translation id="8438328416656800239">החלף לדפדפן חכם</translation> <translation id="8438566539970814960">שיפור החיפושים והגלישה</translation> <translation id="8439506636278576865">הצעות לתרגום דפים שנכתבו בשפה זו</translation> +<translation id="8440630305826533614">אפליקציות Linux</translation> <translation id="8446884382197647889">למידע נוסף</translation> <translation id="8447409163267621480">יש לכלול את Ctrl או Alt</translation> <translation id="8448729345478502352">הגדלה או הקטנה של פריטים במסך</translation> @@ -4851,6 +4891,7 @@ <translation id="8497219075884839166">תוכניות שירות של Windows</translation> <translation id="8498214519255567734">מקל עליך להביט במסך או לקרוא באור מעומעם</translation> <translation id="8498395510292172881">המשך קריאה ב-Chrome</translation> +<translation id="8502536196501630039">כדי להשתמש באפליקציות מ-Google Play, צריך לשחזר את האפליקציות שלך. ייתכן שחלק מהנתונים אבדו.</translation> <translation id="8503813439785031346">שם משתמש</translation> <translation id="850875081535031620">לא נמצאו תוכנות מזיקות</translation> <translation id="8509646642152301857">הורדת המילון לבדיקת איות נכשלה.</translation> @@ -4980,6 +5021,7 @@ <translation id="8698464937041809063">איור של Google</translation> <translation id="869884720829132584">תפריט יישומים</translation> <translation id="869891660844655955">תאריך תפוגה</translation> +<translation id="8699566574894671540">כדי להפעיל את האפשרות הזאת, צריך לבחור 'בדיקת איות בעת ההקלדה' בתפריט 'עריכה'.</translation> <translation id="870073306461175568">שיתופי קבצים ברשת</translation> <translation id="8701677791353449257">שם המכשיר חייב להתאים לביטוי הרגולרי <ph name="REGEX" />.</translation> <translation id="8704521619148782536">הפעולה נמשכת זמן רב מהרגיל. תוכל להמשיך להמתין, או לבטל את הפעולה ולנסות שוב מאוחר יותר.</translation> @@ -5019,6 +5061,7 @@ <p>באפשרותך עדיין לבצע הגדרת תצורה באמצעות שורת הפקודה. עיין בקטע <code>man<ph name="PRODUCT_BINARY_NAME" /></code> לקבלת מידע נוסף על סימונים ומשתנים סביבתיים.</p></translation> <translation id="8755376271068075440">&גדול יותר</translation> +<translation id="8756969031206844760">לעדכן את הסיסמה?</translation> <translation id="8757090071857742562">לא ניתן להעביר את שולחן העבודה. בדוק אם אישרת את הבקשה להתחיל בשיתוף המסך.</translation> <translation id="8757640015637159332">היכנס לפעילות ציבורית באתר</translation> <translation id="8757742102600829832">מחר Chromebox שאליו ברצונך להתחבר</translation> @@ -5175,7 +5218,9 @@ <translation id="9009369504041480176">טוען (%<ph name="PROGRESS_PERCENT" />)...</translation> <translation id="9011163749350026987">הצג תמיד את הסמל</translation> <translation id="9011178328451474963">הכרטיסייה האחרונה</translation> +<translation id="9013707997379828817">מנהל המערכת שלך החזיר את המכשיר הזה למצב קודם. צריך לשמור קבצים חשובים ולהפעיל מחדש. כל הנתונים במכשיר זה יימחקו.</translation> <translation id="9014987600015527693">הצג טלפון אחר</translation> +<translation id="9018218886431812662">ההתקנה הושלמה</translation> <translation id="901834265349196618">אימייל</translation> <translation id="9019062154811256702">קריאה ושינוי של הגדרות מילוי אוטומטי</translation> <translation id="9020362265352758658">4x</translation> @@ -5199,6 +5244,7 @@ <translation id="9038649477754266430">השתמש בשירות חיזוי כדי לטעון דפים מהר יותר</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">השתקת כרטיסיות</translation> +<translation id="9040661932550800571">האם לעדכן את הסיסמה של <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">הגישה לקבצים מקומיים במחשב שלך מושבתת על-ידי מנהל המערכת</translation> <translation id="9042893549633094279">פרטיות ואבטחה</translation> <translation id="904451693890288097">הזן סיסמה עבור "<ph name="DEVICE_NAME" />":</translation> @@ -5303,6 +5349,7 @@ <translation id="9203478404496196495">בטל השתקת כרטיסייה</translation> <translation id="9203904171912129171">בחירת מכשיר</translation> <translation id="9203962528777363226">מנהל המערכת של מכשיר זה השבית את ההוספה של משתמשים חדשים</translation> +<translation id="9213073329713032541">ההתקנה התחילה בהצלחה.</translation> <translation id="9214520840402538427">אופס! תם הזמן הקצוב לאתחול של מאפייני זמן ההתקנה. פנה אל נציג התמיכה שלך.</translation> <translation id="9214695392875603905">קאפקייק</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" נוסף</translation> @@ -5357,6 +5404,7 @@ <translation id="988978206646512040">השדה של ביטוי הסיסמה לא יכול להישאר ריק</translation> <translation id="992032470292211616">תוספים, אפליקציות ועיצובים יכולים לפגוע במכשיר שלך. האם אתה בטוח שברצונך להמשיך?</translation> <translation id="992592832486024913">השבת את ChromeVox (משוב קולי)</translation> +<translation id="993540765962421562">ההתקנה עוד לא הסתיימה</translation> <translation id="994289308992179865">הפעל ב&רצף</translation> <translation id="996250603853062861">יוצר חיבור מאובטח...</translation> <translation id="998747458861718449">&בדוק</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb index cd9a9fc..758df8a 100644 --- a/chrome/app/resources/generated_resources_kn.xtb +++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -218,6 +218,7 @@ <translation id="1316136264406804862">ಹುಡುಕಲಾಗುತ್ತಿದೆ...</translation> <translation id="1316495628809031177">ಸಿಂಕ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಲಾಗಿದೆ</translation> <translation id="1319979322914001937">Chrome ವೆಬ್ ಅಂಗಡಿಯಿಂದ ವಿಸ್ತರಣೆಗಳ ಫಿಲ್ಟರ್ ಮಾಡಲಾದ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸುವ ಅಪ್ಲಿಕೇಶನ್. ಪಟ್ಟಿಯಲ್ಲಿರುವ ವಿಸ್ತರಣೆಗಳನ್ನು ಅಪ್ಲಿಕೇಶನ್ನಿಂದ ನೇರವಾಗಿ ಸ್ಥಾಪಿಸಬಹುದು.</translation> +<translation id="1322046419516468189">ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು <ph name="SAVED_PASSWORDS_STORE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation> <translation id="1326317727527857210">ನಿಮ್ಮ ಇತರ ಸಾಧನಗಳಿಂದ ನಿಮ್ಮ ಟ್ಯಾಬ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation> <translation id="1327074568633507428">Google ಮೇಘ ಮುದ್ರಣದಲ್ಲಿ ಮುದ್ರಕ</translation> <translation id="1327977588028644528">ಗೇಟ್ವೇ</translation> @@ -415,11 +416,13 @@ <translation id="1618268899808219593">ಸ&ಹಾಯ ಕೇಂದ್ರ</translation> <translation id="162035744160882748">ಸಿಂಕ್, ವೈಯಕ್ತೀಕರಣ ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ಆನ್ ಮಾಡಿ</translation> <translation id="1620510694547887537">ಕ್ಯಾಮರಾ</translation> +<translation id="1623132449929929218">ಚಿತ್ರಗಳು ಪ್ರಸ್ತುತ ಲಭ್ಯವಿಲ್ಲ. ವಾಲ್ಪೇಪರ್ ಸಂಗ್ರಹಗಳನ್ನು ನೋಡಲು ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="1624026626836496796">ಇದು ಒಂದು ಬಾರಿ ಮಾತ್ರ ಸಂಭವಿಸುತ್ತದೆ, ಹಾಗೂ ನಿಮ್ಮ ರುಜುವಾತುಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು ಆಗುವುದಿಲ್ಲ.</translation> <translation id="1627276047960621195">ಫೈಲ್ ವಿವರಣೆಗಳು</translation> <translation id="1627408615528139100">ಈಗಾಗಲೇ ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="1632803087685957583">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ಪುನರಾವರ್ತನೆ ದರ, ಪದ ಮುನ್ಸೂಚನೆ ಹಾಗೂ ಇನ್ನಷ್ಟನ್ನು ಸರಿಹೊಂದಿಸಲು ನಿಮಗೆ ಅವಕಾಶ ನೀಡುತ್ತದೆ</translation> <translation id="1635033183663317347">ನಿಮ್ಮ ಮೇಲ್ವಿಚಾರಕರು ಸ್ಥಾಪಿಸಿದ್ದಾರೆ.</translation> +<translation id="1635885551358739414">ಅನುವಾದ, ಹುಡುಕಾಟ ಮತ್ತು ಜಾಹೀರಾತುಗಳಂತಹ ಇತರ Google ಸೇವೆಗಳನ್ನು ಮತ್ತು Chrome ಅನ್ನು ವೈಯಕ್ತೀಕರಿಸಲು ನೀವು ಭೇಟಿ ನೀಡುವ ಸೈಟ್ಗಳಲ್ಲಿನ ವಿಷಯ, ಜೊತೆಗೆ ಬ್ರೌಸರ್ ಚಟುವಟಿಕೆ ಹಾಗೂ ಸಂವಾದಗಳನ್ನು Google ಬಳಸಬಹುದು. ಇದನ್ನು ನೀವು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ಕಸ್ಟಮೈಸ್ ಮಾಡಬಹುದು.</translation> <translation id="1637224376458524414">ನಿಮ್ಮ iPhone ನಲ್ಲಿ ಈ ಬುಕ್ಮಾರ್ಕ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳಿ</translation> <translation id="1637765355341780467">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ತೆರೆಯುವಾಗ ಏನೋ ತಪ್ಪು ಸಂಭವಿಸಿದೆ. ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿರದೇ ಇರಬಹುದು.</translation> <translation id="1639239467298939599">ಲೋಡ್ ಆಗುತ್ತಿದೆ</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">ಪಾಸ್ವರ್ಡ್ ತುಂಬಾ ಚಿಕ್ಕದಾಗಿದೆ.</translation> <translation id="1661867754829461514">PIN ಕಾಣೆಯಾಗಿದೆ</translation> <translation id="16620462294541761">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲಾಗುವುದಿಲ್ಲ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="1662550410081243962">ಪಾವತಿ ವಿಧಾನಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation> <translation id="166278006618318542">ವಿಷಯ ಸಾರ್ವಜನಿಕ ಕೀಲಿ ಆಲ್ಗಾರಿದಮ್</translation> <translation id="166439687370499867">ಹಂಚಿದ ನೆಟ್ವರ್ಕ್ ಕಾನ್ಫಿಗರ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಅನುಮತಿಸುವುದಿಲ್ಲ</translation> <translation id="1665611772925418501">ಫೈಲ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಲಾಗಲಿಲ್ಲ.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546">ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀಯ ತಯಾರಕರ ಬ್ರಾಂಡ್ ಹೆಸರು ಮತ್ತು ಮಾದರಿಯನ್ನು <ph name="URL" /> ನೋಡಲು ಬಯಸುತ್ತದೆ</translation> <translation id="167832068858235403">ವಾ. ಕಡಿಮೆ ಮಾಡಿ</translation> <translation id="1679068421605151609">ಡೆವಲಪರ್ ಟೂಲ್ಸ್</translation> +<translation id="1680849702532889074">ನಿಮ್ಮ Linux ಅಪ್ಲಿಕೇಶನ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷವೊಂದು ಸಂಭವಿಸಿದೆ.</translation> <translation id="16815041330799488">ಕ್ಲಿಪ್ಬೋರ್ಡ್ಗೆ ನಕಲಿಸಿರುವ ಪಠ್ಯ ಮತ್ತು ಚಿತ್ರಗಳನ್ನು ನೋಡಲು ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿ ನೀಡಬೇಡಿ</translation> <translation id="1682548588986054654">ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋ</translation> <translation id="168715261339224929">ನಿಮ್ಮ ಎಲ್ಲ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">ಅನ್ಪಿನ್ ಟ್ಯಾಬ್ಗಳು</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> ತಾನಾಗಿಯೇ ಅಪ್ಡೇಟ್ ಆಗಲು ಸಾಧ್ಯವಾಗದಿರಬಹುದು</translation> <translation id="1736419249208073774">ಎಕ್ಸ್ಪ್ಲೋರ್ ಮಾಡಿ</translation> +<translation id="1736827427463982819">Linux (ಬೀಟಾ) ಸ್ಥಗಿತಗೊಳಿಸಿ</translation> <translation id="1737968601308870607">ಫೈಲ್ ಬಗ್</translation> <translation id="1741314857973421784">ಮುಂದುವರಿಸಿ</translation> <translation id="174173592514158117">ಎಲ್ಲ Play ಫೋಲ್ಡರ್ಗಳನ್ನು ತೋರಿಸಿ</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567">ನಿಮ್ಮ ಸ್ಥಳೀಯ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಣೆ ಮಾಡಲು <ph name="URL" /> ಬಯಸುತ್ತದೆ</translation> <translation id="1997616988432401742">ನಿಮ್ಮ ಪ್ರಮಾಣಪತ್ರಗಳು</translation> <translation id="1999115740519098545">ಸ್ಟಾರ್ಟ್ಅಪ್ನಲ್ಲಿ</translation> +<translation id="2000419248597011803">ಕೆಲವು ಕುಕೀಗಳನ್ನು ಹಾಗೂ ವಿಳಾಸ ಪಟ್ಟಿ ಮತ್ತು ಹುಡುಕಾಟ ಬಾಕ್ಸ್ನಿಂದ ಹುಡುಕಾಟಗಳನ್ನು, ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಹುಡುಕಾಟದ ಎಂಜಿನ್ಗೆ ಕಳುಹಿಸುತ್ತದೆ</translation> <translation id="2001796770603320721">ಡ್ರೈವ್ನಲ್ಲಿ ನಿರ್ವಹಿಸಿ</translation> <translation id="2004663115385769400">$1 ಮೂಲಕ ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ</translation> <translation id="200544492091181894">ನೀವು ಯಾವಾಗಲೂ ಇದನ್ನು ಸೆಟ್ಟಿಂಗ್ಗಳಲ್ಲಿ ನಂತರ ಬದಲಾಯಿಸಬಹುದು</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">ಕುಕೀಸ್ ನಿರ್ಬಂಧಿಸುವುದನ್ನು ಮುಂದುವರಿಸು</translation> <translation id="204622017488417136">ನಿಮ್ಮ ಸಾಧನವನ್ನು ಹಿಂದೆ ಸ್ಥಾಪಿಸಲಾದ Chrome ನ ಆವೃತ್ತಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ. ಎಲ್ಲ ಬಳಕೆದಾರರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ. ಇದನ್ನು ರದ್ದುಗೊಳಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="2048182445208425546">ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಟ್ರ್ಯಾಫಿಕ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ</translation> +<translation id="2048653237708779538">ಯಾವುದೇ ಕ್ರಿಯೆ ಲಭ್ಯವಿಲ್ಲ</translation> <translation id="204914487372604757">ಒಳದಾರಿಯನ್ನು ರಚಿಸು</translation> <translation id="2050339315714019657">ಪೋಟ್ರೇಟ್</translation> <translation id="2053312383184521053">ತಟಸ್ಥ ಸ್ಥಿತಿಯ ಡೇಟಾ</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> ನಲ್ಲಿ ಇರುವ <ph name="PEPPER_PLUGIN_DOMAIN" />, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ಪ್ರವೇಶಿಸಲು ಬಯಸುತ್ತದೆ</translation> <translation id="2178614541317717477">CA ಹೊಂದಾಣಿಕೆ</translation> <translation id="218070003709087997">ಎಷ್ಟು ಪ್ರತಿಗಳನ್ನು ಮುದ್ರಿಸಬೇಕೆಂದು (1 ರಿಂದ 999) ಸೂಚಿಸಲು ಸಂಖ್ಯೆಯನ್ನು ಬಳಸಿ.</translation> +<translation id="2183558561014688873">ನಿಮ್ಮ ಸಾಧನವು ಆನ್ ಮತ್ತು ಅನ್ಲಾಕ್ ಆಗಿರುವಾಗ, ಯಾವಾಗ ಬೇಕಾದರೂ "ಓಕೆ Google" ಎಂದು ಹೇಳಿ ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್ಗೆ ಪ್ರವೇಶ ಪಡೆಯಿರಿ.</translation> <translation id="2187895286714876935">ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರದ ಆಮದು ದೋಷ</translation> <translation id="2187906491731510095">ವಿಸ್ತರಣೆಗಳನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> ತೆರೆಯಿರಿ</translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">GPU ಪ್ರಕ್ರಿಯೆ</translation> <translation id="2282155092769082568">ಸ್ವಯಂ ಕಾನ್ಫಿಗರೇಶನ್ URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation> <translation id="2286841657746966508">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ</translation> <translation id="2288181517385084064">ವೀಡಿಯೊ ರೆಕಾರ್ಡರ್ಗೆ ಬದಲಿಸಿ</translation> <translation id="2288735659267887385">ಪ್ರವೇಶಿಸುವಿಕೆ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">ಒಟ್ಟು ಫೈಲ್ನ ಗಾತ್ರ</translation> <translation id="2428510569851653187">ಟ್ಯಾಬ್ ಕ್ರ್ಯಾಶ್ ಆದಾಗ ನೀವೇನು ಮಾಡುತ್ತಿದ್ದಿರಿ ಎಂಬುದನ್ನು ವಿವರಿಸಿ</translation> <translation id="2431027948063157455">Google ಸಹಾಯಕವನ್ನು ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ನಿಮ್ಮ ನೆಟ್ವರ್ಕ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation> +<translation id="2432753757290432042">Linux (ಬೀಟಾ) ಅಪ್ಡೇಟ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ</translation> <translation id="2433452467737464329">ಪುಟವನ್ನು ಸ್ವಯಂ ರಿಫ್ರೆಶ್ ಮಾಡಲು URL ನಲ್ಲಿ ಪ್ರಶ್ನಾವಳಿ ಪ್ಯಾರಾಮೀಟರ್ ಸೇರಿಸಿ: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">ಗೋಚರತೆ</translation> <translation id="2433836460518180625">'ಸಾಧನ ಮಾತ್ರ' ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ</translation> @@ -1181,6 +1192,7 @@ <translation id="2775104091073479743">ಫಿಂಗರ್ಪ್ರಿಂಟ್ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="2776441542064982094">ನೆಟ್ವರ್ಕ್ನಲ್ಲಿ ನೋಂದಾಯಿಸಲು ಯಾವುದೇ ಸಾಧನಗಳು ಕಂಡುಬಂದಿಲ್ಲವೆಂದು ತೋರುತ್ತಿದೆ. ನಿಮ್ಮ ಸಾಧನವು ಆನ್ ಆಗಿದ್ದು ಹಾಗೂ ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದರೆ, ಅದರ ಸೂಚನಾ ಕೈಪಿಡಿಯಲ್ಲಿರುವ ಸೂಚನೆಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ನೋಂದಾಯಿಸಲು ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Linux ಅಪ್ಲಿಕೇಶನ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಲ್ಲಿ ದೋಷ ಕಂಡುಬಂದಿದೆ</translation> <translation id="2783298271312924866">ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation> <translation id="2783321960289401138">ಶಾರ್ಟ್ಕಟ್ ರಚಿಸಿ....</translation> <translation id="2783829359200813069">ಎನ್ಕ್ರಿಪ್ಶನ್ ಪ್ರಕಾರಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> @@ -1205,6 +1217,7 @@ <translation id="2812944337881233323">ಸೈನ್ ಔಟ್ ಮಾಡಲು ಹಾಗೂ ಮರಳಿ ಸೈನ್ ಇನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ</translation> <translation id="2812989263793994277">ಯಾವುದೇ ಚಿತ್ರಗಳನ್ನು ತೋರಿಸದಿರಿ</translation> <translation id="2814489978934728345">ಈ ಪುಟ ಲೋಡ್ ಆಗುತ್ತಿರುವುದನ್ನು ತಡೆಯಿರಿ</translation> +<translation id="281504910091592009">ಉಳಿಸಲಾದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿಮ್ಮ <ph name="BEGIN_LINK" />Google ಖಾತೆಯಲ್ಲಿ<ph name="END_LINK" /> ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ</translation> <translation id="2815500128677761940">ಬುಕ್ಮಾರ್ಕ್ ಬಾರ್</translation> <translation id="2815693974042551705">ಬುಕ್ಮಾರ್ಕ್ ಫೋಲ್ಡರ್</translation> <translation id="2818476747334107629">ಪ್ರಿಂಟರ್ ವಿವರಗಳು</translation> @@ -1285,6 +1298,7 @@ <translation id="2939938020978911855">ಲಭ್ಯವಿರುವ ಬ್ಲೂಟೂತ್ ಸಾಧನಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="2941112035454246133">ಕಡಿಮೆ</translation> <translation id="2942560570858569904">ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...</translation> +<translation id="2942581856830209953">ಈ ಪುಟವನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಿ</translation> <translation id="2943400156390503548">ಸ್ಲೈಡ್ಗಳು</translation> <translation id="2943503720238418293">ಕಡಿಮೆ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿರುವ ಹೆಸರನ್ನು ಬಳಸಿ</translation> <translation id="2946119680249604491">ಸಂಪರ್ಕ ಸೇರಿಸಿ</translation> @@ -1771,6 +1785,7 @@ <translation id="3693415264595406141">ಪಾಸ್ವರ್ಡ್:</translation> <translation id="3694027410380121301">ಹಿಂದಿನ ಟ್ಯಾಬ್ ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="3699624789011381381">ಇಮೇಲ್ ವಿಳಾಸ</translation> +<translation id="3699920817649120894">ಸಿಂಕ್ ಮತ್ತು ವೈಯಕ್ತೀಕರಣವನ್ನು ಆಫ್ ಮಾಡುವುದೇ?</translation> <translation id="3700888195348409686">(<ph name="PAGE_ORIGIN" />) ಪ್ರದರ್ಶಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="3702500414347826004">ನಿಮ್ಮ ಆರಂಭಿಕ ಪುಟಗಳನ್ನು <ph name="URL" /> ಗೆ ಸೇರಿಸಲು ಬದಲಾಯಿಸಲಾಗಿದೆ.</translation> <translation id="370415077757856453">JavaScript ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> @@ -1868,6 +1883,7 @@ <translation id="3827774300009121996">&ಪೂರ್ಣ ಪರದೆ</translation> <translation id="3828029223314399057">ಬುಕ್ಮಾರ್ಕ್ಗಳನ್ನು ಹುಡುಕಿ</translation> <translation id="3830674330436234648">ಯಾವುದೇ ಪ್ಲೇಬ್ಯಾಕ್ ಲಭ್ಯವಿಲ್ಲ</translation> +<translation id="3831436149286513437">Google ಡ್ರೈವ್ ಹುಡುಕಾಟ ಸಲಹೆಗಳು</translation> <translation id="3831486154586836914">ವಿಂಡೊ ಅವಲೋಕನ ಮೋಡ್ಗೆ ಪ್ರವೇಶಿಸಲಾಗಿದೆ</translation> <translation id="383161972796689579">ಈ ಸಾಧನದ ಮಾಲೀಕರು ಸೇರಿಸುವ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation> <translation id="3834775135533257713">"<ph name="INSTALLED_APP_NAME" />" ಜೊತೆಗಿನ ಘರ್ಷಣೆಯ ಕಾರಣ "<ph name="TO_INSTALL_APP_NAME" />" ಅಪ್ಲಿಕೇಶನ್ ಸೇರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> @@ -1901,6 +1917,7 @@ <translation id="3871092408932389764">ಅತಿ ಕಡಿಮೆ</translation> <translation id="3872220884670338524">ಹೆಚ್ಚಿನ ಕ್ರಿಯೆಗಳು, <ph name="DOMAIN" /> ನಲ್ಲಿ <ph name="USERNAME" /> ಅವರ ಖಾತೆಯನ್ನು ಉಳಿಸಲಾಗಿದೆ</translation> <translation id="3872991219937722530">ಡಿಸ್ಕ್ ಸ್ಥಳಾವಕಾಶ ಮುಕ್ತಗೊಳಿಸಿ ಇಲ್ಲದಿದ್ದರೆ ಸಾಧನವು ಪ್ರತಿಕ್ರಿಯೆ ನೀಡದಂತಾಗುತ್ತದೆ.</translation> +<translation id="3873315167136380065">ಇದನ್ನು ಆನ್ ಮಾಡಲು, ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲು <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" /></translation> <translation id="3878840326289104869">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ರಚಿಸಲಾಗುತ್ತಿದೆ</translation> <translation id="3879748587602334249">ಡೌನ್ಲೋಡ್ ನಿರ್ವಾಹಕ</translation> <translation id="3880709822663530586">ನಿಮ್ಮ ಸಾಧನದ ಬ್ಲೂಟೂತ್ ಆನ್ ಇದ್ದಾಗ ಮಾತ್ರ ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಕೀ ಕೆಲಸ ಮಾಡುತ್ತದೆ</translation> @@ -2024,6 +2041,7 @@ <translation id="4068776064906523561">ಉಳಿಸಿದ ಬೆರಳಚ್ಚುಗಳು</translation> <translation id="407173827865827707">ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: ಸೈನ್ ಇನ್ ದೋಷ</translation> +<translation id="4071828814509176232">ಓಕೆ Google</translation> <translation id="4074900173531346617">ಇಮೇಲ್ ಸಹಿ ಮಾಡುವವರ ಪ್ರಮಾಣಪತ್ರ</translation> <translation id="407520071244661467">ಮಾಪಕ</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> @@ -2091,6 +2109,7 @@ <translation id="4192273449750167573">ಮುಂದಿನ ಪರದೆಯಲ್ಲಿ ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ</translation> <translation id="4193154014135846272">Google ಡಾಕ್ಯುಮೆಂಟ್</translation> <translation id="4194570336751258953">ಕ್ಲಿಕ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> +<translation id="4195249722193633765">Linux (ಬೀಟಾ) ನೊಂದಿಗೆ ಆ್ಯಪ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="4195643157523330669">ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation> <translation id="4195814663415092787">ಎಲ್ಲಿ ಬಿಡಲಾಗಿದೆಯೋ ಅಲ್ಲಿಂದಲೇ ಮುಂದುವರೆ</translation> <translation id="4197674956721858839">ಜಿಪ್ ಆಯ್ಕೆ</translation> @@ -2151,7 +2170,9 @@ <translation id="428608937826130504">ಶೆಲ್ಫ್ ಐಟಂ 8</translation> <translation id="4287502004382794929">ಈ ಸಾಧನವನ್ನು ದಾಖಲಿಸಲು ನೀವು ಸಾಕಷ್ಟು ಸಾಫ್ಟ್ವೇರ್ ಪರವಾನಗಿಗಳನ್ನು ಹೊಂದಿಲ್ಲ. ದಯವಿಟ್ಟು ಇನ್ನಷ್ಟು ಖರೀದಿಸಲು ಮಾರಾಟವನ್ನು ಸಂಪರ್ಕಿಸಿ. ಈ ಸಂದೇಶವನ್ನು ದೋಷದಲ್ಲಿ ನೀವು ನೋಡುತ್ತಿರುವಿರಿ ಎಂದು ನೀವು ಭಾವಿಸುವುದಾದರೆ, ದಯವಿಟ್ಟು ಸಂಪರ್ಕವನ್ನು ಬೆಂಬಲಿಸಿ.</translation> <translation id="4289540628985791613">ಅವಲೋಕನ</translation> +<translation id="4295072614469448764">ನಿಮ್ಮ ಟರ್ಮಿನಲ್ನಲ್ಲಿಯೇ ಆ್ಯಪ್ ಲಭ್ಯವಿದೆ. ನಿಮ್ಮ ಲಾಂಚರ್ನಲ್ಲಿ ಒಂದು ಐಕಾನ್ ಸಹ ಲಭ್ಯವಿರಬಹುದು.</translation> <translation id="4296575653627536209">ಮೇಲ್ವಿಚಾರಣೆಯ ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ</translation> +<translation id="4297219207642690536">ಮರುಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಮರುಹೊಂದಿಸಿ</translation> <translation id="4297322094678649474">ಭಾಷೆಗಳನ್ನು ಬದಲಾಯಿಸಿ</translation> <translation id="4300305918532693141">ಈ ಸೆಟ್ಟಿಂಗ್ ಬದಲಾಯಿಸಲು, <ph name="BEGIN_LINK" />ಸಿಂಕ್ ಮರುಹೊಂದಿಸಿ<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">ದೀರ್ಘ (2s)</translation> @@ -2187,6 +2208,7 @@ <translation id="4370975561335139969">ನೀವು ನಮೂದಿಸಿದ ಇಮೇಲ್ ಮತ್ತು ಪಾಸ್ವರ್ಡ್ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ</translation> <translation id="437184764829821926">ಸುಧಾರಿತ ಫಾಂಟ್ ಸೆಟ್ಟಿಂಗ್ಗಳು</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Linux ಇನ್ಸ್ಟಾಲರ್</translation> <translation id="4375035964737468845">ಡೌನ್ಲೋಡ್ ಆಗಿರುವ ಫೈಲ್ಗಳನ್ನು ತೆರೆ</translation> <translation id="4377363674125277448">ಸರ್ವರ್ನ ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ಸಮಸ್ಯೆ ಇದೆ.</translation> <translation id="4378154925671717803">ಫೋನ್</translation> @@ -2305,6 +2327,7 @@ <translation id="4576541033847873020">ಬ್ಲೂಟೂತ್ ಸಾಧನವನ್ನು ಜೋಡಿ ಮಾಡಿ</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="4580526846085481512">$1 ಐಟಂಗಳನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> +<translation id="4582497162516204941">Linux (ಬೀಟಾ) ನೊಂದಿಗೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ</translation> <translation id="4582563038311694664">ಎಲ್ಲ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಹೊಂದಿಸಿ</translation> <translation id="4585793705637313973">ಪುಟ ಎಡಿಟ್ ಮಾಡಿ</translation> <translation id="4589268276914962177">ಹೊಸ ಟರ್ಮಿನಲ್</translation> @@ -2549,6 +2572,7 @@ <translation id="4953808748584563296">ಡಿಫಾಲ್ಟ್ ಕೇಸರಿ ಅವತಾರ್</translation> <translation id="4955814292505481804">ವಾರ್ಷಿಕ</translation> <translation id="4957949153200969297"><ph name="IDS_SHORT_PRODUCT_NAME" /> ಸಿಂಕ್ಗೆ ಸಂಬಂಧಿಸಿದ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಮಾತ್ರ ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> +<translation id="4959262764292427323">ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ. ಇದರಿಂದ ನೀವು ಅವುಗಳನ್ನು ಯಾವುದೇ ಸಾಧನದಲ್ಲಿ ಬಳಸಬಹುದು.</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">ನೀವು ಆಯ್ಕೆ ಮಾಡಿರುವ ಫೋಲ್ಡರ್ ಸೂಕ್ಷ್ಮ ಫೈಲ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ನೀವು ಈ ಫೋಲ್ಡರ್ಗೆ "$1" ನ ಶಾಶ್ವತ ಓದುವ ಪ್ರವೇಶವನ್ನು ಒದಗಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುತ್ತೀರಾ?</translation> <translation id="4964455510556214366">ಹೊಂದಾಣಿಕೆ</translation> @@ -2727,6 +2751,7 @@ <translation id="5240817131241497236">Chrome ನಲ್ಲಿ ಸಿಂಕ್, ವೈಯಕ್ತೀಕರಣ ಮತ್ತು ಇತರ Google ಸೇವೆಗಳನ್ನು ನಿಯಂತ್ರಿಸುವ ಸೆಟ್ಟಿಂಗ್ಗಳು ಬದಲಾಗಿವೆ. ಇದು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್ಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು.</translation> <translation id="5241128660650683457">ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್ಸೈಟ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಓದಿ</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" ಸಕ್ರಿಯಗೊಳಿಸುವುದೆ?</translation> +<translation id="5243522832766285132">ದಯವಿಟ್ಟು ಕೆಲವು ಕ್ಷಣಗಳಲ್ಲಿ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ</translation> <translation id="5244474230056479698"><ph name="EMAIL" /> ಗೆ ಸಿಂಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ. ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಈ ಬಲೂನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.</translation> <translation id="5247051749037287028">ಡಿಸ್ಪ್ಲೇ ಹೆಸರು (ಐಚ್ಛಿಕ)</translation> @@ -2751,6 +2776,7 @@ <translation id="5264148714798105376">ಇದು ಒಂದು ನಿಮಿಷ ಅಥವಾ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಬಹುದು.</translation> <translation id="5264252276333215551">ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಕಿಯೋಸ್ಕ್ ಮೋಡ್ನಲ್ಲಿ ಪ್ರಾರಂಭಿಸಲು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="5265562206369321422">ಒಂದು ವಾರಕ್ಕಿಂತಲೂ ಹೆಚ್ಚು ಕಾಲ ಆಫ್ಲೈನ್</translation> +<translation id="5265797726250773323">ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ದೋಷ ಕಂಡುಬಂದಿದೆ</translation> <translation id="5266113311903163739">ಪ್ರಮಾಣಪತ್ರದ ಅಧಿಕಾರ ಆಮದು ದೋಷ</translation> <translation id="5269977353971873915">ಮುದ್ರಣ ವಿಫಲಗೊಂಡಿದೆ</translation> <translation id="5271549068863921519">ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಿ</translation> @@ -2773,6 +2799,7 @@ <translation id="529175790091471945">ಈ ಸಾಧನವನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ</translation> <translation id="5292195676005197571">ಹೆಚ್ಚಿನ ಕೀಗಳನ್ನು ಬಳಸಲು, ಕೇವಲ ಬಟನ್ ಅನ್ನು ಒತ್ತಿರಿ</translation> <translation id="5293170712604732402">ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಅದರ ಮೂಲ ಡೀಫಾಲ್ಟ್ಗಳಿಗೆ ಮರುಸ್ಥಾಪಿಸಿ</translation> +<translation id="5297082477358294722">ಪಾಸ್ವರ್ಡ್ ಉಳಿಸಲಾಗಿದೆ. ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ನಿಮ್ಮ <ph name="SAVED_PASSWORDS_STORE" /> ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ.</translation> <translation id="5298219193514155779">ಇವರಿಂದ ಥೀಮ್ ರಚಿಸಲಾಗಿದೆ</translation> <translation id="5299109548848736476">ಟ್ರ್ಯಾಕ್ ಮಾಡಬೇಡಿ</translation> <translation id="5299682071747318445">ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ನೊಂದಿಗೆ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಎನ್ಕ್ರಿಫ್ಟ್ ಮಾಡಲಾಗಿದೆ</translation> @@ -3001,6 +3028,7 @@ <translation id="5612720917913232150"><ph name="URL" /> ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನ ಸ್ಥಳವನ್ನು ಬಳಸಲು ಬಯಸುತ್ತದೆ</translation> <translation id="5612734644261457353">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಇನ್ನೂ ಪರಿಶೀಲಿಸಲಾಗಲಿಲ್ಲ. ಗಮನಿಸಿ: ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ನೀವು ಇತ್ತೀಚೆಗೆ ಬದಲಾಯಿಸಿದ್ದರೆ, ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡಿದ ನಂತರ ನಿಮ್ಮ ಹೊಸ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಜಾರಿಗೆ ತರಲಾಗುತ್ತದೆ, ದಯವಿಟ್ಟು ಇಲ್ಲಿ ಹಳೆಯ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಬಳಸಿ.</translation> <translation id="5614190747811328134">ಬಳಕೆದಾರ ಸೂಚನೆ</translation> +<translation id="5614553682702429503">ಪಾಸ್ವರ್ಡ್ ಉಳಿಸುವುದೇ?</translation> <translation id="561698261642843490">Firefox ಅನ್ನು ಮುಚ್ಚಿ</translation> <translation id="5618075537869101857">ಓಹ್ ದೇವರೇ, ಕಿಯೋಸ್ಕ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಲಾಗಲಿಲ್ಲ.</translation> <translation id="5618333180342767515">(ಇದು ಕೆಲವು ನಿಮಿಷಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">ಪುಟದ ಭಾಷೆ:</translation> <translation id="5677928146339483299">ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> ಗೆ ಓದಲು ಮತ್ತು ಬರೆಯಲು ಪ್ರವೇಶವನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ.</translation> +<translation id="5678784840044122290">ನಿಮ್ಮ ಟರ್ಮಿನಲ್ ಒಳಗೇ Linux ಅಪ್ಲಿಕೇಶನ್ ಲಭ್ಯವಿರುತ್ತದೆ ಮತ್ತು ಅದು ನಿಮ್ಮ ಲಾಂಚರ್ನಲ್ಲಿ ಐಕಾನ್ ಒಂದನ್ನು ಸಹ ತೋರಿಸಬಹುದು.</translation> <translation id="5678955352098267522">ನಿಮ್ಮ ಡೇಟಾವನ್ನು <ph name="WEBSITE_1" /> ನಲ್ಲಿ ಓದಿ</translation> <translation id="5684661240348539843">ಸ್ವತ್ತು ಗುರುತಿಸುವಿಕೆ</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />ಆರ್ಕೈವ್ ಅಥವಾ ವರ್ಚುವಲ್ ಡಿಸ್ಕ್ನಿಂದ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ<ph name="END_BOLD" /> <ph name="LINE_BREAKS" />ಆರ್ಕೈವ್ ಅಥವಾ ವರ್ಚುವಲ್ ಡಿಸ್ಕ್ನಲ್ಲಿ ಎಲ್ಲಾ ಫೈಲ್ಗಳನ್ನು ಮುಚ್ಚಿ, ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> @@ -3135,6 +3164,7 @@ <translation id="5832805196449965646">ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸು</translation> <translation id="583281660410589416">ಅಪರಿಚಿತ</translation> <translation id="5832976493438355584">ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation> +<translation id="5833397272224757657">ನೀವು ಭೇಟಿ ನೀಡುವ ವೆಬ್ಸೈಟ್ಗಳ ವಿಷಯ, ಜೊತೆಗೆ ಬ್ರೌಸರ್ ಚಟುವಟಿಕೆ ಹಾಗೂ ಸಂವಹನಗಳನ್ನು ವೈಯಕ್ತೀಕರಣಕ್ಕಾಗಿ ಬಳಸುತ್ತದೆ</translation> <translation id="5833610766403489739">ಈ ಫೈಲ್ ಎಲ್ಲಿಯೋ ಹೋಗಿಬಿಟ್ಟಿದೆ. ನಿಮ್ಮ ಡೌನ್ಲೋಡ್ ಸ್ಥಳ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="5833726373896279253">ಈ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮಾಲೀಕರಿಂದ ಮಾತ್ರ ನವೀಕರಿಸಬಹುದಾಗಿದೆ:</translation> <translation id="5834581999798853053">ಸುಮಾರು <ph name="TIME" /> ನಿಮಿಷಗಳು ಉಳಿದಿವೆ</translation> @@ -3188,6 +3218,7 @@ <translation id="5908769186679515905">ಫ್ಲ್ಯಾಷ್ ರನ್ ಮಾಡುವಿಕೆಯಿಂದ ಸೈಟ್ಗಳನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation> <translation id="5910363049092958439">ಇದರಂತೆ ಇಮೇಜ್ ಉ&ಳಿಸಿ...</translation> <translation id="5911737117543891828">ತಾತ್ಕಾಲಿಕ Google ಡ್ರೈವ್ ಆಫ್ಲೈನ್ ಫೈಲ್ಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ. ಆಫ್ಲೈನ್ನಲ್ಲಿ ಲಭ್ಯವಿರುವುದಾಗಿ ನೀವು ಹೊಂದಿಸಿರುವ ಫೈಲ್ಗಳನ್ನು ಈ ಸಾಧನದಿಂದ ಅಳಿಸಲಾಗುವುದಿಲ್ಲ.</translation> +<translation id="5911887972742538906">ನಿಮ್ಮ Linux ಅಪ್ಲಿಕೇಶನ್ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಾಗ ಒಂದು ದೋಷ ಸಂಭವಿಸಿದೆ.</translation> <translation id="5912378097832178659">ಹುಡುಕಾಟ ಇಂಜಿನ್ ಅನ್ನು &ಸಂಪಾದಿಸಿ...</translation> <translation id="5914724413750400082">ಮಾಡ್ಯುಲಸ್ (<ph name="MODULUS_NUM_BITS" /> ಬಿಟ್ಗಳು): <ph name="MODULUS_HEX_DUMP" /> @@ -3374,6 +3405,7 @@ <translation id="6198102561359457428">ಸೈನ್ ಔಟ್ ಮಾಡಿ ನಂತರ ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಿ...</translation> <translation id="6198252989419008588">PIN ಬದಲಾಯಿಸು</translation> <translation id="6199801702437275229">ಅಂತರ ಮಾಹಿತಿಗಾಗಿ ನಿರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ...</translation> +<translation id="6201792273624501289">Linux ಆ್ಯಪ್ಗಳು</translation> <translation id="6204015976622790023">ನಿಮ್ಮ ಪರದೆಯಲ್ಲಿ ಇರುವ ವಿಷಯಕ್ಕೆ ಸಂಬಂಧಿಸಿದಂತೆ, ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್ನಿಂದ ಸೂಕ್ತ ಸಲಹೆಗಳನ್ನು ನೋಡಿ.</translation> <translation id="6205710420833115353">ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳು ನಿರೀಕ್ಷಿಸಿದ್ದಕ್ಕಿಂತಲೂ ಹೆಚ್ಚಿನ ಸಮಯವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ. ನೀವು ಅವುಗಳನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲು ಬಯಸುವಿರಾ?</translation> <translation id="6206311232642889873">ಇಮೇಜ್ ಅನ್ನು ನಕ&ಲಿಸಿ</translation> @@ -3848,6 +3880,7 @@ <translation id="6945221475159498467">ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="694592694773692225">ಈ ಪುಟದಲ್ಲಿ ಮರುನಿರ್ದೇಶಿಸುವಿಕೆಯನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation> <translation id="6949306908218145636">ತೆರೆದ ಪುಟಗಳನ್ನು ಬುಕ್ಮಾರ್ಕ್ ಮಾಡಿ...</translation> +<translation id="6950627417367801484">ಆ್ಯಪ್ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಿ</translation> <translation id="6951153907720526401">ಪಾವತಿ ಹ್ಯಾಂಡ್ಲರ್ಗಳು</translation> <translation id="6955446738988643816">ಪಾಪ್ಅಪ್ ಪರೀಕ್ಷಿಸಿ</translation> <translation id="6957231940976260713">ಸೇವೆಯ ಹೆಸರು</translation> @@ -3974,6 +4007,7 @@ <translation id="7127980134843952133">ಡೌನ್ಲೋಡ್ ಇತಿಹಾಸ</translation> <translation id="7131040479572660648">ನಿಮ್ಮ ಡೇಟಾವನ್ನು <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, ಮತ್ತು <ph name="WEBSITE_3" /> ನಲ್ಲಿ ಓದಿ</translation> <translation id="713122686776214250">&ಪುಟ ಸೇರಿಸು...</translation> +<translation id="7133578150266914903">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮುಂಚಿನ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗಿಸುತ್ತಿದ್ದಾರೆ (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">ಪಠ್ಯವನ್ನು ಚಿಕ್ಕದಾಗಿ ಮಾಡಿ</translation> <translation id="7136694880210472378">ಡಿಫಾಲ್ಟ್ ಮಾಡಿ</translation> <translation id="7136984461011502314"><ph name="PRODUCT_NAME" /> ಗೆ ಸ್ವಾಗತ</translation> @@ -4174,6 +4208,7 @@ <translation id="7463006580194749499">ವ್ಯಕ್ತಿಯನ್ನು ಸೇರಿಸು</translation> <translation id="7464490149090366184">ಜಿಪ್ ಮಾಡುವಿಕೆಯು ವಿಫಲಗೊಂಡಿದೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಐಟಂ: "$1"</translation> <translation id="7465778193084373987">Netscape ಪ್ರಮಾಣಪತ್ರ ಹಿಂತೆಗೆದುಕೊಳ್ಳುವಿಕೆ URL</translation> +<translation id="7469406957790636836">ಇದನ್ನು ಆನ್ ಮಾಡಲು, ಮೊದಲಿಗೆ <ph name="BEGIN_LINK" />ಭಾಷೆಗಳು ಮತ್ತು ಇನ್ಪುಟ್ನಲ್ಲಿ<ph name="END_LINK" /> ಕಾಗುಣಿತ ಪರೀಕ್ಷೆಯನ್ನು ಆನ್ ಮಾಡಿ</translation> <translation id="7469894403370665791">ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಈ ನೆಟ್ವರ್ಕ್ಗೆ ಸಂಪರ್ಕಿಸಿ</translation> <translation id="747114903913869239">ದೋಷ: ವಿಸ್ತರಣೆಯನ್ನು ಡಿಕೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ</translation> <translation id="7473753388963818366"><ph name="DEVICE_TYPE" /> ಅನ್ನು ನಿಮಗಾಗಿ ಸಿದ್ಧಪಡಿಸೋಣ</translation> @@ -4269,6 +4304,7 @@ <translation id="7606992457248886637">ಅಧಿಕಾರಿಗಳು</translation> <translation id="7607002721634913082">ವಿರಾಮದಲ್ಲಿದೆ</translation> <translation id="7607274158153386860">ಟ್ಯಾಬ್ಲೆಟ್ ಸೈಟ್ ಅನ್ನು ವಿನಂತಿಸಿ</translation> +<translation id="7609148976235050828">ದಯವಿಟ್ಟು ಇಂಟರ್ನೆಟ್ಗೆ ಸಂಪರ್ಕಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> <translation id="7611008212562900400">ನಿಮ್ಮ ಸಾಧನ, ಅಪ್ಲಿಕೇಶನ್ಗಳು, ವೆಬ್ ಅನ್ನು ಹುಡುಕಿ...</translation> <translation id="7616214729753637086">ಸಾಧನವನ್ನು ನೋಂದಾಯಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" ಗೆ ಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ</translation> @@ -4337,6 +4373,7 @@ <translation id="7730449930968088409">ನಿಮ್ಮ ಪರದೆಯ ವಿಷಯವನ್ನು ಸೆರೆಹಿಡಿಯಿರಿ</translation> <translation id="7730494089396812859">ಮೇಘ ಬ್ಯಾಕಪ್ ವಿವರಗಳನ್ನು ತೋರಿಸು</translation> <translation id="7732111077498238432">ನೆಟ್ವರ್ಕ್ ನೀತಿಯ ನಿಯಂತ್ರಣದಲ್ಲಿದೆ</translation> +<translation id="7737238973539693982">Linux (ಬೀಟಾ) ಅಳಿಸಿ</translation> <translation id="773905249182896430">ಅಪಾಯಕಾರಿ ಸೈಟ್ಗಳಿಂದ ನಿಮ್ಮನ್ನು ಮತ್ತು ನಿಮ್ಮ ಸಾಧನವನ್ನು ರಕ್ಷಿಸುತ್ತದೆ</translation> <translation id="7740996059027112821">ಪ್ರಮಾಣಿತ</translation> <translation id="7748528009589593815">ಹಿಂದಿನ ಟ್ಯಾಬ್</translation> @@ -4520,6 +4557,7 @@ <translation id="7974936243149753750">ಓವರ್ಸ್ಕ್ಯಾನ್</translation> <translation id="7977551819349545646">Chromebox ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="7978412674231730200">ಖಾಸಗಿ ಕೀಲಿ</translation> +<translation id="7978450511781612192">ಇದು ನಿಮ್ಮ Google ಖಾತೆಗಳಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ ಬುಕ್ಮಾರ್ಕ್ಗಳು, ಇತಿಹಾಸ, ಪಾಸ್ವರ್ಡ್ಗಳು ಹಾಗೂ ಹೆಚ್ಚಿನವುಗಳನ್ನು ಇನ್ನು ಮುಂದೆ ಸಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation> <translation id="7979036127916589816">ಸಿಂಕ್ ದೋಷ</translation> <translation id="7980084013673500153">ಸ್ವತ್ತು ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">ವೇಗವಾದ ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಹುಡುಕಾಟಕ್ಕಾಗಿ ಪುಟಗಳನ್ನು ಮುಂಚಿತವಾಗಿ ಲೋಡ್ ಮಾಡಿ</translation> @@ -4682,6 +4720,7 @@ <translation id="8226619461731305576">ಸರತಿ</translation> <translation id="8226742006292257240">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗೆ ಹೊಂದಿಸಲಾದ, ರ್ಯಾಂಡಮ್ ಆಗಿ ರಚಿಸಲಾದ TPM ಪಾಸ್ವರ್ಡ್ ಕೆಳಗಿದೆ:</translation> <translation id="8227119283605456246">ಫೈಲ್ ಲಗತ್ತಿಸಿ</translation> +<translation id="8230134520748321204"><ph name="ORIGIN" /> ಗಾಗಿ ಪಾಸ್ವರ್ಡ್ ಉಳಿಸುವುದೇ?</translation> <translation id="8234795456569844941">ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನಮ್ಮ ಇಂಜಿನಿಯರ್ಗಳಿಗೆ ಸಹಾಯ ಮಾಡಿ. ಪ್ರೊಫೈಲ್ ದೋಷ ಸಂದೇಶವನ್ನು ಪಡೆಯುವುದಕ್ಕೆ ಸ್ವಲ್ಪ ಮೊದಲು ಏನಾಯಿತು ಎಂದು ನಮಗೆ ತಿಳಿಸಿ:</translation> <translation id="8234989666557591529">ನಿಮ್ಮ <ph name="DEVICE_TYPE" /> ಅನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಲು ಫೋನ್ ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="8239020549147958415"><ph name="FULL_NAME" /> ಎಂಬುದಾಗಿ ಸಿಂಕ್ ಮಾಡಿ</translation> @@ -4801,6 +4840,7 @@ <translation id="8438328416656800239">ಸ್ಮಾರ್ಟ್ ಬ್ರೌಸರ್ಗೆ ಬದಲಿಸಿ</translation> <translation id="8438566539970814960">ಹುಡುಕಾಟಗಳನ್ನು ಮತ್ತು ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಉತ್ತಮಗೊಳಿಸುವಂತೆ ಮಾಡಿ</translation> <translation id="8439506636278576865">ಪುಟಗಳನ್ನು ಈ ಭಾಷೆಯಲ್ಲಿ ಅನುವಾದ ಮಾಡಲು ಅವಕಾಶ</translation> +<translation id="8440630305826533614">Linux ಆ್ಯಪ್ಗಳು</translation> <translation id="8446884382197647889">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation> <translation id="8447409163267621480">Ctrl ಅಥವಾ Alt ಅನ್ನು ಒಳಗೊಂಡಿದೆ</translation> <translation id="8448729345478502352">ನಿಮ್ಮ ಪರದೆಯ ಮೇಲೆ ಐಟಂಗಳನ್ನು ಸಣ್ಣದು ಅಥವಾ ದೊಡ್ಡದು ಮಾಡಿ</translation> @@ -4847,6 +4887,7 @@ <translation id="8497219075884839166">ವಿಂಡೋಗಳ ಸೌಲಭ್ಯಗಳು</translation> <translation id="8498214519255567734">ಮಂದ ಬೆಳಕಿನಲ್ಲಿಯೂ ನಿಮ್ಮ ಪರದೆಯನ್ನು ನೋಡಲು ಅಥವಾ ಓದಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ</translation> <translation id="8498395510292172881">Chrome ನಲ್ಲಿ ಓದುವುದನ್ನು ಮುಂದುವರಿಸಿ</translation> +<translation id="8502536196501630039">Google Play ನಿಂದ ಆ್ಯಪ್ಗಳನ್ನು ಬಳಸಲು, ಮೊದಲು ನಿಮ್ಮ ಆ್ಯಪ್ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸಬೇಕು. ಕೆಲವು ಡೇಟಾ ಕಳೆದುಹೋಗಿರಬಹುದು.</translation> <translation id="8503813439785031346">ಬಳಕೆದಾರಹೆಸರು</translation> <translation id="850875081535031620">ಯಾವುದೇ ಹಾನಿಕಾರಕ ಸಾಫ್ಟ್ವೇರ್ ಕಂಡುಬಂದಿಲ್ಲ</translation> <translation id="8509646642152301857">ಕಾಗುಣಿತ ಪರಿಶೀಲನೆ ನಿಘಂಟು ಡೌನ್ಲೋಡ್ ವಿಫಲವಾಗಿದೆ.</translation> @@ -4976,6 +5017,7 @@ <translation id="8698464937041809063">Google ರೇಖಾಚಿತ್ರ</translation> <translation id="869884720829132584">ಅಪ್ಲಿಕೇಶನ್ಗಳ ಮೆನು</translation> <translation id="869891660844655955">ಅವಧಿ ಮುಗಿಯುವ ದಿನಾಂಕ</translation> +<translation id="8699566574894671540">ಇದನ್ನು ಆನ್ ಮಾಡಲು, ಮೊದಲಿಗೆ ಎಡಿಟ್ ಮೆನುವಿನಲ್ಲಿ 'ಟೈಪ್ ಮಾಡುವಾಗ ಕಾಗುಣಿತ ಪರಿಶೀಲಿಸಿ' ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation> <translation id="870073306461175568">ನೆಟ್ವರ್ಕ್ ಫೈಲ್ ಹಂಚಿಕೆಗಳು</translation> <translation id="8701677791353449257">ಸಾಧನದ ಹೆಸರು, ರೆಗ್ಯುಲರ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ <ph name="REGEX" /> ಗೆ ಹೊಂದಾಣಿಕೆಯಾಗಬೇಕು.</translation> <translation id="8704521619148782536">ಇದು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತಿದೆ. ನೀವು ನಿರೀಕ್ಷಿಸಬಹುದು, ಅಥವಾ ರದ್ದುಪಡಿಸಿ ನಂತರ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಬಹುದು.</translation> @@ -5015,6 +5057,7 @@ <p>ಆದರೆ ಆದೇಶ ಸಾಲಿನ ಮೂಲಕ ನೀವು ಇನ್ನೂ ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾಗಿದೆ. ಫ್ಲ್ಯಾಗ್ಗಳು ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್ಗಳ ಕುರಿತ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ದಯವಿಟ್ಟು <code>ಕೈಪಿಡಿ <ph name="PRODUCT_BINARY_NAME" /> </code> ಅನ್ನು ವೀಕ್ಷಿಸಿ.</p></translation> <translation id="8755376271068075440">&ದೊಡ್ಡದು</translation> +<translation id="8756969031206844760">ಪಾಸ್ವರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?</translation> <translation id="8757090071857742562">ಡೆಸ್ಕ್ಟಾಪ್ ಬಿತ್ತರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನಿಮ್ಮ ಪರದೆ ಹಂಚಿಕೊಳ್ಳುವದನ್ನು ಪ್ರಾರಂಭಿಸಲು ನೀವು ಖಚಿತಪಡಿಸಿರುವಿರಾ ಎಂಬುದನ್ನು ಪರಿಶೀಲಿಸಿ.</translation> <translation id="8757640015637159332">ಸಾರ್ವಜನಿಕ ಸೆಷನ್ ನಮೂದಿಸಿ</translation> <translation id="8757742102600829832">ಇದಕ್ಕೆ ಸಂಪರ್ಕಪಡಿಸಲು Chromebox ಆಯ್ಕೆಮಾಡಿ</translation> @@ -5171,7 +5214,9 @@ <translation id="9009369504041480176">ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತಿದೆ (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">ಯಾವಾಗಲೂ ಐಕಾನ್ ತೋರಿಸು</translation> <translation id="9011178328451474963">ಹಿಂದಿನ ಟ್ಯಾಬ್</translation> +<translation id="9013707997379828817">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮುಂಚಿನ ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ಹಿಂತಿರುಗಿಸಿದ್ದಾರೆ. ದಯವಿಟ್ಟು ಪ್ರಮುಖ ಫೈಲ್ಗಳನ್ನು ಉಳಿಸಿ, ನಂತರ ಮರುಪ್ರಾರಂಭಿಸಿ. ಸಾಧನದಲ್ಲಿನ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಅಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="9014987600015527693">ಮತ್ತೊಂದು ಫೋನ್ ತೋರಿಸಿ</translation> +<translation id="9018218886431812662">ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಿಕೆಯು ಪೂರ್ಣಗೊಂಡಿದೆ</translation> <translation id="901834265349196618">ಇಮೇಲ್</translation> <translation id="9019062154811256702">ಸ್ವಯಂ ಭರ್ತಿ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಓದಿ ಮತ್ತು ಬದಲಾಯಿಸಿ</translation> <translation id="9020362265352758658">4x</translation> @@ -5195,6 +5240,7 @@ <translation id="9038649477754266430">ಪುಟಗಳನ್ನು ಹೆಚ್ಚು ವೇಗವಾಗಿ ಲೋಡ್ ಮಾಡಲು ಮುನ್ನೋಟಗಳನ್ನು ಬಳಸಿ</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">ಟ್ಯಾಬ್ಗಳನ್ನು ಮ್ಯೂಟ್ ಮಾಡಿ</translation> +<translation id="9040661932550800571"><ph name="ORIGIN" /> ಗಾಗಿ ಪಾಸ್ವರ್ಡ್ ಅಪ್ಡೇಟ್ ಮಾಡುವುದೇ?</translation> <translation id="9041692268811217999">ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಸ್ಥಳೀಯ ಫೈಲ್ಗಳಿಗೆ ಪ್ರವೇಶಿಸುವುದನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation> <translation id="9042893549633094279">ಗೌಪ್ಯತೆ ಮತ್ತು ಭದ್ರತೆ</translation> <translation id="904451693890288097">ದಯವಿಟ್ಟು "<ph name="DEVICE_NAME" />" ಗಾಗಿ PIN ಅನ್ನು ನಮೂದಿಸಿ:</translation> @@ -5300,6 +5346,7 @@ <translation id="9203478404496196495">ಟ್ಯಾಬ್ ಅನ್ನು ಅನ್ ಮ್ಯೂಟ್ ಮಾಡಿ</translation> <translation id="9203904171912129171">ಸಾಧನವನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="9203962528777363226">ಈ ಸಾಧನದ ನಿರ್ವಾಹಕರು ಸೇರಿಸುವ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation> +<translation id="9213073329713032541">ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಿಕೆಯು ಯಶಸ್ವಿಯಾಗಿ ಆರಂಭಗೊಂಡಿದೆ.</translation> <translation id="9214520840402538427">ಓಹ್! ಸ್ಥಾಪನೆ-ಸಮಯದ ಲಕ್ಷಣಗಳ ಸ್ಥಾಪನೆಯ ಅವಧಿ ಮುಗಿದಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation> <translation id="9214695392875603905">Cupcake</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ಸೇರಿಸಲಾಗಿದೆ</translation> @@ -5354,6 +5401,7 @@ <translation id="988978206646512040">ಖಾಲಿ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ</translation> <translation id="992032470292211616">ವಿಸ್ತರಣೆಗಳು, ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಥೀಮ್ಗಳು ನಿಮ್ಮ ಸಾಧನಕ್ಕೆ ಹಾನಿಯುಂಟು ಮಾಡಬಹುದು. ಮುಂದುವರಿಯಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?</translation> <translation id="992592832486024913">ChromeVox ನಿಷ್ಕ್ರಿಯಗೊಳಿಸು (ಮಾತಿನ ಪ್ರತಿಕ್ರಿಯೆ)</translation> +<translation id="993540765962421562">ಇನ್ಸ್ಟಾಲ್ ಮಾಡುವಿಕೆಯು ಪ್ರಗತಿಯಲ್ಲಿದೆ</translation> <translation id="994289308992179865">&ಲೂಪ್</translation> <translation id="996250603853062861">ಸುರಕ್ಷಿತ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="998747458861718449">ಪ&ರಿಶೀಲಿಸಿ</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb index 56f94aa..cf26eca 100644 --- a/chrome/app/resources/generated_resources_lt.xtb +++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Ieškoma...</translation> <translation id="1316495628809031177">Sinchronizavimas pristabdytas</translation> <translation id="1319979322914001937">Programa, kuri rodo filtruotą plėtinių iš „Chrome“ internetinės parduotuvės sąrašą. Sąraše rodomus plėtinius galima įdiegti tiesiogiai iš programos.</translation> +<translation id="1322046419516468189">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Prisijunkite prie „Chrome“, kad pasiektumėte skirtukus iš kitų įrenginių.</translation> <translation id="1327074568633507428">„Google“ spausdinimo iš debesies spausdintuvas</translation> <translation id="1327977588028644528">Tinklų sietuvas</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">P&agalbos centras</translation> <translation id="162035744160882748">Įjunkite sinchronizavimą, suasmeninimą ir kitas „Google“ paslaugas</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Vaizdai šiuo metu nepasiekiami. Prisijunkite prie interneto iš naujo ir peržiūrėkite ekrano fonų kolekcijas.</translation> <translation id="1624026626836496796">Tai reikia padaryti tik kartą. Be to, jūsų prisijungimo duomenys išsaugoti nebus.</translation> <translation id="1627276047960621195">Failų deskriptoriai</translation> <translation id="1627408615528139100">Jau atsisiųsta</translation> <translation id="1632803087685957583">Suteikiama galimybė koreguoti klaviatūros kartojimo dažnį, žodžių numatymą ir daugiau</translation> <translation id="1635033183663317347">Įdiegė jūsų prižiūrėtojas.</translation> +<translation id="1635885551358739414">„Google“ gali naudoti jūsų lankomų svetainių turinį ir naršyklės veiklą bei sąveikas suasmenindama „Chrome“ ir kitas „Google“ paslaugas, pvz., Vertėją, Paiešką bei skelbimus. Tai bet kada galite tinkinti skiltyje „Nustatymai“.</translation> <translation id="1637224376458524414">Gaukite šią žymę „iPhone“ įrenginyje</translation> <translation id="1637765355341780467">Atidarant profilį įvyko klaida. Kai kurios funkcijos gali būti nepasiekiamos.</translation> <translation id="1639239467298939599">Įkeliama</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Slaptažodis per trumpas.</translation> <translation id="1661867754829461514">Trūksta PIN kodo</translation> <translation id="16620462294541761">Atsiprašome, slaptažodžio patvirtinti nepavyko. Bandykite dar kartą.</translation> +<translation id="1662550410081243962">Išsaugoti ir užpildyti mokėjimo metodų informaciją</translation> <translation id="166278006618318542">Subjekto privačiojo rakto algoritmas</translation> <translation id="166439687370499867">Neleidžiama keisti bendrinamo tinklo konfigūracijos</translation> <translation id="1665611772925418501">Nepavyko pakeisti failo.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> nori sužinoti jūsų saugos rakto tipą ir modelį</translation> <translation id="167832068858235403">maž. garsumą</translation> <translation id="1679068421605151609">Kūrėjo įrankiai</translation> +<translation id="1680849702532889074">Įdiegiant „Linux“ programą įvyko klaida.</translation> <translation id="16815041330799488">Neleisti svetainėms peržiūrėti teksto ir vaizdų, nukopijuotų į iškarpinę</translation> <translation id="1682548588986054654">Naujas inkognito langas</translation> <translation id="168715261339224929">Jei norite gauti žymes visuose įrenginiuose, įjunkite sinchronizavimą.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Atsegti skirtukus</translation> <translation id="1734824808160898225">„<ph name="PRODUCT_NAME" />“ gali nesugebėti atsinaujinti</translation> <translation id="1736419249208073774">Naršyti</translation> +<translation id="1736827427463982819">Išjungti „Linux“ (beta vers.)</translation> <translation id="1737968601308870607">Failo riktas</translation> <translation id="1741314857973421784">Tęsti</translation> <translation id="174173592514158117">Rodyti visus „Play“ aplankus</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> prašo leidimo nuolat saugoti daug duomenų vietiniame kompiuteryje</translation> <translation id="1997616988432401742">Jūsų sertifikatai</translation> <translation id="1999115740519098545">Paleidžiant</translation> +<translation id="2000419248597011803">Numatytajam paieškos varikliui siunčiami kai kurie slapukai ir į adreso juostą bei paieškos laukelį įvestos paieškos</translation> <translation id="2001796770603320721">Tvarkyti Diske</translation> <translation id="2004663115385769400">Nepavyko atidaryti naudojant „$1“</translation> <translation id="200544492091181894">Tai vėliau galėsite pakeisti nustatymuose</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Tęsti slapukų blokavimą</translation> <translation id="204622017488417136">Įrenginyje bus grąžinta anksčiau įdiegta „Chrome“ versija. Visos naudotojų paskyros ir vietiniai duomenys bus pašalinti. Šio veiksmo anuliuoti negalėsite.</translation> <translation id="2048182445208425546">Pasiekti tinklo srautą</translation> +<translation id="2048653237708779538">Negalima atlikti veiksmo</translation> <translation id="204914487372604757">Kurti spartųjį klavišą</translation> <translation id="2050339315714019657">Stačias</translation> <translation id="2053312383184521053">Neveikos būsenos duomenys</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Adresu <ph name="PEPPER_PLUGIN_DOMAIN" /> esantis papildinys „<ph name="PEPPER_PLUGIN_NAME" />“ nori pasiekti kompiuterį</translation> <translation id="2178614541317717477">CA pažeidimo galimybė</translation> <translation id="218070003709087997">Skaičiumi nurodykite, kiek kopijų spausdinti (nuo 1 iki 999).</translation> +<translation id="2183558561014688873">Pasiekite Padėjėją bet kuriuo metu pasakę „Ok Google“, kai įrenginys veikia ir yra neužrakintas.</translation> <translation id="2187895286714876935">Serverio sertifikato importavimo klaida</translation> <translation id="2187906491731510095">Plėtiniai atnaujinti</translation> <translation id="2188881192257509750">Atidaryti „<ph name="APPLICATION" />“</translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">GPU procesas</translation> <translation id="2282155092769082568">Automatinės konfigūracijos URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Išsaugoti ir užpildyti adresus</translation> <translation id="2286841657746966508">Atsiskaitymo adresas</translation> <translation id="2288181517385084064">Perjungti į vaizdo įrašymo priemonę</translation> <translation id="2288735659267887385">Pasiekiamumo nustatymai</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Bendras failų dydis</translation> <translation id="2428510569851653187">Apibūdinkite, ką darėte, kai skirtukas užstrigo</translation> <translation id="2431027948063157455">Nepavyko įkelti „Google“ padėjėjo, patikrinkite tinklo ryšį ir bandykite dar kartą.</translation> +<translation id="2432753757290432042">Būtina atnaujinti „Linux“ (beta vers.)</translation> <translation id="2433452467737464329">Pridėkite užklausos parametrą prie URL, kad puslapis būtų automatiškai atnaujinamas: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Išvaizda</translation> <translation id="2433836460518180625">Atrakinti tik įrenginį</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Kontrolinių kodų redagavimas</translation> <translation id="2776441542064982094">Atrodo, kad nėra įrenginių, kuriuos būtų galima užregistruoti tinkle. Jei įrenginys yra įjungtas ir prisijungęs prie interneto, pabandykite jį užregistruoti naudodami instrukcijų vadove pateiktomis instrukcijomis.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Įdiegiant „Linux“ programą įvyko klaida</translation> <translation id="2783298271312924866">Atsisiųsta</translation> <translation id="2783321960289401138">Kurti spartųjį klavišą...</translation> <translation id="2783829359200813069">Šifruotės tipų pasirinkimas</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Bandykite atsijungti ir vėl prisijungti</translation> <translation id="2812989263793994277">Nerodyti jokių vaizdų</translation> <translation id="2814489978934728345">Nutraukti šio puslapio įkėlimą</translation> +<translation id="281504910091592009">Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="BEGIN_LINK" />„Google“ paskyroje<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Žymų juosta</translation> <translation id="2815693974042551705">Žymių aplankas</translation> <translation id="2818476747334107629">Išsami spausdintuvo informacija</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Rodyti pasiekiamus „Bluetooth“ įrenginius</translation> <translation id="2941112035454246133">Žema</translation> <translation id="2942560570858569904">Laukiama...</translation> +<translation id="2942581856830209953">Tinkinti šį puslapį</translation> <translation id="2943400156390503548">Skaidrės</translation> <translation id="2943503720238418293">Naudokite trumpesnį pavadinimą</translation> <translation id="2946119680249604491">Pridėti ryšį</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Slaptažodis:</translation> <translation id="3694027410380121301">Pasirinkti ankstesnį skirtuką</translation> <translation id="3699624789011381381">El. pašto adresas</translation> +<translation id="3699920817649120894">Išjungti sinchronizavimą ir suasmeninimą?</translation> <translation id="3700888195348409686">Pristatoma (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Paleidimo puslapiai pakeisti siekiant įtraukti <ph name="URL" />.</translation> <translation id="370415077757856453">„JavaScript“ užblokuotas</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Visas ekranas</translation> <translation id="3828029223314399057">Ieškoti žymėse</translation> <translation id="3830674330436234648">Atkūrimas nepasiekiamas</translation> +<translation id="3831436149286513437">„Google“ disko paieškos pasiūlymai</translation> <translation id="3831486154586836914">Įjungtas lango apžvalgos režimas</translation> <translation id="383161972796689579">Šio įrenginio savininkas neleido pridėti naujų naudotojų</translation> <translation id="3834775135533257713">Nepavyko pridėti programos „<ph name="TO_INSTALL_APP_NAME" />“, nes ji nesuderinama su „<ph name="INSTALLED_APP_NAME" />“.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Žemiausias</translation> <translation id="3872220884670338524">Daugiau veiksmų, išsaugota <ph name="USERNAME" /> (<ph name="DOMAIN" />) paskyra</translation> <translation id="3872991219937722530">Atlaisvinkite vietos diske arba įrenginys nebeatsakys.</translation> +<translation id="3873315167136380065">Norėdami tai įjungti <ph name="BEGIN_LINK" />nustatykite sinchronizavimą iš naujo<ph name="END_LINK" />, kad pašalintumėte sinchronizavimo slaptafrazę</translation> <translation id="3878840326289104869">Kuriamas prižiūrimas naudotojas</translation> <translation id="3879748587602334249">Atsisiuntimų tvarkytuvė</translation> <translation id="3880709822663530586">Saugos raktas veikia, tik kai įrenginio „Bluetooth“ įjungtas</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Išsaugoti kontroliniai kodai</translation> <translation id="407173827865827707">Spustelėjus</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: prisijungimo klaida</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">El. laiškus pasirašančiojo sertifikatas</translation> <translation id="407520071244661467">Mastelis</translation> <translation id="4075639477629295004">Nepavyko perduoti „<ph name="FILE_NAME" />“.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Peržiūrėkite nustatymus kitame ekrane</translation> <translation id="4193154014135846272">„Google“ dokumentas</translation> <translation id="4194570336751258953">Įgalinti paspaudimą palietus</translation> +<translation id="4195249722193633765">Programos diegimas sistemoje „Linux“ (beta vers.)</translation> <translation id="4195643157523330669">Atidaryti naujame skirtuke</translation> <translation id="4195814663415092787">Tęskite ten, kur baigėte</translation> <translation id="4197674956721858839">„Zip“ archyvo failų pasirinkimas</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">8 lentynos elementas</translation> <translation id="4287502004382794929">Neturite pakankamai programinės įrangos licencijų, kad galėtumėte priregistruoti šį įrenginį. Susisiekite su pardavimo skyriumi, kad įsigytumėte daugiau. Jei manote, kad šį pranešimą gavote per klaidą, susisiekite su palaikymo tarnyba.</translation> <translation id="4289540628985791613">Apžvalga</translation> +<translation id="4295072614469448764">Programa pasiekiama jūsų terminale. Piktograma taip pat gali būti Paleidimo priemonėje.</translation> <translation id="4296575653627536209">Pridėti prižiūrimą naudotoją</translation> +<translation id="4297219207642690536">Paleisti ir nustatyti iš naujo</translation> <translation id="4297322094678649474">Keisti kalbas</translation> <translation id="4300305918532693141">Kad pakeistumėte šį nustatymą, <ph name="BEGIN_LINK" />iš naujo nustatykite sinchronizavimą<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">ilga (2 sek.)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Įvestas slaptažodis neatitinka el. pašto adreso</translation> <translation id="437184764829821926">Išplėstiniai šrifto nustatymai</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">„Linux“ diegimo programa</translation> <translation id="4375035964737468845">Atidaryti atsisiųstus failus</translation> <translation id="4377363674125277448">Iškilo su serverio sertifikatu susijusi problema.</translation> <translation id="4378154925671717803">Telefonas</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">„Bluetooth“ įrenginio susiejimas</translation> <translation id="4579581181964204535">Nepavyko perduoti <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Ar tikrai norite ištrinti $1 elementus?</translation> +<translation id="4582497162516204941">Diegimas sistemoje „Linux“ (beta vers.)</translation> <translation id="4582563038311694664">Nustatyti visus nustatymus iš naujo</translation> <translation id="4585793705637313973">Redaguoti puslapį</translation> <translation id="4589268276914962177">Naujas terminalas</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Numatytasis oranžinis pseudoportretas</translation> <translation id="4955814292505481804">Metinė licencija</translation> <translation id="4957949153200969297">Įgalinti tik funkcijas, susijusias su „<ph name="IDS_SHORT_PRODUCT_NAME" />“ sinchronizavimu</translation> +<translation id="4959262764292427323">Slaptažodžiai išsaugoti „Google“ paskyroje, todėl galite juos naudoti bet kuriame įrenginyje</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Pasirinktame aplanke yra slaptų failų. Ar tikrai norite „$1“ suteikti nuolatinę šio aplanko skaitymo prieigą?</translation> <translation id="4964455510556214366">Išdėstymas</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Pasikeitė sinchronizavimo, suasmeninimo ir kitų „Google“ paslaugų, naudojamų naršyklėje „Chrome“, valdymo nustatymai. Tai gali turėti įtakos jūsų dabartiniams nustatymams.</translation> <translation id="5241128660650683457">Skaityti visus duomenis svetainėse, kuriose apsilankote</translation> <translation id="5242724311594467048">Įgalinti „<ph name="EXTENSION_NAME" />“?</translation> +<translation id="5243522832766285132">Po kelių minučių bandykite dar kartą</translation> <translation id="5244474230056479698">Sinchronizavimas su <ph name="EMAIL" /></translation> <translation id="5246282308050205996">„<ph name="APP_NAME" />“ užstrigo. Jei norite iš naujo paleisti programą, spustelėkite šį debesėlį.</translation> <translation id="5247051749037287028">Rodomas pavadinimas (neprivaloma)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Tai gali šiek tiek užtrukti.</translation> <translation id="5264252276333215551">Prisijunkite prie interneto, kad paleistumėte savo programą viešojo terminalo režimu.</translation> <translation id="5265562206369321422">Neprijungta daugiau nei savaitę</translation> +<translation id="5265797726250773323">Diegiant įvyko klaida</translation> <translation id="5266113311903163739">Sertifikavimo institucijos importavimo klaida</translation> <translation id="5269977353971873915">Spausdinant įvyko klaida</translation> <translation id="5271549068863921519">Išsaugoti slaptažodį</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatuoti šį įrenginį</translation> <translation id="5292195676005197571">Dauguma raktų naudojami tiesiog paspaudus mygtuką</translation> <translation id="5293170712604732402">Atkurti pradinius numatytuosius nustatymus</translation> +<translation id="5297082477358294722">Slaptažodis išsaugotas. Peržiūrėkite ir tvarkykite išsaugotus slaptažodžius <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Temą sukūrė</translation> <translation id="5299109548848736476">Nestebėti</translation> <translation id="5299682071747318445">Visi duomenys užšifruoti naudojant sinchronizavimo slaptafrazę</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> nori naudoti kompiuterio vietovę</translation> <translation id="5612734644261457353">Deja, jūsų slaptažodžio patvirtinti vis tiek nepavyko. Pastaba: jei neseniai pakeitėte slaptažodį, naujas slaptažodis bus taikomas, kai atsijungsite. Čia naudokite senąjį slaptažodį.</translation> <translation id="5614190747811328134">Naudotojo pastaba</translation> +<translation id="5614553682702429503">Išsaugoti slaptažodį?</translation> <translation id="561698261642843490">„Firefox“ uždarymas</translation> <translation id="5618075537869101857">Deja, nepavyko paleisti viešojo terminalo programos.</translation> <translation id="5618333180342767515">(tai gali užtrukti kelias minutes)</translation> @@ -3043,6 +3071,7 @@ <translation id="5677503058916217575">Puslapio kalba:</translation> <translation id="5677928146339483299">Užblokuota</translation> <translation id="5678550637669481956">„<ph name="VOLUME_NAME" />“ suteiktas leidimas skaityti ir rašyti.</translation> +<translation id="5678784840044122290">„Linux“ programa pasiekiama jūsų terminale ir piktograma taip pat gali būti rodoma Paleidimo priemonėje.</translation> <translation id="5678955352098267522">Skaityti duomenis svetainėje <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Ištekliaus identifikatorius</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Negalima atsijungti nuo archyvo ar virtualiojo disko<ph name="END_BOLD" /> @@ -3138,6 +3167,7 @@ <translation id="5832805196449965646">Pridėti asmenį</translation> <translation id="583281660410589416">Nežinoma</translation> <translation id="5832976493438355584">Užrakinta</translation> +<translation id="5833397272224757657">Naudojamas svetainių, kuriose lankotės, turinys ir naršyklės veikla bei sąveikos suasmeninimo tikslais</translation> <translation id="5833610766403489739">Šis failas kažkur perkeltas. Patikrinkite atsisiuntimo vietos nustatymą ir bandykite dar kartą.</translation> <translation id="5833726373896279253">Šiuos nustatymus gali keisti tik savininkas:</translation> <translation id="5834581999798853053">Liko apie <ph name="TIME" /> min.</translation> @@ -3191,6 +3221,7 @@ <translation id="5908769186679515905">Užblokuoti svetaines, kad nebūtų galima vykdyti „Flash“</translation> <translation id="5910363049092958439">Iš&saugoti vaizdą kaip...</translation> <translation id="5911737117543891828">Neprisijungus pasiekiami failai, esantys „Google“ diske, bus laikinai ištrinti. Failai, kuriuos nustatėte kaip pasiekiamus neprisijungus, iš įrenginio nebus ištrinti.</translation> +<translation id="5911887972742538906">Diegiant „Linux“ programą įvyko klaida.</translation> <translation id="5912378097832178659">&Redaguoti paieškos sistemas...</translation> <translation id="5914724413750400082">Modulis (<ph name="MODULUS_NUM_BITS" /> bit.): <ph name="MODULUS_HEX_DUMP" /> @@ -3377,6 +3408,7 @@ <translation id="6198102561359457428">Atsijunkite, tada vėl prisijunkite...</translation> <translation id="6198252989419008588">Keisti PIN kodą</translation> <translation id="6199801702437275229">Laukiama vietos informacijos...</translation> +<translation id="6201792273624501289">„Linux“ programos</translation> <translation id="6204015976622790023">Matykite su ekrano turiniu susijusius pasiūlymus iš Padėjėjo.</translation> <translation id="6205710420833115353">Kai kurios operacijos trunka ilgiau nei tikėtasi. Ar norite jas nutraukti?</translation> <translation id="6206311232642889873">Kopijuo&ti vaizdą</translation> @@ -3853,6 +3885,7 @@ <translation id="6945221475159498467">Pasirinkti</translation> <translation id="694592694773692225">Peradresavimas užblokuotas šiame puslapyje.</translation> <translation id="6949306908218145636">Pažymėti atidarytus puslapius...</translation> +<translation id="6950627417367801484">Atkurti programas</translation> <translation id="6951153907720526401">Mokėjimų doroklės</translation> <translation id="6955446738988643816">Tikrinti iššokantįjį langą</translation> <translation id="6957231940976260713">Paslaugos pavadinimas</translation> @@ -3978,6 +4011,7 @@ <translation id="7127980134843952133">Atsisiuntimų istorija</translation> <translation id="7131040479572660648">Skaityti duomenis svetainėse <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> ir <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Pridėti pu&slapį...</translation> +<translation id="7133578150266914903">Administratorius atkuria šį įrenginį (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Sumažinti tekstą</translation> <translation id="7136694880210472378">Padaryti numatytuoju</translation> <translation id="7136984461011502314">Sveiki! Tai - <ph name="PRODUCT_NAME" /></translation> @@ -4178,6 +4212,7 @@ <translation id="7463006580194749499">Pridėti asmenį</translation> <translation id="7464490149090366184">Archyvuojant įvyko klaida, elementas yra: „$1“.</translation> <translation id="7465778193084373987">„Netscape“ sertifikato panaikinimo URL</translation> +<translation id="7469406957790636836">Norėdami tai įjungti, pirmiausia įjunkite rašybos tikrinamą skiltyje <ph name="BEGIN_LINK" />„Kalbos ir įvestis“<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Automatiškai prisijungti prie šio tinklo</translation> <translation id="747114903913869239">Klaida: neįmanoma iššifruoti plėtinio</translation> <translation id="7473753388963818366">Paruoškime naudoti „<ph name="DEVICE_TYPE" />“</translation> @@ -4275,6 +4310,7 @@ <translation id="7606992457248886637">Įstaigos</translation> <translation id="7607002721634913082">Pristabdyta</translation> <translation id="7607274158153386860">Pateikti paraišką dėl planšetinio kompiuterio svetainės</translation> +<translation id="7609148976235050828">Prisijunkite prie interneto ir bandykite dar kartą.</translation> <translation id="7611008212562900400">Ieškokite įrenginyje, programose, žiniatinklyje...</translation> <translation id="7616214729753637086">Registruojamas įrenginys...</translation> <translation id="7617366389578322136">Prisijungiama prie „<ph name="DEVICE_NAME" />“</translation> @@ -4343,6 +4379,7 @@ <translation id="7730449930968088409">Fiksuokite savo ekrano turinį</translation> <translation id="7730494089396812859">Rodyti išsamią atsarginių kopijų kūrimo debesyje informaciją</translation> <translation id="7732111077498238432">Tinklą valdo politika</translation> +<translation id="7737238973539693982">„Linux“ (beta vers.) ištrynimas</translation> <translation id="773905249182896430">Apsaugo jus ir jūsų įrenginį nuo pavojingų svetainių</translation> <translation id="7740996059027112821">Standartinis</translation> <translation id="7748528009589593815">Ankstesnis skirtukas</translation> @@ -4531,6 +4568,7 @@ <translation id="7974936243149753750">Sritis aplink vaizdo kraštus</translation> <translation id="7977551819349545646">Atnaujinamas „Chromebox“…</translation> <translation id="7978412674231730200">Asmeninis raktas</translation> +<translation id="7978450511781612192">Atlikę šį veiksmą būsite atjungti nuo „Google“ paskyrų. Žymės, istorija, slaptažodžiai ir kt. nebebus sinchronizuojama.</translation> <translation id="7979036127916589816">Sinchronizavimo klaida</translation> <translation id="7980084013673500153">Ištekliaus ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Iš anksto įkelti puslapius, kad naršymo ir paieškos procesai vyktų greičiau</translation> @@ -4695,6 +4733,7 @@ <translation id="8226619461731305576">Eilė</translation> <translation id="8226742006292257240">Toliau pateikiamas kompiuteriui priskirtas atsitiktinai sugeneruotas TPM slaptažodis:</translation> <translation id="8227119283605456246">Pridėtas failas</translation> +<translation id="8230134520748321204">Išsaugoti <ph name="ORIGIN" /> slaptažodį?</translation> <translation id="8234795456569844941">Padėkite inžinieriams išspręsti šią problemą. Papasakokite, kas vyko prieš parodant profilio klaidos pranešimą:</translation> <translation id="8234989666557591529">Pasirinkite telefoną, kad atrakintumėte „<ph name="DEVICE_TYPE" />“</translation> <translation id="8239020549147958415">Sinchronizuoti kaip <ph name="FULL_NAME" /></translation> @@ -4813,6 +4852,7 @@ <translation id="8438328416656800239">Perjunkite į išmanią naršyklę</translation> <translation id="8438566539970814960">Tobulinti paieškas ir naršymą</translation> <translation id="8439506636278576865">Siūlyti versti puslapius šia kalba</translation> +<translation id="8440630305826533614">„Linux“ programos</translation> <translation id="8446884382197647889">Sužinokite daugiau</translation> <translation id="8447409163267621480">Naudokite „Ctrl“ arba „Alt“</translation> <translation id="8448729345478502352">Padidinkite arba sumažinkite elementus ekrane</translation> @@ -4857,6 +4897,7 @@ <translation id="8497219075884839166">„Windows“ paslaugų programos</translation> <translation id="8498214519255567734">Padaryti, kad būtų patogiau žiūrėti į ekraną ar skaityti prietemoje</translation> <translation id="8498395510292172881">Toliau skaitykite naudodami „Chrome“</translation> +<translation id="8502536196501630039">Norėdami naudoti programas iš „Google Play“, pirmiausia turite atkurti programas. Kai kurie duomenys gali būti prarasti.</translation> <translation id="8503813439785031346">Vartotojo vardas</translation> <translation id="850875081535031620">Neaptikta kenkėjiškos programinės įrangos</translation> <translation id="8509646642152301857">Atsisiunčiant rašybos tikrinimo žodyną įvyko klaida.</translation> @@ -4986,6 +5027,7 @@ <translation id="8698464937041809063">„Google“ piešinys</translation> <translation id="869884720829132584">Programų meniu</translation> <translation id="869891660844655955">Galiojimo data</translation> +<translation id="8699566574894671540">Norėdami tai įjungti, pirmiausia pasirinkite parinktį „Check spelling while typing“, esančią meniu „Edit“</translation> <translation id="870073306461175568">Tinklo failų bendrinimas</translation> <translation id="8701677791353449257">Įrenginio pavadinimas turi atitikti reguliarųjį reiškinį „<ph name="REGEX" />“.</translation> <translation id="8704521619148782536">Tai trunka ilgiau nei paprastai. Galite palaukti arba atšaukti ir vėliau bandyti dar kartą.</translation> @@ -5025,6 +5067,7 @@ <p>Vis tiek galite konfigūruoti naudodami komandų eilutę. Žr. <code><ph name="PRODUCT_BINARY_NAME" /></code>, jei norite gauti daugiau informacijos apie žymas ir aplinkos variantus.</translation> <translation id="8755376271068075440">&Didesnis</translation> +<translation id="8756969031206844760">Atnaujinti slaptažodį?</translation> <translation id="8757090071857742562">Nepavyko perduoti stalinio kompiuterio ekrano vaizdo. Patikrinkite, ar patvirtinote raginimą pradėti bendrinti ekraną.</translation> <translation id="8757640015637159332">Pradėti viešą sesiją</translation> <translation id="8757742102600829832">Pasirinkite „Chromebox“, prie kurio reikia prisijungti</translation> @@ -5181,7 +5224,9 @@ <translation id="9009369504041480176">Įkeliama (<ph name="PROGRESS_PERCENT" /> %)...</translation> <translation id="9011163749350026987">Visada rodyti piktogramą</translation> <translation id="9011178328451474963">Paskutinis skirtukas</translation> +<translation id="9013707997379828817">Administratorius atkūrė šį įrenginį. Išsaugokite svarbius failus, tada paleiskite jį iš naujo. Visi šiame įrenginyje esantys duomenys bus ištrinti.</translation> <translation id="9014987600015527693">Rodyti kitą telefoną</translation> +<translation id="9018218886431812662">Diegimas baigtas</translation> <translation id="901834265349196618">El. paštas</translation> <translation id="9019062154811256702">Skaityti ir pakeisti automatinio pildymo nustatymus</translation> <translation id="9020362265352758658">4 k.</translation> @@ -5205,6 +5250,7 @@ <translation id="9038649477754266430">Naudokite numatymo paslaugą, kad puslapiai būtų įkeliami greičiau</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Nutildyti skirtukų garsą</translation> +<translation id="9040661932550800571">Atnaujinti <ph name="ORIGIN" /> slaptažodį?</translation> <translation id="9041692268811217999">Administratorius neleidžia prieigos prie vietinių failų įrenginyje</translation> <translation id="9042893549633094279">Privatumas ir sauga</translation> <translation id="904451693890288097">Įveskite „<ph name="DEVICE_NAME" />“ prieigos raktą:</translation> @@ -5309,6 +5355,7 @@ <translation id="9203478404496196495">Įjungti garsą skirtuke</translation> <translation id="9203904171912129171">Pasirinkti įrenginį</translation> <translation id="9203962528777363226">Šio įrenginio administratorius neleido pridėti naujų naudotojų</translation> +<translation id="9213073329713032541">Diegimas sėkmingai pradėtas.</translation> <translation id="9214520840402538427">Oi! Diegimo trukmės atributų iniciacijos laikas baigėsi. Susisiekite su palaikymo komandos atstovu.</translation> <translation id="9214695392875603905">Keksinis pyragaitis</translation> <translation id="9215293857209265904">Pridėtas „<ph name="EXTENSION_NAME" />“</translation> @@ -5363,6 +5410,7 @@ <translation id="988978206646512040">Neleidžiama naudoti tuščio slaptafrazės lauko</translation> <translation id="992032470292211616">Plėtiniai, programos ir temos gali pakenkti įrenginiui. Tikrai norite tęsti?</translation> <translation id="992592832486024913">Išjungti „ChromeVox“ (ekrano skaitymą balsu)</translation> +<translation id="993540765962421562">Diegiama</translation> <translation id="994289308992179865">&Ciklas</translation> <translation id="996250603853062861">Kuriamas saugus ryšys...</translation> <translation id="998747458861718449">A&pžiūrėti</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb index b4e5893..020ff68 100644 --- a/chrome/app/resources/generated_resources_lv.xtb +++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Notiek meklēšana...</translation> <translation id="1316495628809031177">Sinhronizācija ir apturēta</translation> <translation id="1319979322914001937">Lietotne, kurā tiek rādīts filtrēts saraksts ar Chrome interneta veikalā pieejamiem paplašinājumiem. Sarakstā esošos paplašinājumus var instalēt tieši no lietotnes.</translation> +<translation id="1322046419516468189">Saglabātās paroles varat skatīt un pārvaldīt šeit: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Pierakstieties pārlūkā Chrome, lai būtu pieejamas cilnes no citām jūsu ierīcēm.</translation> <translation id="1327074568633507428">Printeris Google mākoņdrukā</translation> <translation id="1327977588028644528">Vārteja</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">P&alīdzības centrs</translation> <translation id="162035744160882748">Sinhronizācijas, personalizācijas un citu Google pakalpojumu ieslēgšana</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Šobrīd attēli nav pieejami. Lai skatītu fona tapešu kolekcijas, atkārtoti izveidojiet savienojumu ar internetu.</translation> <translation id="1624026626836496796">Šis process notiks tikai vienu reizi, un jūsu akreditācijas dati netiks saglabāti.</translation> <translation id="1627276047960621195">Failu deskriptori</translation> <translation id="1627408615528139100">Jau lejupielādēts</translation> <translation id="1632803087685957583">Varat pielāgot tastatūras atkārtošanas ātrumu, vārdu paredzēšanu un citus iestatījumus.</translation> <translation id="1635033183663317347">Instalēja aizbildnis.</translation> +<translation id="1635885551358739414">Google var izmantot jūsu apmeklēto vietņu saturu, kā arī pārlūkā veiktās darbības un mijiedarbības, lai personalizētu pārlūku Chrome un citus Google pakalpojumus, piemēram, Tulkotāju, Meklēšanu un reklāmas. Šos iestatījumus varat pielāgot sadaļā Iestatījumi.</translation> <translation id="1637224376458524414">Iegūstiet šo grāmatzīmi savā iPhone tālrunī</translation> <translation id="1637765355341780467">Atverot profilu, radās kļūda. Iespējams, dažas funkcijas nebūs pieejamas.</translation> <translation id="1639239467298939599">Notiek ielāde</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Parole ir pārāk īsa.</translation> <translation id="1661867754829461514">Trūkst PIN koda</translation> <translation id="16620462294541761">Diemžēl jūsu paroli nevarēja verificēt. Lūdzu, mēģiniet vēlreiz.</translation> +<translation id="1662550410081243962">Saglabāt un aizpildīt maksājuma veidus</translation> <translation id="166278006618318542">Subjekta publiskās atslēgas algoritms</translation> <translation id="166439687370499867">Nav atļauts mainīt koplietota tīkla konfigurāciju.</translation> <translation id="1665611772925418501">Failu nevarēja pārveidot.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546">Vietne <ph name="URL" /> vēlas skatīt jūsu drošības atslēgas ražotāju un modeli.</translation> <translation id="167832068858235403">samazināt skaļumu</translation> <translation id="1679068421605151609">Izstrādātāja rīki</translation> +<translation id="1680849702532889074">Linux lietojumprogrammas instalēšanas laikā radās kļūda.</translation> <translation id="16815041330799488">Neļaut vietnēm skatīt starpliktuvē kopēto tekstu un attēlus</translation> <translation id="1682548588986054654">Jauns inkognito režīma logs</translation> <translation id="168715261339224929">Lai grāmatzīmes būtu pieejamas visās jūsu ierīcēs, ieslēdziet sinhronizāciju.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Atspraust cilnes</translation> <translation id="1734824808160898225">Pārlūka <ph name="PRODUCT_NAME" /> automātiskā atjaunināšana, iespējams, nebūs pieejama.</translation> <translation id="1736419249208073774">Izpētīt</translation> +<translation id="1736827427463982819">Izslēgt Linux (Beta)</translation> <translation id="1737968601308870607">Faila blusa</translation> <translation id="1741314857973421784">Tālāk</translation> <translation id="174173592514158117">Rādīt visas Play mapes</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">Vietnē <ph name="URL" /> tiek pieprasīta atļauja pastāvīgi uzglabāt lielu datu apjomu jūsu lokālajā datorā.</translation> <translation id="1997616988432401742">Jūsu sertifikāti</translation> <translation id="1999115740519098545">Sākumlapā</translation> +<translation id="2000419248597011803">Nosūta dažus sīkfailus un meklēšanas vaicājumus no adreses joslas un meklēšanas lodziņa uz jūsu noklusējuma meklētājprogrammu.</translation> <translation id="2001796770603320721">Pārvaldīt Diskā</translation> <translation id="2004663115385769400">Nevar atvērt, izmantojot $1</translation> <translation id="200544492091181894">Vēlāk varēsiet to mainīt iestatījumos.</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Turpināt bloķēt sīkfailus</translation> <translation id="204622017488417136">Ierīcē tiks atjaunota iepriekš instalētā Chrome versija. Visi lietotāju konti un ierīcē glabātie dati tiks noņemti. Šo darbību nevar atsaukt.</translation> <translation id="2048182445208425546">Piekļūt jūsu tīkla datplūsmai</translation> +<translation id="2048653237708779538">Darbība nav pieejama</translation> <translation id="204914487372604757">Izveidot saīsni</translation> <translation id="2050339315714019657">Portrets</translation> <translation id="2053312383184521053">Dati par neaktīvu stāvokli</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Spraudnim <ph name="PEPPER_PLUGIN_NAME" /> domēnā <ph name="PEPPER_PLUGIN_DOMAIN" /> ir nepieciešama piekļuve jūsu datoram.</translation> <translation id="2178614541317717477">CA drošības politikas apdraudējums</translation> <translation id="218070003709087997">Izmantojiet skaitli, lai norādītu, cik eksemplāri jādrukā (1–999).</translation> +<translation id="2183558561014688873">Ja jūsu ierīce ir aktivizēta un atbloķēta, Asistentam varat piekļūt jebkurā laikā, pasakot frāzi “OK Google”.</translation> <translation id="2187895286714876935">Servera sertifikāta importēšanas kļūda</translation> <translation id="2187906491731510095">Paplašinājumi ir atjaunināti</translation> <translation id="2188881192257509750">Atvērt lietojumprogrammu <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">GPU process</translation> <translation id="2282155092769082568">Automātiskās konfigurācijas vietrādis URL</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Saglabāt un aizpildīt adreses</translation> <translation id="2286841657746966508">Norēķinu adrese</translation> <translation id="2288181517385084064">Pārslēgt uz video ierakstītāju</translation> <translation id="2288735659267887385">Pieejamības iestatījumi</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Failu kopējais lielums</translation> <translation id="2428510569851653187">Norādiet, ko darījāt, kad cilne avarēja</translation> <translation id="2431027948063157455">Nevarēja ielādēt Google asistentu, lūdzu, pārbaudiet tīkla savienojumu un pēc tam mēģiniet vēlreiz.</translation> +<translation id="2432753757290432042">Ir jāatjaunina Linux (Beta)</translation> <translation id="2433452467737464329">Pievienojiet vaicājuma parametru vietrādī URL, lai atsvaidzinātu šo lapu: chrome://network/?refresh=<sec>.</translation> <translation id="2433507940547922241">Izskats</translation> <translation id="2433836460518180625">Atbloķēt tikai ierīci</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Pirkstu nospiedumu rediģēšana</translation> <translation id="2776441542064982094">Šķiet, ka reģistrēšanai tīklā nav pieejama neviena ierīce. Ja jūsu ierīce ir ieslēgta un ir izveidots savienojums ar internetu, mēģiniet reģistrēt šo ierīci, izmantojot tās lietošanas rokasgrāmatā sniegtos norādījumus.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Instalējot Linux lietojumprogrammu, radās kļūda</translation> <translation id="2783298271312924866">Lejupielādēts</translation> <translation id="2783321960289401138">Izveidot saīsni...</translation> <translation id="2783829359200813069">Šifrēšanas veidu atlase</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Izrakstieties un atkārtoti pierakstieties.</translation> <translation id="2812989263793994277">Nerādīt nevienu attēlu</translation> <translation id="2814489978934728345">Pārtraukt šīs lapas ielādi</translation> +<translation id="281504910091592009">Skatiet un pārvaldiet saglabātās paroles savā <ph name="BEGIN_LINK" />Google kontā<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Grāmatzīmju josla</translation> <translation id="2815693974042551705">Grāmatzīmju mape</translation> <translation id="2818476747334107629">Detalizēta informācija par printeri</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Rādīt pieejamās Bluetooth ierīces</translation> <translation id="2941112035454246133">Zema</translation> <translation id="2942560570858569904">Notiek gaidīšana...</translation> +<translation id="2942581856830209953">Pielāgot šo lapu</translation> <translation id="2943400156390503548">Prezentācijas</translation> <translation id="2943503720238418293">Izmantojiet īsāku nosaukumu.</translation> <translation id="2946119680249604491">Pievienot savienojumu</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Parole:</translation> <translation id="3694027410380121301">Atlasīt iepriekšējo cilni</translation> <translation id="3699624789011381381">E-pasta adrese</translation> +<translation id="3699920817649120894">Vai izslēgt sinhronizēšanu un personalizēšanu?</translation> <translation id="3700888195348409686">Notiek prezentēšana (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Jūsu sākumlapa tika mainīta, lai ietvertu: <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript valoda bloķēta</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">Pil&nekrāna režīms</translation> <translation id="3828029223314399057">Meklēt grāmatzīmes</translation> <translation id="3830674330436234648">Atskaņošana nav pieejama</translation> +<translation id="3831436149286513437">Uz Google diska datiem balstītie meklēšanas ieteikumi</translation> <translation id="3831486154586836914">Tika atvērts logu kopsavilkuma režīms.</translation> <translation id="383161972796689579">Šīs ierīces īpašnieks ir atspējojis jauno lietotāju pievienošanu.</translation> <translation id="3834775135533257713">Neizdevās pievienot lietojumprogrammu “<ph name="TO_INSTALL_APP_NAME" />”, jo rodas konflikts ar “<ph name="INSTALLED_APP_NAME" />”.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Viszemākais</translation> <translation id="3872220884670338524">Citas darbības, lietotāja <ph name="USERNAME" /> konts domēnā <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Atbrīvojiet diskā vietu; pretējā gadījumā ierīce nereaģēs.</translation> +<translation id="3873315167136380065">Lai ieslēgtu šo funkciju un noņemtu sinhronizēšanas ieejas frāzi, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation> <translation id="3878840326289104869">Notiek uzraudzīta lietotāja izveide</translation> <translation id="3879748587602334249">Lejupielāžu pārvaldnieks</translation> <translation id="3880709822663530586">Drošības atslēga darbojas tikai tad, ja ierīcē ir iespējots Bluetooth savienojums.</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Saglabātie pirkstu nospiedumi</translation> <translation id="407173827865827707">Noklikšķinot</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: pierakstīšanās kļūda</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">E-pasta parakstītāja sertifikāts</translation> <translation id="407520071244661467">Mērogs</translation> <translation id="4075639477629295004">Nevar apraidīt failu <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Pārskatiet savus iestatījumus nākamajā ekrānā</translation> <translation id="4193154014135846272">Google dokuments</translation> <translation id="4194570336751258953">Iespējot funkciju "pieskarties, lai noklikšķinātu"</translation> +<translation id="4195249722193633765">Lietotnes instalēšana operētājsistēmā Linux (Beta)</translation> <translation id="4195643157523330669">Atvērt jaunā cilnē</translation> <translation id="4195814663415092787">Atsākt darbu no vietas, kur to beidzu</translation> <translation id="4197674956721858839">Tilpsaspiest atlasītos failus</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">8. plaukta vienums</translation> <translation id="4287502004382794929">Jums nav pietiekami daudz programmatūras licenču, lai reģistrētu šo ierīci. Lūdzu, sazinieties ar tirdzniecības nodaļu, lai iegādātos vairāk licenču. Ja uzskatāt, ka šis ziņojums tiek parādīts kļūdas dēļ, lūdzu, sazinieties ar atbalsta dienestu.</translation> <translation id="4289540628985791613">Kopsavilkums</translation> +<translation id="4295072614469448764">Lietotne ir pieejama jūsu terminālī. Programmā Palaidējs var būt redzama arī ikona.</translation> <translation id="4296575653627536209">Pievienot uzraudzītu lietotāju</translation> +<translation id="4297219207642690536">Restartēt un atiestatīt</translation> <translation id="4297322094678649474">Mainīt valodas</translation> <translation id="4300305918532693141">Lai mainītu šo iestatījumu, <ph name="BEGIN_LINK" />atiestatiet sinhronizāciju<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">ilga (2 s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Ievadītā e-pasta adrese un parole neatbilst.</translation> <translation id="437184764829821926">Uzlaboti fonta iestatījumi</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Linux instalēšanas programma</translation> <translation id="4375035964737468845">Atvērt lejupielādētos failus</translation> <translation id="4377363674125277448">Radās problēma ar servera sertifikātu.</translation> <translation id="4378154925671717803">Tālrunis</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Bluetooth ierīces savienošana pārī</translation> <translation id="4579581181964204535">Nevar apraidīt <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Vai tiešām vēlaties dzēst $1 vienumus?</translation> +<translation id="4582497162516204941">Instalēt operētājsistēmā Linux (Beta)</translation> <translation id="4582563038311694664">Atiestatīt visus iestatījumus</translation> <translation id="4585793705637313973">Lapas rediģēšana</translation> <translation id="4589268276914962177">Jauns terminālis</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Noklusējuma iemiesojums oranžā krāsā</translation> <translation id="4955814292505481804">Gada licence</translation> <translation id="4957949153200969297">Iespējot tikai funkcijas, kas saistītas ar <ph name="IDS_SHORT_PRODUCT_NAME" /> sinhronizāciju</translation> +<translation id="4959262764292427323">Paroles tiek saglabātas jūsu Google kontā, lai jūs tās varētu izmantot jebkurā ierīcē.</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> — <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Atlasītajā mapē ir iekļauti sensitīvi faili. Vai tiešām vēlaties piešķirt lietotnei $1 patstāvīgu lasīšanas piekļuvi šai mapei?</translation> <translation id="4964455510556214366">Izkārtojums</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Ir mainīti sinhronizācijas, personalizācijas un citu Google pakalpojumu pārvaldības iestatījumi pārlūkā Chrome. Tas var ietekmēt jūsu pašreizējos iestatījumus.</translation> <translation id="5241128660650683457">Lasīt visus apmeklēto vietņu datus</translation> <translation id="5242724311594467048">Vai iespējot “<ph name="EXTENSION_NAME" />”?</translation> +<translation id="5243522832766285132">Lūdzu, pēc brīža mēģiniet vēlreiz.</translation> <translation id="5244474230056479698">Sinhronizēšana ar <ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> ir sabojājies. Noklikšķiniet uz šī balona, lai restartētu šo lietotni.</translation> <translation id="5247051749037287028">Parādāmais nosaukums (neobligāti)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Tas var ilgt aptuveni minūti.</translation> <translation id="5264252276333215551">Lūdzu, izveidojiet savienojumu ar internetu, lai lietotni palaistu kioska režīmā.</translation> <translation id="5265562206369321422">Bezsaistē ilgāk par nedēļu</translation> +<translation id="5265797726250773323">Instalēšanas laikā radās kļūda</translation> <translation id="5266113311903163739">Sertifikāta izdevējiestādes importēšanas kļūda</translation> <translation id="5269977353971873915">Drukāšana neizdevās</translation> <translation id="5271549068863921519">Saglabāt paroli</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatēt šo ierīci</translation> <translation id="5292195676005197571">Lai izmantotu lielāko daļu atslēgu, vienkārši nospiediet pogu.</translation> <translation id="5293170712604732402">Atjaunot iestatījumus uz sākotnējiem noklusējuma iestatījumiem</translation> +<translation id="5297082477358294722">Parole ir saglabāta. Skatiet un pārvaldiet saglabātās paroles šeit: <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Tematu izveidoja</translation> <translation id="5299109548848736476">Nesekot</translation> <translation id="5299682071747318445">Visi dati ir šifrēti, izmantojot sinhronizācijas ieejas frāzi</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150">Vietnē <ph name="URL" /> tiek pieprasīta atļauja izmantot jūsu datora atrašanās vietu.</translation> <translation id="5612734644261457353">Diemžēl jūsu paroli joprojām nevarēja verificēt. Piezīme. Ja nesen mainījāt paroli, jaunā parole tiks lietota pēc izrakstīšanās. Lūdzu, šeit izmantojiet iepriekšējo paroli.</translation> <translation id="5614190747811328134">Paziņojums lietotājam</translation> +<translation id="5614553682702429503">Vai saglabāt paroli?</translation> <translation id="561698261642843490">Firefox aizvēršana</translation> <translation id="5618075537869101857">Diemžēl kioska lietojumprogrammu nevarēja palaist.</translation> <translation id="5618333180342767515">(tas var aizņemt dažas minūtes)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Lapas valoda:</translation> <translation id="5677928146339483299">Bloķēts</translation> <translation id="5678550637669481956">Tika piešķirta lasīšanas un rakstīšanas piekļuve krātuvei <ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">Linux lietojumprogramma būs pieejama jūsu terminālī, un programmā Palaidējs var būt redzama arī tās ikona.</translation> <translation id="5678955352098267522">Lasīt jūsu datus vietnē <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Līdzekļu identifikators</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Nevar pārtraukt savienojumu ar arhīvu vai virtuālo disku<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Pievienot personu</translation> <translation id="583281660410589416">Nezināms</translation> <translation id="5832976493438355584">Bloķēta</translation> +<translation id="5833397272224757657">Personalizācijai izmanto jūsu apmeklēto vietņu saturu, kā arī darbības un mijiedarbības pārlūkā.</translation> <translation id="5833610766403489739">Šo failu nevar atrast. Lūdzu, pārbaudiet lejupielādes vietas iestatījumu un mēģiniet vēlreiz.</translation> <translation id="5833726373896279253">Šos iestatījumus drīkst mainīt tikai īpašnieks:</translation> <translation id="5834581999798853053">Atlikušas apmēram <ph name="TIME" /> minūtes</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Bloķēt Flash aktivizēšanu vietnēs</translation> <translation id="5910363049092958439">Saglabāt attēlu &kā...</translation> <translation id="5911737117543891828">Tiks dzēsti Google diskā īslaicīgi saglabātie bezsaistes faili. Faili, kurus esat iestatījis kā pieejamus bezsaistē, netiks dzēsti no šīs ierīces.</translation> +<translation id="5911887972742538906">Linux lietojumprogrammas instalēšanas laikā radās kļūda.</translation> <translation id="5912378097832178659">Rediģēt meklējumprogrammas...</translation> <translation id="5914724413750400082">Modulis (<ph name="MODULUS_NUM_BITS" /> biti): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Izrakstīties un tad pierakstīties vēlreiz</translation> <translation id="6198252989419008588">Mainīt PIN</translation> <translation id="6199801702437275229">Gaida informāciju par brīvo vietu...</translation> +<translation id="6201792273624501289">Linux lietotnes</translation> <translation id="6204015976622790023">Skatiet atbilstošus Asistenta ieteikumus par ekrānā redzamo saturu.</translation> <translation id="6205710420833115353">Dažas darbības aizņem vairāk laika, nekā paredzēts. Vai vēlaties tās priekšlaikus pārtraukt?</translation> <translation id="6206311232642889873">Kopēt &attēlu</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Atlasīt</translation> <translation id="694592694773692225">Šajā lapā ir bloķēta novirzīšana.</translation> <translation id="6949306908218145636">Saglabāt atvērtās lapas kā grāmatzīmes...</translation> +<translation id="6950627417367801484">Atjaunot lietotnes</translation> <translation id="6951153907720526401">Maksājumu apdarinātāji</translation> <translation id="6955446738988643816">Pārbaudīt uznirstošo elementu</translation> <translation id="6957231940976260713">Pakalpojuma nosaukums</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Lejupielādes vēsture</translation> <translation id="7131040479572660648">Lasīt jūsu datus vietnēs <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> un <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Pievienot &lapu...</translation> +<translation id="7133578150266914903">Administrators šajā ierīcē veic atriti (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Samazināt tekstu</translation> <translation id="7136694880210472378">Iestatīt par noklusējumu</translation> <translation id="7136984461011502314">Laipni lūdzam programmā <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Pievienot personu</translation> <translation id="7464490149090366184">Tilpsaspiešana neizdevās, vienums pastāv: "$1"</translation> <translation id="7465778193084373987">Netscape sertifikāta atsaukšanas URL</translation> +<translation id="7469406957790636836">Lai ieslēgtu šo funkciju, vispirms ieslēdziet pareizrakstības pārbaudi sadaļā <ph name="BEGIN_LINK" />Valodas un ievade<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Automātiski pievienoties šim tīklam</translation> <translation id="747114903913869239">Kļūda: nespēj dekodēt paplašinājumu</translation> <translation id="7473753388963818366"><ph name="DEVICE_TYPE" /> ierīces sagatavošana</translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Izdevējiestādes</translation> <translation id="7607002721634913082">Apturēta</translation> <translation id="7607274158153386860">Pieprasīt planšetdatoram paredzētu vietnes versiju</translation> +<translation id="7609148976235050828">Izveidojiet savienojumu ar internetu un mēģiniet vēlreiz.</translation> <translation id="7611008212562900400">Meklējiet ierīcē, lietotnēs, tīmeklī…</translation> <translation id="7616214729753637086">Notiek ierīces reģistrēšana...</translation> <translation id="7617366389578322136">Notiek savienojuma izveide ar ierīci <ph name="DEVICE_NAME" />.</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Tvert jūsu ekrāna saturu</translation> <translation id="7730494089396812859">Rādīt detalizētu informāciju par dublēšanu mākonī</translation> <translation id="7732111077498238432">Tīklu pārvalda politika</translation> +<translation id="7737238973539693982">Linux (Beta) dzēšana</translation> <translation id="773905249182896430">Aizsargā jūs un ierīci pret bīstamām vietnēm</translation> <translation id="7740996059027112821">Standarta</translation> <translation id="7748528009589593815">Iepriekšējā cilne</translation> @@ -4529,6 +4566,7 @@ <translation id="7974936243149753750">Attēla izvērse</translation> <translation id="7977551819349545646">Notiek Chromebox datora atjaunināšana...</translation> <translation id="7978412674231730200">Privātā atslēga</translation> +<translation id="7978450511781612192">Tādējādi tiksiet izrakstīsiet no sava Google konta. Jūsu grāmatzīmes, vēsture, paroles, kā arī cita informācija vairs netiks sinhronizēta.</translation> <translation id="7979036127916589816">Sinhronizācijas kļūda</translation> <translation id="7980084013673500153">Līdzekļa ID: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Veikt lapu pirmsielādi, lai paātrinātu pārlūkošanu un meklēšanu</translation> @@ -4693,6 +4731,7 @@ <translation id="8226619461731305576">Rinda</translation> <translation id="8226742006292257240">Tālāk redzama nejauši izveidota TPM parole, kas piešķirta jūsu datoram:</translation> <translation id="8227119283605456246">Pievienot failu</translation> +<translation id="8230134520748321204">Vai saglabāt paroli vietnei <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Palīdziet mūsu inženieriem novērst šo problēmu. Norādiet, kas notika tieši pirms tam, kad tika parādīts profila kļūdas ziņojums.</translation> <translation id="8234989666557591529">Izvēlieties tālruni, lai atbloķētu savu <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Veikt sinhronizāciju kā: <ph name="FULL_NAME" /></translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">Pāreja uz viedu pārlūku</translation> <translation id="8438566539970814960">Uzlabot meklēšanu un pārlūkošanu</translation> <translation id="8439506636278576865">Piedāvāt tulkot lapas šajā valodā</translation> +<translation id="8440630305826533614">Linux lietotnes</translation> <translation id="8446884382197647889">Uzziniet vairāk</translation> <translation id="8447409163267621480">Jāiekļauj “Ctrl” vai “Alt”</translation> <translation id="8448729345478502352">Palieliniet vai samaziniet ekrānā redzamos vienumus.</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Windows utilītprogrammas</translation> <translation id="8498214519255567734">Atvieglojiet skatīšanos ekrānā vai lasīšanu blāvā apgaismojumā</translation> <translation id="8498395510292172881">Lasīšanas turpināšana pārlūkā Chrome</translation> +<translation id="8502536196501630039">Lai varētu izmantot pakalpojumā Google Play pieejamās lietotnes, vispirms jums ir jāatjauno savas lietotnes. Daļa datu var tikt zaudēta.</translation> <translation id="8503813439785031346">Lietotājvārds</translation> <translation id="850875081535031620">Netika atrasta neviena kaitīga programmatūra.</translation> <translation id="8509646642152301857">Pareizrakstības pārbaudes vārdnīcas lejupielāde neizdevās.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Google zīmējums</translation> <translation id="869884720829132584">Lietojumprogrammu izvēlne</translation> <translation id="869891660844655955">Derīguma termiņš</translation> +<translation id="8699566574894671540">Lai šo funkciju ieslēgtu, vispirms rediģēšanas izvēlnē atlasiet vienumu “Check Spelling While Typing” (Pārbaudīt pareizrakstību rakstīšanas laikā).</translation> <translation id="870073306461175568">Tīkla failu kopīgošana</translation> <translation id="8701677791353449257">Ierīces nosaukumam ir jāatbilst regulārajai izteiksmei <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Tas aizņem daudz vairāk laika nekā parasti. Varat turpināt gaidīt vai atcelt darbību un mēģināt vēlreiz.</translation> @@ -5024,6 +5066,7 @@ <p>Konfigurēšanai joprojām varat izmantot komandrindu. Plašāku informāciju par karogiem un vides mainīgajiem, lūdzu, skatiet pārlūkprogrammā <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">Lielāks</translation> +<translation id="8756969031206844760">Vai atjaunināt paroli?</translation> <translation id="8757090071857742562">Nevar apraidīt darbvirsmu. Pārbaudiet, vai esat uzvednē apstiprinājis, ka vēlaties sākt ekrāna kopīgošanu.</translation> <translation id="8757640015637159332">Pievienoties publiskai sesijai</translation> <translation id="8757742102600829832">Ierīces, ar kurām ir jāsavieno Chromebox dators</translation> @@ -5180,7 +5223,9 @@ <translation id="9009369504041480176">Notiek augšupielāde (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Vienmēr rādīt ikonu</translation> <translation id="9011178328451474963">Pēdējā cilne</translation> +<translation id="9013707997379828817">Administrators šajā ierīcē veica atriti. Saglabājiet svarīgos failus un pēc tam restartējiet ierīci. Visi ierīcē esošie dati tiks dzēsti.</translation> <translation id="9014987600015527693">Rādīt citu tālruni</translation> +<translation id="9018218886431812662">Instalēšana pabeigta</translation> <translation id="901834265349196618">e-pasts</translation> <translation id="9019062154811256702">Lasīt un mainīt automātiskās aizpildes iestatījumus</translation> <translation id="9020362265352758658">4x</translation> @@ -5204,6 +5249,7 @@ <translation id="9038649477754266430">Ieteikumu pakalpojuma izmantošana ātrākai lapu ielādei</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Izslēgt ciļņu skaņu</translation> +<translation id="9040661932550800571">Vai atjaunināt paroli vietnei <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Administrators ir atspējojis piekļuvi lokālajiem failiem jūsu datorā.</translation> <translation id="9042893549633094279">Konfidencialitāte un drošība</translation> <translation id="904451693890288097">Ievadiet ierīces <ph name="DEVICE_NAME" /> piekļuves atslēgu:</translation> @@ -5308,6 +5354,7 @@ <translation id="9203478404496196495">Ieslēgt cilnes skaņu</translation> <translation id="9203904171912129171">Atlasiet ierīci</translation> <translation id="9203962528777363226">Šīs ierīces administrators ir atspējojis jaunu lietotāju pievienošanu.</translation> +<translation id="9213073329713032541">Instalēšana sekmīgi sākta.</translation> <translation id="9214520840402538427">Instalācijas laika atribūtu inicializēšanā diemžēl iestājās noildze. Lūdzu, sazinieties ar savu atbalsta pārstāvi.</translation> <translation id="9214695392875603905">Glazūrkēkss</translation> <translation id="9215293857209265904">Ir pievienots paplašinājums <ph name="EXTENSION_NAME" /></translation> @@ -5362,6 +5409,7 @@ <translation id="988978206646512040">Nav atļauta tukša ieejas frāze.</translation> <translation id="992032470292211616">Paplašinājumi, lietotnes un motīvi var kaitēt jūsu ierīcei. Vai tiešām vēlaties turpināt?</translation> <translation id="992592832486024913">Atspējot ChromeVox (balss komentārus)</translation> +<translation id="993540765962421562">Notiek instalēšana</translation> <translation id="994289308992179865">A&utomātiski atkārtot</translation> <translation id="996250603853062861">Notiek droša savienojuma izveidošana...</translation> <translation id="998747458861718449">Pārbaudīt</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb index 9311e46..b1d467d 100644 --- a/chrome/app/resources/generated_resources_ml.xtb +++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">തിരയുന്നു...</translation> <translation id="1316495628809031177">സമന്വയം താൽക്കാലികമായി നിർത്തി</translation> <translation id="1319979322914001937">ഒരു ആപ്പ് Chrome വെബ് സ്റ്റോറിൽ നിന്നുള്ള ഫിൽട്ടർ ചെയ്ത വിപുലീകരണങ്ങളുടെ ലിസ്റ്റ് കാണിക്കുന്നു. ലിസ്റ്റിലെ വിപുലീകരണങ്ങൾ ആപ്പിൽ നിന്ന് നേരിട്ട് ഇൻസ്റ്റാൾ ചെയ്യാനാകും.</translation> +<translation id="1322046419516468189">നിങ്ങളുടെ <ph name="SAVED_PASSWORDS_STORE" /> എന്നതിൽ സംരക്ഷിച്ച പാസ്വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation> <translation id="1326317727527857210">നിങ്ങളുടെ മറ്റ് ഉപകരണങ്ങളിൽ നിന്നുള്ള ടാബുകൾ ലഭിക്കാൻ, Chrome-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation> <translation id="1327074568633507428">Google ക്ലൗഡ് പ്രിന്റിലെ പ്രിന്റർ</translation> <translation id="1327977588028644528">ഗേറ്റ്വേ</translation> @@ -415,11 +416,13 @@ <translation id="1618268899808219593">സഹായ കേന്ദ്രം</translation> <translation id="162035744160882748">സമന്വയം, വ്യക്തിപരമാക്കൽ എന്നിവയും, മറ്റ് Google സേവനങ്ങളും ഓണാക്കുക</translation> <translation id="1620510694547887537">ക്യാമറ</translation> +<translation id="1623132449929929218">ചിത്രങ്ങൾ നിലവിൽ ലഭ്യമല്ല. വാൾപേപ്പർ ശേഖരങ്ങൾ കാണുന്നതിന് ഇന്റർനെറ്റുമായി വീണ്ടും കണക്റ്റ് ചെയ്യുക.</translation> <translation id="1624026626836496796">ഇത് ഒരിക്കൽ മാത്രം സംഭവിക്കുന്നു, നിങ്ങളുടെ ക്രെഡൻഷ്യലുകൾ സംഭരിക്കില്ല.</translation> <translation id="1627276047960621195">ഫയൽ ഡിസ്ക്രിപറ്ററുകൾ</translation> <translation id="1627408615528139100">നേരത്തേതന്നെ ഡൗൺലോഡുചെയ്തിട്ടുണ്ട്</translation> <translation id="1632803087685957583">കീബോർഡ് ആവർത്തന നിരക്കും പദത്തിന്റെ പ്രവചനവും മറ്റും ക്രമീകരിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു</translation> <translation id="1635033183663317347">നിങ്ങളുടെ സൂക്ഷിപ്പുകാരൻ ഇൻസ്റ്റാൾ ചെയ്തു.</translation> +<translation id="1635885551358739414">Chrome, മറ്റ് Google സേവനങ്ങളായ Translate, തിരയൽ, പരസ്യങ്ങൾ പോലുള്ളവ വ്യക്തിപരമാക്കാൻ, നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളുടെ ഉള്ളടക്കം, ബ്രൗസിംഗ് ആക്റ്റിവിറ്റി, ഇടപെടലുകൾ എന്നിവ Google ഉപയോഗിച്ചേക്കാം. ഇത് നിങ്ങൾക്ക് ക്രമീകരണത്തിൽ ഇഷ്ടാനുസൃതമാക്കാവുന്നതാണ്.</translation> <translation id="1637224376458524414">നിങ്ങളുടെ iPhone-ൽ ഈ ബുക്ക്മാർക്ക് ലഭ്യമാക്കുക</translation> <translation id="1637765355341780467">നിങ്ങളുടെ പ്രൊഫൈൽ തുറക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു. ചില ഫീച്ചറുകൾ ലഭ്യമായേക്കില്ല.</translation> <translation id="1639239467298939599">ലോഡുചെയ്യുന്നു</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">പാസ്വേഡ് വളരെ ചെറുതാണ്.</translation> <translation id="1661867754829461514">PIN കാണാനില്ല</translation> <translation id="16620462294541761">ക്ഷമിക്കൂ, നിങ്ങളുടെ രഹസ്യവാക്ക് പരിശോധിക്കാന് കഴിഞ്ഞില്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക.</translation> +<translation id="1662550410081243962">പേയ്മെന്റ് രീതികൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="166278006618318542">സബ്ജക്റ്റ് പൊതു കീ അല്ഗോരിതം</translation> <translation id="166439687370499867">പങ്കിട്ട നെറ്റ്വര്ക്ക് കോൺഫിഗറേഷനുകൾ മാറ്റാനാകില്ല</translation> <translation id="1665611772925418501">ഫയൽ പരിഷ്ക്കരിക്കാൻ കഴിഞ്ഞില്ല.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546">നിങ്ങളുടെ സുരക്ഷാ കീയുടെ മെയ്ക്കും മോഡലും കാണാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation> <translation id="167832068858235403">ശബ്ദം കുറയ്ക്കുക</translation> <translation id="1679068421605151609">ഡെവലപ്പർ ഉപകരണങ്ങൾ</translation> +<translation id="1680849702532889074">നിങ്ങളുടെ Linux ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു.</translation> <translation id="16815041330799488">ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തിയിട്ടുള്ള ടെക്സ്റ്റുകളും ചിത്രങ്ങളും കാണാൻ സൈറ്റുകളെ അനുവദിക്കരുത്</translation> <translation id="1682548588986054654">പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ</translation> <translation id="168715261339224929">എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ ലഭിക്കാൻ, 'സമന്വയം' ഓണാക്കുക.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">ടാബുകള് അണ്പിന്ചെയ്യുക </translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" />-ന്, സ്വയം അപ്ഡേറ്റ് ചെയ്യാന് സാധിക്കുന്നില്ലായിരിക്കാം</translation> <translation id="1736419249208073774">അടുത്തറിയുക</translation> +<translation id="1736827427463982819">Linux ഷട്ട് ഡൗൺ ചെയ്യുക (ബീറ്റ)</translation> <translation id="1737968601308870607">ഫയല് പിശക്</translation> <translation id="1741314857973421784">തുടരുക</translation> <translation id="174173592514158117">എല്ലാ Play ഫോൾഡറുകളും കാണിക്കുക</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567">നിങ്ങളുടെ ലോക്കൽ കമ്പ്യൂട്ടറിൽ ശാശ്വതമായി വലിയ ഡാറ്റ സംഭരിക്കാൻ <ph name="URL" />ആഗ്രഹിക്കുന്നു</translation> <translation id="1997616988432401742">നിങ്ങളുടെ സർട്ടിഫിക്കറ്റുകൾ</translation> <translation id="1999115740519098545">തുടക്കത്തില്</translation> +<translation id="2000419248597011803">നിങ്ങളുടെ ഡിഫോൾട്ട് തിരയൽ എഞ്ചിനിലേക്ക് വിലാസ ബാറിൽ നിന്നും തിരയൽ ബോക്സിൽ നിന്നുള്ള തിരയലുകളും കുറച്ച് കുക്കികളും അയയ്ക്കുന്നു</translation> <translation id="2001796770603320721">ഡ്രൈവിൽ മാനേജ് ചെയ്യുക</translation> <translation id="2004663115385769400">$1 ഉപയോഗിച്ച് തുറക്കാനായില്ല</translation> <translation id="200544492091181894">നിങ്ങൾക്കിത് എപ്പോൾ വേണമെങ്കിലും ക്രമീകരണത്തിൽ മാറ്റാം</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">കുക്കികളെ തടയുന്നത് തുടരുക</translation> <translation id="204622017488417136">നിങ്ങളുടെ ഉപകരണം Chrome-ന്റെ മുമ്പ് ഇൻസ്റ്റാളുചെയ്ത പതിപ്പിലേക്ക് മടങ്ങും. എല്ലാ ഉപയോക്തൃ അക്കൗണ്ടുകളും പ്രാദേശിക ഡാറ്റയും നീക്കംചെയ്യും. ഇത് പഴയപടിയാക്കാനാകില്ല.</translation> <translation id="2048182445208425546">നിങ്ങളുടെ നെറ്റ്വർക്ക് ട്രാഫിക്ക് ആക്സസ്സുചെയ്യുക</translation> +<translation id="2048653237708779538">പ്രവർത്തനം ലഭ്യമല്ല</translation> <translation id="204914487372604757">കുറുക്കുവഴി സൃഷ്ടിക്കുക </translation> <translation id="2050339315714019657">ഛായാചിത്രം</translation> <translation id="2053312383184521053">നിഷക്രിയ നില ഡാറ്റ</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724">നിങ്ങളുടെ കമ്പ്യൂട്ടർ ആക്സസ് ചെയ്യാൻ <ph name="PEPPER_PLUGIN_DOMAIN" /> എന്നതിലെ <ph name="PEPPER_PLUGIN_NAME" /> ആഗ്രഹിക്കുന്നു</translation> <translation id="2178614541317717477">CA കോംപ്രമൈസ്</translation> <translation id="218070003709087997">എത്ര പകർപ്പുകൾ പ്രിന്റുചെയ്യണമെന്ന് സൂചിപ്പിക്കാൻ ഒരു നമ്പര് ഉപയോഗിക്കുക (1 മുതൽ 999 വരെ).</translation> +<translation id="2183558561014688873">നിങ്ങളുടെ ഉപകരണം സജീവമായി, അൺലോക്ക് ചെയ്യുമ്പോൾ "OK Google" എന്നുപറഞ്ഞ് ഏതുസമയത്തും നിങ്ങളുടെ അസിസ്റ്റന്റിനെ ആക്സസ് ചെയ്യുക.</translation> <translation id="2187895286714876935">സെര്വര് സാക്ഷ്യപത്ര ഇറക്കുമതി പിശക്</translation> <translation id="2187906491731510095">വിപുലീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്തു</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> തുറക്കുക</translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">GPU പ്രോസസ്സ്</translation> <translation id="2282155092769082568">സ്വയമേവ കോൺഫിഗറേഷൻ URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">വിലാസങ്ങൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="2286841657746966508">ബില്ലിംഗ് വിലാസം</translation> <translation id="2288181517385084064">വീഡിയോ റെക്കോർഡറിലേക്ക് മാറുക</translation> <translation id="2288735659267887385">ഉപയോഗസഹായി ക്രമീകരണങ്ങൾ</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">മൊത്തം ഫയൽ വലുപ്പം</translation> <translation id="2428510569851653187">ടാബ് ക്രാഷായപ്പോൾ നിങ്ങൾ എന്താണ് ചെയ്തിരുന്നതെന്ന് വിവരിക്കുക</translation> <translation id="2431027948063157455">Google Assistant-ന് ലോഡ് ചെയ്യാനായില്ല, നെറ്റ്വർക്ക് കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> +<translation id="2432753757290432042">Linux (ബീറ്റ) അപ്ഡേറ്റ് ആവശ്യമാണ്</translation> <translation id="2433452467737464329">സ്വയമേവ പേജ് പുതുക്കാൻ URL-ൽ ചോദ്യ പാരം ചേർക്കുക: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">കാഴ്ച്ച</translation> <translation id="2433836460518180625">ഉപകരണം മാത്രം അൺലോക്ക് ചെയ്യുക</translation> @@ -1181,6 +1192,7 @@ <translation id="2775104091073479743">വിരലടയാളങ്ങൾ എഡിറ്റുചെയ്യുക</translation> <translation id="2776441542064982094">നെറ്റ്വർക്കിൽ രജിസ്റ്റർ ചെയ്യാൻ ഉപകരണങ്ങളൊന്നും ലഭ്യമല്ലാത്തതുപോലെ തോന്നുന്നു. നിങ്ങളുടെ ഉപകരണം ഓണായിരിക്കുകയും ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്തിട്ടുമുണ്ടെങ്കിൽ, അതിന്റെ നിർദ്ദേശ മാനുവലിലെ നിർദ്ദേശങ്ങൾ ഉപയോഗിച്ച് രജിസ്റ്റർ ചെയ്യുന്നത് പരീക്ഷിക്കുക.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Linux ആപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിൽ പിഴവ്</translation> <translation id="2783298271312924866">ഡൗൺലോഡുചെയ്തു</translation> <translation id="2783321960289401138">കുറുക്കുവഴി സൃഷ്ടിക്കുക...</translation> <translation id="2783829359200813069">എൻക്രിപ്ഷൻ തരങ്ങൾ തിരഞ്ഞെടുക്കുക</translation> @@ -1205,6 +1217,7 @@ <translation id="2812944337881233323">സൈൻ ഔട്ട് ചെയ്ത്, വീണ്ടും ആരംഭിക്കുന്നത് പരീക്ഷിച്ചുനോക്കൂ</translation> <translation id="2812989263793994277">ചിത്രങ്ങളൊന്നും കാണിക്കരുത്</translation> <translation id="2814489978934728345">ഈ പേജ് ലോഡ് ചെയ്യുന്നത് നിര്ത്തുക</translation> +<translation id="281504910091592009">നിങ്ങളുടെ <ph name="BEGIN_LINK" />Google അക്കൗണ്ടിൽ<ph name="END_LINK" /> സംരക്ഷിച്ച പാസ്വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക</translation> <translation id="2815500128677761940">ബുക്മാര്ക്ക് ബാര്</translation> <translation id="2815693974042551705">ഫോൾഡർ ബുക്ക്മാർക്കുചെയ്യുക</translation> <translation id="2818476747334107629">പ്രിന്റർ വിശദാംശങ്ങൾ</translation> @@ -1285,6 +1298,7 @@ <translation id="2939938020978911855">ലഭ്യമായ Bluetooth ഉപകരണങ്ങൾ കാണിക്കുക</translation> <translation id="2941112035454246133">താഴ്ന്ന</translation> <translation id="2942560570858569904">കാത്തിരിക്കുന്നു...</translation> +<translation id="2942581856830209953">ഈ പേജ് ഇഷ്ടാനുസൃതമാക്കുക</translation> <translation id="2943400156390503548">സ്ലൈഡുകള്</translation> <translation id="2943503720238418293">ഇതിലും ചെറിയൊരു പേര് നൽകുക</translation> <translation id="2946119680249604491">കണക്ഷൻ ചേർക്കുക</translation> @@ -1771,6 +1785,7 @@ <translation id="3693415264595406141">പാസ്വേഡ്:</translation> <translation id="3694027410380121301">മുമ്പത്തെ ടാബ് തിരഞ്ഞെടുക്കുക</translation> <translation id="3699624789011381381">ഇമെയില് വിലാസങ്ങള്</translation> +<translation id="3699920817649120894">സമന്വയവും വ്യക്തിപരമാക്കലും ഓഫാക്കണോ?</translation> <translation id="3700888195348409686">(<ph name="PAGE_ORIGIN" />) അവതരിപ്പിക്കുന്നു</translation> <translation id="3702500414347826004"><ph name="URL" /> ഉൾപ്പെടുത്താൻ നിങ്ങളുടെ ആരംഭ പേജുകൾ മാറ്റിയിരിക്കുന്നു.</translation> <translation id="370415077757856453">JavaScript ബ്ലോക്ക് ചെയ്തു</translation> @@ -1868,6 +1883,7 @@ <translation id="3827774300009121996">&പൂര്ണ്ണ സ്ക്രീന്</translation> <translation id="3828029223314399057">ബുക്ക്മാര്ക്കുകള് തിരയുക</translation> <translation id="3830674330436234648">പ്ലേബാക്ക് ലഭ്യമല്ല</translation> +<translation id="3831436149286513437">Google ഡ്രൈവ് തിരയൽ നിർദ്ദേശങ്ങൾ</translation> <translation id="3831486154586836914">വിൻഡോ ചുരുക്കവിവരണ മോഡ് നൽകി</translation> <translation id="383161972796689579">പുതിയ ഉപയോക്താക്കളെ ചേരുന്നതിൽ നിന്ന് ഈ ഉപകരണത്തിന്റെ ഉടമ അപ്രാപ്തമാക്കി</translation> <translation id="3834775135533257713">"<ph name="INSTALLED_APP_NAME" />" ആപ്പുമായി യോജിക്കാത്തതിനാൽ "<ph name="TO_INSTALL_APP_NAME" />" അപ്ലിക്കേഷൻ ചേർക്കാനായില്ല.</translation> @@ -1901,6 +1917,7 @@ <translation id="3871092408932389764">ഏറ്റവും കുറഞ്ഞത്</translation> <translation id="3872220884670338524"><ph name="DOMAIN" /> ഡൊമെയ്നിലെ <ph name="USERNAME" /> എന്ന ഉപയോക്താവിന്റെ സംരക്ഷിച്ച അക്കൗണ്ടിനായി കൂടുതൽ പ്രവർത്തനങ്ങൾ</translation> <translation id="3872991219937722530">ഡിസ്ക് ഇടം സൃഷ്ടിച്ചില്ലെങ്കിൽ ഉപകരണം പ്രതികരിക്കില്ല.</translation> +<translation id="3873315167136380065">ഇത് ഓണാക്കാൻ, നിങ്ങളുടെ സമന്വയിപ്പിച്ച പാസ്ഫ്രെയ്സ് നീക്കം ചെയ്യാൻ <ph name="BEGIN_LINK" />സമന്വയം പുനഃസജ്ജമാക്കുക<ph name="END_LINK" /></translation> <translation id="3878840326289104869">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നു</translation> <translation id="3879748587602334249">ഡൗൺലോഡ് മാനേജർ</translation> <translation id="3880709822663530586">നിങ്ങളുടെ ഉപകരണത്തിന്റെ Bluetooth ഓണാണെങ്കിൽ മാത്രമേ സുരക്ഷാ കീ പ്രവർത്തിക്കൂ</translation> @@ -2023,6 +2040,7 @@ <translation id="4068776064906523561">സംരക്ഷിച്ച വിരലടയാളങ്ങൾ</translation> <translation id="407173827865827707">ക്ലിക്കിൽ</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: സൈൻ ഇൻ പിശക്</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">സൈനര് സര്ട്ടിഫിക്കറ്റ് ഇമെയില് അയയ്ക്കുക</translation> <translation id="407520071244661467">സ്കെയിൽ</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> കാസ്റ്റുചെയ്യാനാവുന്നില്ല.</translation> @@ -2090,6 +2108,7 @@ <translation id="4192273449750167573">അടുത്ത സ്ക്രീനിൽ നിങ്ങളുടെ ക്രമീകരണം അവലോകനം ചെയ്യുക</translation> <translation id="4193154014135846272">Google പ്രമാണം</translation> <translation id="4194570336751258953">ക്ലിക്കുചെയ്യുന്നതിനായി ടാപ്പ് പ്രാപ്തമാക്കുക</translation> +<translation id="4195249722193633765">Linux (ബീറ്റ) ഉപയോഗിച്ച് ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുക</translation> <translation id="4195643157523330669">പുതിയ ടാബില് തുറക്കുക</translation> <translation id="4195814663415092787">നിങ്ങൾ അവസാനിപ്പിച്ചയിടത്ത് നിന്ന് തുടരുക</translation> <translation id="4197674956721858839">Zip തിരഞ്ഞെടുക്കൽ</translation> @@ -2150,7 +2169,9 @@ <translation id="428608937826130504">ഷെൽഫ് ഇനം 8</translation> <translation id="4287502004382794929">നിങ്ങൾക്ക് ഈ ഉപകരണം ചേർക്കുന്നതിനാവശ്യമായ സോഫ്റ്റ്വെയർ ലൈസൻസ് ഇല്ല. കൂടുതൽ വാങ്ങുന്നതിന് വിൽപ്പനയുമായി ബന്ധപ്പെടുക. ഈ സന്ദേശം പിശക് കാരണമാണെന്ന് നിങ്ങൾ കരുതുന്നുവെങ്കിൽ പിന്തുണയുമായി ബന്ധപ്പെടുക.</translation> <translation id="4289540628985791613">അവലോകനം</translation> +<translation id="4295072614469448764">നിങ്ങളുടെ ടെർമിനലിൽ ആപ്പ് ലഭ്യമാണ്. നിങ്ങളുടെ ലോഞ്ചറിൽ ഒരു ഐക്കൺ ഉണ്ടായേക്കാം.</translation> <translation id="4296575653627536209">സൂപ്പർവൈസുചെയ്ത ഉപയോക്താവിനെ ചേർക്കുക</translation> +<translation id="4297219207642690536">പുനഃരാരംഭിച്ച് പുനഃസജ്ജീകരിക്കുക</translation> <translation id="4297322094678649474">ഭാഷകൾ മാറ്റുക</translation> <translation id="4300305918532693141">ഈ ക്രമീകരണം മാറ്റാൻ, <ph name="BEGIN_LINK" />സമന്വയം റീസെറ്റുചെയ്യുക<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">ദൈർഘ്യമേറിയത് (2 സെക്കൻഡ്)</translation> @@ -2186,6 +2207,7 @@ <translation id="4370975561335139969">നിങ്ങൾ നൽകിയ ഇമെയിലും പാസ്വേഡും പൊരുത്തപ്പെടുന്നില്ല</translation> <translation id="437184764829821926">വിപുലീകരിച്ച ഫോണ്ട് ക്രമീകരണങ്ങൾ</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Linux ഇൻസ്റ്റാളർ</translation> <translation id="4375035964737468845">ഡൗൺലോഡുചെയ്ത ഫയലുകൾ തുറക്കുക</translation> <translation id="4377363674125277448">സെർവറിന്റെ സർട്ടിഫിക്കറ്റിൽ ഒരു പ്രശ്നമുണ്ടായി.</translation> <translation id="4378154925671717803">ഫോൺ</translation> @@ -2304,6 +2326,7 @@ <translation id="4576541033847873020">Bluetooth ഉപകരണം ജോടിയാക്കുക</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> കാസ്റ്റുചെയ്യാനാവുന്നില്ല.</translation> <translation id="4580526846085481512">$1 ഇനങ്ങൾ ഇല്ലാതാക്കാൻ നിങ്ങൾ താൽപ്പര്യപ്പെടുന്നോ?</translation> +<translation id="4582497162516204941">Linux (ബീറ്റ) ഉപയോഗിച്ച് ഇൻസ്റ്റാൾ ചെയ്യുക</translation> <translation id="4582563038311694664">എല്ലാ ക്രമീകരണങ്ങളും പുനഃസജ്ജമാക്കുക</translation> <translation id="4585793705637313973">പേജ് എഡിറ്റുചെയ്യുക</translation> <translation id="4589268276914962177">പുതിയ ടെർമിനൽ</translation> @@ -2547,6 +2570,7 @@ <translation id="4953808748584563296">ഡിഫോൾട്ടായ ഓറഞ്ച് അവതാർ</translation> <translation id="4955814292505481804">വാർഷികം</translation> <translation id="4957949153200969297"><ph name="IDS_SHORT_PRODUCT_NAME" /> സമന്വയവുമായി ബന്ധപ്പെട്ട ഫീച്ചറുകൾ മാത്രം പ്രവർത്തനക്ഷമമാക്കുക</translation> +<translation id="4959262764292427323">പാസ്വേഡുകൾ നിങ്ങളുടെ Google അക്കൗണ്ടിൽ സംരക്ഷിക്കുന്നതിനാൽ, ഏത് ഉപകരണത്തിലും അവ നിങ്ങൾക്ക് ഉപയോഗിക്കാനാവും</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">നിങ്ങൾ തിരഞ്ഞെടുത്ത ഫോൾഡറിൽ സുപ്രധാന ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു. ഈ ഫോൾഡറിലേക്ക് "$1" എന്നതിന് ശാശ്വതമായ റീഡ് ആക്സസ്സ് അനുവദിക്കണമെന്ന് നിങ്ങൾക്ക് തീർച്ചയാണോ?</translation> <translation id="4964455510556214366">ക്രമീകരണം</translation> @@ -2726,6 +2750,7 @@ <translation id="5240817131241497236">Chrome-ൽ സമന്വയം, വ്യക്തിപരമാക്കൽ, മറ്റ് Google സേവനങ്ങൾ എന്നിവ നിയന്ത്രിക്കുന്ന ക്രമീകരണം മാറിയിട്ടുണ്ട്. ഇത് നിങ്ങളുടെ ക്രമീകരണത്തെ ബാധിച്ചേക്കാം.</translation> <translation id="5241128660650683457">നിങ്ങൾ സന്ദർശിക്കുന്ന വെബ്സൈറ്റുകളിലെ എല്ലാ വിവരവും വായിക്കുക</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" പ്രവർത്തനക്ഷമമാക്കണോ?</translation> +<translation id="5243522832766285132">അൽപ്പസമയത്തിനുള്ളിൽ വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="5244474230056479698"><ph name="EMAIL" /> ഇമെയിലിലേക്ക് സമന്വയിപ്പിക്കുന്നു</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> എന്നത് ക്രാഷ് ചെയ്തു. അപ്ലിക്കേഷന് പുനരാംഭിക്കുന്നതിനായി ഈ ബലൂണ് ക്ലിക്ക് ചെയ്യുക.</translation> <translation id="5247051749037287028">നാമം പ്രദർശിപ്പിക്കുക (ഓപ്ഷണൽ)</translation> @@ -2748,6 +2773,7 @@ <translation id="5264148714798105376">ഇതിന് ഒന്നോ രണ്ടോ മിനിറ്റ് എടുത്തേക്കാം.</translation> <translation id="5264252276333215551">കിയോസ്ക് മോഡിൽ നിങ്ങളുടെ അപ്ലിക്കേഷൻ സമാരംഭിക്കാൻ ഇന്റർനെറ്റിൽ കണക്റ്റുചെയ്യുക.</translation> <translation id="5265562206369321422">ഒരു ആഴ്ചയിലേറെയായി ഓഫ്ലൈനിലാണ്</translation> +<translation id="5265797726250773323">ഇൻസ്റ്റാൾ ചെയ്യുന്നതിനിടെ പിശക്</translation> <translation id="5266113311903163739">സര്ട്ടിഫിക്കേഷന് അതോറിറ്റി ഇറക്കുമതി പിശക്</translation> <translation id="5269977353971873915">പ്രിന്റുചെയ്യൽ പരാജയപ്പെട്ടു</translation> <translation id="5271549068863921519">പാസ്വേഡ് സംരക്ഷിക്കുക</translation> @@ -2770,6 +2796,7 @@ <translation id="529175790091471945">ഈ ഉപകരണം ഫോർമാറ്റുചെയ്യുക</translation> <translation id="5292195676005197571">മിക്ക കീകളും ഉപയോഗിക്കുന്നതിന്, ബട്ടണിൽ അമർത്തിയാൽ മതി</translation> <translation id="5293170712604732402">ക്രമീകരണത്തെ അവയുടെ യഥാർത്ഥ ഡിഫോൾട്ടുകളിലേക്ക് പുനഃസ്ഥാപിക്കുക</translation> +<translation id="5297082477358294722">പാസ്വേഡ് സംരക്ഷിച്ചു. നിങ്ങളുടെ <ph name="SAVED_PASSWORDS_STORE" /> എന്നതിൽ സംരക്ഷിച്ച പാസ്വേഡുകൾ കാണുക, മാനേജ് ചെയ്യുക.</translation> <translation id="5298219193514155779">തീം സൃഷ്ടിച്ചത്</translation> <translation id="5299109548848736476">ട്രാക്കുചെയ്യരുത്</translation> <translation id="5299682071747318445">നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് ഉപയോഗിച്ച് എല്ലാ ഡാറ്റയും എൻക്രിപ്റ്റുചെയ്തു.</translation> @@ -2998,6 +3025,7 @@ <translation id="5612720917913232150">നിങ്ങളുടെ കമ്പ്യൂട്ടറിന്റെ ലൊക്കേഷൻ ഉപയോഗിക്കാൻ <ph name="URL" /> ആഗ്രഹിക്കുന്നു</translation> <translation id="5612734644261457353">ക്ഷമിക്കണം, ഇപ്പോഴും നിങ്ങളുടെ പാസ്വേഡ് സ്ഥിരീകരിക്കാൻ കഴിഞ്ഞില്ല. ശ്രദ്ധിക്കുക: സമീപകാലത്ത് നിങ്ങൾ പാസ്വേഡ് മാറ്റിയിട്ടുണ്ടെങ്കിൽ, പുതിയ പാസ്വേഡ് സൈൻ ഔട്ട് ചെയ്തുകഴിഞ്ഞാൽ ബാധകമാകും, പഴയ പാസ്വേഡ് ഇവിടെ ഉപയോഗിക്കുക.</translation> <translation id="5614190747811328134">ഉപയോക്തൃ അറിയിപ്പ്</translation> +<translation id="5614553682702429503">പാസ്വേഡ് സംരക്ഷിക്കണോ?</translation> <translation id="561698261642843490">Firefox അടയ്ക്കുക</translation> <translation id="5618075537869101857">ക്ഷമിക്കണം, കിയോസ്ക് അപ്ലിക്കേഷൻ സമാരംഭിക്കാനായില്ല.</translation> <translation id="5618333180342767515">(ഇതിന് കുറച്ച് മിനിറ്റെടുത്തേയ്ക്കാം)</translation> @@ -3038,6 +3066,7 @@ <translation id="5677503058916217575">പേജ് ഭാഷ:</translation> <translation id="5677928146339483299">തടഞ്ഞു</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> എന്നതിലേക്ക് റീഡുചെയ്യാനും റൈറ്റുചെയ്യാനുമുള്ള ആക്സസ്സ് അനുവദിച്ചിരിക്കുന്നു.</translation> +<translation id="5678784840044122290">നിങ്ങളുടെ ടെർമിനലിനുള്ളിൽ Linux അപ്ലിക്കേഷൻ ലഭ്യമാകും, നിങ്ങളുടെ ലോഞ്ചറിൽ അതിന്റെ ഐക്കൺ കാണിച്ചേക്കാം.</translation> <translation id="5678955352098267522"><ph name="WEBSITE_1" /> എന്നതിലെ നിങ്ങളുടെ വിവരം വായിക്കുക</translation> <translation id="5684661240348539843">അസറ്റ് ഐഡന്റിഫയർ</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />ഒരു ആർക്കൈവിൽ നിന്നോ വെർച്വൽ ഡിസ്ക്കിൽ നിന്നോ വിച്ഛേദിക്കാനാവുന്നില്ല<ph name="END_BOLD" /> @@ -3133,6 +3162,7 @@ <translation id="5832805196449965646">വ്യക്തിയെ ചേർക്കുക</translation> <translation id="583281660410589416">അജ്ഞാതം</translation> <translation id="5832976493438355584">ലോക്കുചെയ്തു</translation> +<translation id="5833397272224757657">നിങ്ങൾ സന്ദർശിക്കുന്ന സൈറ്റുകളിലെ ഉള്ളടക്കവും ബ്രൗസർ ആക്റ്റിവിറ്റിയും ആശയവിനിമയങ്ങളും, വ്യക്തിപരമാക്കാൻ ഉപയോഗിക്കുന്നു</translation> <translation id="5833610766403489739">നിങ്ങളുടെ ഫയൽ മറ്റെവിടെയോ ആണ്. നിങ്ങളുടെ ഡൗൺലോഡ് ലൊക്കേഷൻ ക്രമീകരണം പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="5833726373896279253">ഈ ക്രമീകരണങ്ങള് ഉടമയ്ക്ക് മാത്രമേ പരിഷ്ക്കരിക്കാന് കഴിയൂ:</translation> <translation id="5834581999798853053">ഏകദേശം <ph name="TIME" /> മിനിറ്റ് ശേഷിക്കുന്നു</translation> @@ -3186,6 +3216,7 @@ <translation id="5908769186679515905">Flash റൺ ചെയ്യുന്നതിൽ നിന്ന് സൈറ്റുകളെ തടയുക</translation> <translation id="5910363049092958439">ചിത്രം ഇതായി സംരക്ഷി&ക്കുക...</translation> <translation id="5911737117543891828">താൽക്കാലിക Google ഡ്രൈവ് ഓഫ്ലൈൻ ഫയലുകൾ ഇല്ലാതാക്കും. നിങ്ങൾ ഓഫ്ലൈനിൽ ലഭ്യമാക്കുന്നതിന് സജ്ജമാക്കിയ ഫയലുകൾ ഈ ഉപകരണത്തിൽ നിന്ന് ഇല്ലാതാകില്ല.</translation> +<translation id="5911887972742538906">നിങ്ങളുടെ Linux അപ്ലിക്കേഷൻ ഇൻസ്റ്റാൾ ചെയ്യുന്ന സമയത്ത് ഒരു പിശക് സംഭവിച്ചു.</translation> <translation id="5912378097832178659">&സെര്ച് എഞ്ചിനുകള് എഡിറ്റ് ചെയ്യൂ...</translation> <translation id="5914724413750400082">മൊഡ്യൂലസ് (<ph name="MODULUS_NUM_BITS" /> ബിറ്റുകൾ): <ph name="MODULUS_HEX_DUMP" /> @@ -3373,6 +3404,7 @@ <translation id="6198102561359457428">സൈൻ ഔട്ട് ചെയ്ത് വീണ്ടും സൈൻ ഇൻ ചെയ്യുക...</translation> <translation id="6198252989419008588">PIN മാറ്റുക</translation> <translation id="6199801702437275229">സ്പെയ്സ് വിവരത്തിനായി കാത്തിരിക്കുന്നു...</translation> +<translation id="6201792273624501289">Linux ആപ്പുകൾ</translation> <translation id="6204015976622790023">നിങ്ങളുടെ സ്ക്രീനിൽ എന്താണുള്ളതെന്നതുമായി ബന്ധപ്പെട്ട്, Assistant-ൽ നിന്നുള്ള പ്രസക്തമായ നിർദ്ദേശങ്ങൾ കാണുക.</translation> <translation id="6205710420833115353">ചില പ്രവർത്തനങ്ങൾ പ്രതീക്ഷിച്ചതിലും സമയമെടുക്കുന്നു. നിങ്ങൾക്ക് അവ അവസാനിപ്പിക്കണോ?</translation> <translation id="6206311232642889873">ചിത്രം പകര്ത്തു&ക</translation> @@ -3850,6 +3882,7 @@ <translation id="6945221475159498467">തിരഞ്ഞെടുക്കുക</translation> <translation id="694592694773692225">ഈ പേജിൽ റീഡയറക്ട് ചെയ്യുന്നത് ബ്ലോക്ക് ചെയ്തു.</translation> <translation id="6949306908218145636">തുറന്ന പേജുകൾ ബുക്ക്മാർക്ക് ചെയ്യുക...</translation> +<translation id="6950627417367801484">ആപ്പുകൾ പുനഃസ്ഥാപിക്കുക</translation> <translation id="6951153907720526401">പേയ്മെന്റ് ഹാൻഡ്ലറുകൾ</translation> <translation id="6955446738988643816">പോപ്പ്അപ്പ് പരിശോധിക്കുക</translation> <translation id="6957231940976260713">സേവനത്തിന്റെ പേര്</translation> @@ -3975,6 +4008,7 @@ <translation id="7127980134843952133">ഡൗൺലോഡ് ചരിത്രം</translation> <translation id="7131040479572660648"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, <ph name="WEBSITE_3" /> എന്നിവയിലെ നിങ്ങളുടെ വിവരം വായിക്കുക</translation> <translation id="713122686776214250">പേ&ജ് ചേർക്കുക...</translation> +<translation id="7133578150266914903">നിങ്ങളുടെ അഡ്മിൻ ഈ ഉപകരണം (<ph name="PROGRESS_PERCENT" />) മുമ്പത്തെ അവസ്ഥയിലേക്ക് പുനഃസ്ഥാപിക്കുകയാണ്</translation> <translation id="7134098520442464001">പാഠത്തെ ചെറുതാക്കുക</translation> <translation id="7136694880210472378">സ്ഥിരസ്ഥിതിയാക്കുക</translation> <translation id="7136984461011502314"><ph name="PRODUCT_NAME" /> ലേക്ക് സ്വാഗതം</translation> @@ -4175,6 +4209,7 @@ <translation id="7463006580194749499">വ്യക്തിയെ ചേർക്കുക</translation> <translation id="7464490149090366184">സിപ്പുചെയ്യൽ പരാജയപ്പെട്ടു, നിലവിലുള്ള ഇനങ്ങൾ: "$1"</translation> <translation id="7465778193084373987">നെറ്റ്സ്കേപ്പ് സര്ട്ടിഫിക്കറ്റ് അസാധുവാക്കല് URL</translation> +<translation id="7469406957790636836">ഇത് ഓണാക്കാൻ, ആദ്യം <ph name="BEGIN_LINK" />ഭാഷകളും ഇൻപുട്ടും<ph name="END_LINK" /> എന്നതിൽ അക്ഷരത്തെറ്റ് പരിശോധന ഓണാക്കുക</translation> <translation id="7469894403370665791">ഈ നെറ്റ്വര്ക്കിലേക്ക് സ്വപ്രേരിതമായി ബന്ധിപ്പിക്കുന്നു</translation> <translation id="747114903913869239">പിശക്: വിപുലീകരണം ഡീകോഡ് ചെയ്യാനാവില്ല</translation> <translation id="7473753388963818366"><ph name="DEVICE_TYPE" /> നിങ്ങൾക്കായി സജ്ജമാക്കാം</translation> @@ -4272,6 +4307,7 @@ <translation id="7606992457248886637">അധികാരികള്</translation> <translation id="7607002721634913082">അല്പംനിര്ത്തി</translation> <translation id="7607274158153386860">ടാബ്ലെറ്റ് സൈറ്റ് അഭ്യർത്ഥിക്കുക</translation> +<translation id="7609148976235050828">ഇന്റർനെറ്റ് കണക്റ്റ് ചെയ്ത ശേഷം വീണ്ടും ശ്രമിക്കുക.</translation> <translation id="7611008212562900400">നിങ്ങളുടെ ഉപകരണം, ആപ്പ്, വെബ് എന്നിവ തിരയുക...</translation> <translation id="7616214729753637086">ഉപകരണം എൻറോൾ ചെയ്യുന്നു...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" ഉപകരണത്തിലേക്ക് കണക്റ്റുചെയ്യുന്നു</translation> @@ -4340,6 +4376,7 @@ <translation id="7730449930968088409">നിങ്ങളുടെ സ്ക്രീനിന്റെ ഉള്ളടക്കം ക്യാപ്ചർ ചെയ്യുക</translation> <translation id="7730494089396812859">ക്ലൗഡ് ബാക്കപ്പ് വിശദാംശങ്ങൾ കാണിക്കുക</translation> <translation id="7732111077498238432">നെറ്റ്വർക്ക് നയത്തിനാൽ നിയന്ത്രിതമാണ്</translation> +<translation id="7737238973539693982">Linux (ബീറ്റ) ഇല്ലാതാക്കുക</translation> <translation id="773905249182896430">അപകടകരമായ സൈറ്റുകളിൽ നിന്ന് നിങ്ങളെയും ഉപകരണത്തെയും പരിരക്ഷിക്കുന്നു</translation> <translation id="7740996059027112821">സാധാരണം</translation> <translation id="7748528009589593815">മുമ്പത്തെ ടാബ്</translation> @@ -4528,6 +4565,7 @@ <translation id="7974936243149753750">ഓവർസ്കാൻ</translation> <translation id="7977551819349545646">Chromebox അപ്ഡേറ്റുചെയ്യുന്നു...</translation> <translation id="7978412674231730200">സ്വകാര്യ കീ</translation> +<translation id="7978450511781612192">ഇത് നിങ്ങളെ Google അക്കൗണ്ടുകളിൽ നിന്ന് സൈൻ ഔട്ട് ചെയ്യിക്കും. നിങ്ങളുടെ ബുക്ക്മാർക്കുകൾ, ചരിത്രം, പാസ്വേഡുകൾ എന്നിവയും മറ്റും ഇനിയങ്ങോട്ട് സമന്വയിക്കില്ല.</translation> <translation id="7979036127916589816">സമന്വയ പിശക്</translation> <translation id="7980084013673500153">അസറ്റ് ഐഡി: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">കൂടുതൽ വേഗത്തിൽ ബ്രൗസ് ചെയ്യാനും തിരയാനും പേജുകൾ റീലോഡ് ചെയ്യുക</translation> @@ -4692,6 +4730,7 @@ <translation id="8226619461731305576">ക്യൂവിൽ</translation> <translation id="8226742006292257240">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലേക്ക് നിര്ണ്ണയിച്ച ക്രമരഹിതമായി ജനറേറ്റുചെയ്ത TPM പാസ്വേഡ് ചുവടെ:</translation> <translation id="8227119283605456246">ഫയൽ അറ്റാച്ചുചെയ്യുക</translation> +<translation id="8230134520748321204"><ph name="ORIGIN" /> എന്നതിനായി പാസ്വേഡുകൾ സംരക്ഷിക്കണോ?</translation> <translation id="8234795456569844941">ഈ പ്രശ്നം പരിഹരിക്കുന്നതിന് ഞങ്ങളുടെ എഞ്ചിനീയർമാരെ സഹായിക്കുക. നിങ്ങൾക്ക് പ്രൊഫൈൽ പിശക് സന്ദേശം ലഭിക്കുന്നതിന് മുമ്പ് എന്താണ് സംഭവിച്ചതെന്ന് കൃത്യമായി ഞങ്ങളോട് പറയുക:</translation> <translation id="8234989666557591529">നിങ്ങളുടെ <ph name="DEVICE_TYPE" /> അൺലോക്കുചെയ്യാൻ ഫോൺ തിരഞ്ഞെടുക്കുക</translation> <translation id="8239020549147958415"><ph name="FULL_NAME" /> ആയി സമന്വയിപ്പിക്കുക</translation> @@ -4810,6 +4849,7 @@ <translation id="8438328416656800239">ഒരു സ്മാർട്ട് ബ്രൗസറിലേക്ക് മാറുക</translation> <translation id="8438566539970814960">തിരയലുകളും ബ്രൗസിംഗും മികച്ചതാക്കുക</translation> <translation id="8439506636278576865">പേജുകൾ ഈ ഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യാനുള്ള ഓഫർ</translation> +<translation id="8440630305826533614">Linux ആപ്പുകൾ</translation> <translation id="8446884382197647889">കൂടുതലറിയുക</translation> <translation id="8447409163267621480">ഒന്നുകിൽ Ctrl അല്ലെങ്കിൽ, Alt ഉൾപ്പെടുത്തുക</translation> <translation id="8448729345478502352">സ്ക്രീനിലെ ഇനങ്ങൾ കൂടുതൽ ചെറുതോ വലുതോ ആക്കുക</translation> @@ -4854,6 +4894,7 @@ <translation id="8497219075884839166">Windows യൂട്ടിലിറ്റികൾ</translation> <translation id="8498214519255567734">മങ്ങിയ വെളിച്ചത്തിൽ സ്ക്രീൻ നോക്കുന്നതോ വായിക്കുന്നതോ എളുപ്പമാക്കുക</translation> <translation id="8498395510292172881">Chrome-ൽ വായന തുടരുക</translation> +<translation id="8502536196501630039">Google Play-യിൽ നിന്ന് ആപ്പുകൾ ഉപയോഗിക്കാൻ, ആദ്യം നിങ്ങളുടെ ആപ്പുകൾ പുനഃസ്ഥാപിക്കണം. ചില ഡാറ്റ നഷ്ടപ്പെട്ടേക്കാം.</translation> <translation id="8503813439785031346">ഉപയോക്തൃനാമം</translation> <translation id="850875081535031620">ദോഷകരമായ സോഫ്റ്റ്വെയറൊന്നും കണ്ടെത്തിയില്ല</translation> <translation id="8509646642152301857">അക്ഷരപ്പിശക് പരിശോധന നിഘണ്ടു ഡൗൺലോഡുചെയ്യുന്നത് പരാജയപ്പെട്ടു.</translation> @@ -4983,6 +5024,7 @@ <translation id="8698464937041809063">Google ഡ്രോയിംഗ്</translation> <translation id="869884720829132584">അപ്ലിക്കേഷനുകള് മെനു</translation> <translation id="869891660844655955">കാലഹരണപ്പെടല് തീയതി</translation> +<translation id="8699566574894671540">ഇത് ഓണാക്കുന്നതിന്, എഡിറ്റ് മെനുവിൽ ടൈപ്പ് ചെയ്യുന്ന സമയത്ത് അക്ഷരത്തെറ്റ് പരിശോധന എന്നത് ആദ്യം തിരഞ്ഞെടുക്കുക</translation> <translation id="870073306461175568">നെറ്റ്വർക്ക് ഫയൽ പങ്കിടലുകൾ</translation> <translation id="8701677791353449257">ഉപകരണ നാമം <ph name="REGEX" /> റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടണം.</translation> <translation id="8704521619148782536">ഇത് സാധാരണയിലും കൂടുതൽ സമയമെടുക്കുന്നു. നിങ്ങൾക്ക് കാത്തിരിക്കാം, അല്ലെങ്കിൽ റദ്ദാക്കി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation> @@ -5021,6 +5063,7 @@ <translation id="8754200782896249056"><p> ഒരു പിന്തുണ ഡെസ്ക്ടോപ്പ് പരിതസ്ഥിതിയ്ക്ക് കീഴിൽ <ph name="PRODUCT_NAME" /> പ്രവർത്തിക്കുമ്പോൾ, സിസ്റ്റം പ്രോക്സി ക്രമീകരണം ഉപയോഗിക്കും. നിങ്ങളുടെ സിസ്റ്റം പിന്തുണച്ചില്ല അല്ലെങ്കിൽ നിങ്ങളുടെ സിസ്റ്റം കോൺഫിഗറേഷൻ സമാരംഭിക്കുന്നതിൽ ഒരു പ്രശ്നമുണ്ടായി.</p> <p>പക്ഷേ കമാൻഡ് ലൈൻ വഴി നിങ്ങൾക്ക് ഇപ്പോഴും കോൺഫിഗർചെയ്യാനാവും. ഫ്ലാഗുകളെയും പരിതസ്ഥിതി വേരിയബിളുകളെയും കുറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്ക് <code>man <ph name="PRODUCT_BINARY_NAME" /></code>കാണുക .</p></translation> <translation id="8755376271068075440">&വലുത്</translation> +<translation id="8756969031206844760">പാസ്വേഡ് അപ്ഡേറ്റ് ചെയ്യണോ?</translation> <translation id="8757090071857742562">ഡെസ്ക്ടോപ്പ് കാസ്റ്റുചെയ്യാനാകുന്നില്ല. നിങ്ങളുടെ സ്ക്രീൻ പങ്കിടാൻ തുടങ്ങുന്ന കാര്യം സ്ഥിരീകരിച്ചോയെന്ന് കാണാൻ പരിശോധിക്കുക.</translation> <translation id="8757640015637159332">എല്ലാവർക്കുമുള്ള സെഷൻ നൽകുക</translation> <translation id="8757742102600829832">ഇതിലേക്ക് കണക്റ്റുചെയ്യാൻ ഒരു Chromebox തിരഞ്ഞെടുക്കുക</translation> @@ -5178,7 +5221,9 @@ <translation id="9009369504041480176">അപ്ലോഡുചെയ്യുന്നു (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">എല്ലായ്പ്പോഴും ഐക്കൺ കാണിക്കുക</translation> <translation id="9011178328451474963">അവസാന ടാബ്</translation> +<translation id="9013707997379828817">നിങ്ങളുടെ അഡ്മിൻ ഉപകരണം മുമ്പത്തെ അവസ്ഥയിലേക്ക് പുനഃസ്ഥാപിക്കുകയാണ്. പ്രധാനപ്പെട്ട ഫയലുകൾ സംരക്ഷിക്കുക, തുടർന്ന് പുനഃരാരംഭിക്കുക. ഉപകരണത്തിലെ എല്ലാ ഡാറ്റയും ഇല്ലാതാവും.</translation> <translation id="9014987600015527693">മറ്റൊരു ഫോൺ കാണിക്കുക</translation> +<translation id="9018218886431812662">ഇൻസ്റ്റലേഷൻ പൂർത്തിയായി</translation> <translation id="901834265349196618">ഇമെയില്</translation> <translation id="9019062154811256702">ഓട്ടോഫിൽ ക്രമീകരണം റീഡുചെയ്യുക, മാറ്റുക</translation> <translation id="9020362265352758658">4x</translation> @@ -5202,6 +5247,7 @@ <translation id="9038649477754266430">പേജുകൾ കൂടുതൽ വേഗത്തിൽ ലോഡുചെയ്യാൻ ഒരു പ്രവചന സേവനം ഉപയോഗിക്കുക</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">ടാബുകൾ മ്യൂട്ടുചെയ്യുക</translation> +<translation id="9040661932550800571"><ph name="ORIGIN" /> എന്നതിനായി പാസ്വേഡുകൾ അപ്ഡേറ്റ് ചെയ്യണോ?</translation> <translation id="9041692268811217999">അഡ്മിനിസ്ട്രേറ്റർ, നിങ്ങളുടെ മെഷീനിലുള്ള ലോക്കൽ ഫയലുകളിലേക്കുള്ള ആക്സസ്സ് പ്രവർത്തനരഹിതമാക്കിയിരിക്കുന്നു</translation> <translation id="9042893549633094279">സ്വകാര്യതയും സുരക്ഷയും</translation> <translation id="904451693890288097">"<ph name="DEVICE_NAME" />" എന്നതിനായുള്ള പാസ്കീ നൽകുക:</translation> @@ -5306,6 +5352,7 @@ <translation id="9203478404496196495">ടാബ് അൺമ്യൂട്ടുചെയ്യുക</translation> <translation id="9203904171912129171">ഒരു ഉപകരണം തിരഞ്ഞെടുക്കുക</translation> <translation id="9203962528777363226">പുതിയ ഉപയോക്താക്കളെ ചേരുന്നതിൽ നിന്ന് ഈ ഉപകരണത്തിന്റെ അഡ്മിനിസ്ട്രേറ്റർ അപ്രാപ്തമാക്കി</translation> +<translation id="9213073329713032541">ഇൻസ്റ്റലേഷൻ ആരംഭിച്ചു.</translation> <translation id="9214520840402538427">ക്ഷമിക്കണം! ഇൻസ്റ്റാളേഷൻ സമയ-ആട്രിബ്യൂട്ടുകളുടെ സമാരംഭിക്കൽ കാലഹരണപ്പെട്ടു. നിങ്ങളുടെ പിന്തുണ പ്രതിനിധിയെ ബന്ധപ്പെടുക.</translation> <translation id="9214695392875603905">കപ്പ്കേക്ക്</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" ചേർത്തു</translation> @@ -5360,6 +5407,7 @@ <translation id="988978206646512040">പാസ്ഫ്രെയ്സ് പൂരിപ്പിക്കാതിരിക്കാൻ കഴിയില്ല</translation> <translation id="992032470292211616">വിപുലീകരണങ്ങൾ, അപ്ലിക്കേഷനുകൾ, തീമുകൾ എന്നിവ നിങ്ങളുടെ ഉപകരണത്തിന് ദോഷകരമാകാം. തുടരാൻ നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടോ?</translation> <translation id="992592832486024913">ChromeVox (സ്പോക്കൺ ഫീഡ്ബാക്ക്) പ്രവർത്തനരഹിതമാക്കുക</translation> +<translation id="993540765962421562">ഇൻസ്റ്റലേഷൻ പുരോഗതിയിലാണ്</translation> <translation id="994289308992179865">&ലൂപ്പുചെയ്യുക</translation> <translation id="996250603853062861">സുരക്ഷിത കണക്ഷന് സ്ഥാപിക്കുന്നു...</translation> <translation id="998747458861718449">പരിശോധിക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb index 81881fc..7d7013fc 100644 --- a/chrome/app/resources/generated_resources_mr.xtb +++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">शोधत आहे...</translation> <translation id="1316495628809031177">सिंक थांबवले आहे</translation> <translation id="1319979322914001937">Chrome वेब स्टोअरमधील विस्ताराची फिल्टर केलेली सूची दर्शविणारा अॅप. सूचीमधील विस्तार अॅपवरून थेट इंस्टॉल केले जाऊ शकतात.</translation> +<translation id="1322046419516468189">सेव्ह केलेले पासवर्ड तुमच्या <ph name="SAVED_PASSWORDS_STORE" /> मध्ये पाहा आणि व्यवस्थापित करा</translation> <translation id="1326317727527857210">आपल्या इतर डिव्हाइसेसवरील आपले टॅब प्राप्त करण्यासाठी, Chrome मध्ये साइन इन करा.</translation> <translation id="1327074568633507428">Google क्लाउड प्रिंट वरील प्रिंटर</translation> <translation id="1327977588028644528">गेटवे</translation> @@ -417,11 +418,13 @@ <translation id="1618268899808219593">म&दत केंद्र</translation> <translation id="162035744160882748">सिंक, पर्सनलायझेशन आणि इतर Google सेवा सुरू करा</translation> <translation id="1620510694547887537">कॅमेरा</translation> +<translation id="1623132449929929218">इमेज सध्या उपलब्ध नाहीत. वॉलपेपर संग्रह पाहण्यासाठी कृपया इंटरनेटला पुन्हा कनेक्ट करा.</translation> <translation id="1624026626836496796">हे फक्त एकदाच घडेल आणि आपले क्रेडेन्शियल संचयित केले जाणार नाहीत.</translation> <translation id="1627276047960621195">फाईल वर्णनकर्ते</translation> <translation id="1627408615528139100">आधीच डाउनलोड केलेले आहे</translation> <translation id="1632803087685957583">आपल्या कीबोर्डचा पुनरावृत्ती दर, शब्दाचे पूर्वानुमान आणि बरेच काही समायोजित करण्याची आपल्याला अनुमती देते</translation> <translation id="1635033183663317347">आपल्या पालकाद्वारे इंस्टॉल केले.</translation> +<translation id="1635885551358739414">Chrome आणि भाषांतर, शोध आणि जाहिरातींसारख्या इतर Google सेवा पर्सनलाइझ करण्यासाठी Google तुम्ही भेट देत असलेल्या साइटवरील आशय आणि ब्राउझर अॅक्टिव्हिटी तसेच संवाद वापरू शकते. तुम्ही हे सेटिंग्जमध्ये कस्टमाइझ करू शकता.</translation> <translation id="1637224376458524414">आपल्या iPhone वर हा बुकमार्क मिळवा</translation> <translation id="1637765355341780467">आपले प्रोफाइल उघडताना काहीतरी चूक झाली. काही वैशिष्ट्ये अनुपलब्ध असू शकतात.</translation> <translation id="1639239467298939599">लोड करीत आहे</translation> @@ -452,6 +455,7 @@ <translation id="166179487779922818">पासवर्ड खूप लहान आहे.</translation> <translation id="1661867754829461514">पिन गहाळ आहे </translation> <translation id="16620462294541761">क्षमस्व, आपला पासवर्ड सत्यापित करणे शक्य नाही. कृपया पुन्हा प्रयत्न करा.</translation> +<translation id="1662550410081243962">पेमेंट पद्धती सेव्ह करा आणि भरा</translation> <translation id="166278006618318542">विषय सार्वजनिक की अल्गोरिदम</translation> <translation id="166439687370499867">शेअर केलेल्या नेटवर्कची कॉन्फिगरेशन बदलण्याची परवानगी नाही</translation> <translation id="1665611772925418501">फाइल सुधारली जाऊ शकली नाही.</translation> @@ -461,6 +465,7 @@ <translation id="1673137583248014546"><ph name="URL" /> ला तुमच्या सिक्युरिटी कीची निर्मिती आणि मॉडेल पहायचा आहे</translation> <translation id="167832068858235403">आवाज कमी करा</translation> <translation id="1679068421605151609">विकसक साधने</translation> +<translation id="1680849702532889074">तुमच्या Linux अॅप्लिकेशनच्या इंस्टॉलेशन दरम्यान एरर आली.</translation> <translation id="16815041330799488">क्लिपबोर्डवर कॉपी केलेला मजकूर आणि इमेज पाहण्याची अनुमती साइटना देऊ नका</translation> <translation id="1682548588986054654">नवीन गुप्त विंडो</translation> <translation id="168715261339224929">तुमच्या सर्व डिव्हाइसवर तुमचे बुकमार्क मिळवण्यासाठी, सिंक चालू करा.</translation> @@ -496,6 +501,7 @@ <translation id="1732215134274276513">टॅब अनपिन करा</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> कदाचित अपडेट होत राहणार नाही</translation> <translation id="1736419249208073774">एक्सप्लोर करा</translation> +<translation id="1736827427463982819">Linux (बीटा) बंद करा</translation> <translation id="1737968601308870607">बग नोंदवा</translation> <translation id="1741314857973421784">सुरू ठेवा</translation> <translation id="174173592514158117">सर्व Play फोल्डर दाखवा</translation> @@ -668,6 +674,7 @@ <translation id="1997484222658892567"><ph name="URL" /> ला तुमच्या स्थानिक काँप्युटरवर मोठ्या प्रमाणावर डेटा कायमचा स्टोअर करायचा आहे</translation> <translation id="1997616988432401742">तुमची प्रमाणपत्रे</translation> <translation id="1999115740519098545">स्टार्टअप वर</translation> +<translation id="2000419248597011803">अॅड्रेस बार आणि सर्च बॉक्समधून तुमच्या डीफॉल्ट शोध इंजिनला काही कुकीज आणि शोध पाठवते</translation> <translation id="2001796770603320721">ड्राइव्ह मध्ये व्यवस्थापित करा</translation> <translation id="2004663115385769400">$१ सह उघडता आले नाही</translation> <translation id="200544492091181894">तुम्ही हे नंतर कधीही सेटिंग्ज मध्ये बदलू शकता.</translation> @@ -694,6 +701,7 @@ <translation id="2045969484888636535">कुकी अवरोधित करणे सुरू ठेवा</translation> <translation id="204622017488417136">आपले डिव्हाइस Chrome च्या मागील इंस्टॉल केलेल्या आवृत्तीवर परत जाईल. सर्व वापरकर्ता खाती आणि स्थानिक डेटा काढला जाईल. हे पूर्ववत केले जाऊ शकत नाही.</translation> <translation id="2048182445208425546">आपल्या नेटवर्क रहदारीवर प्रवेश करा</translation> +<translation id="2048653237708779538">कृती उपलब्ध नाही</translation> <translation id="204914487372604757">शॉर्टकट तयार करा </translation> <translation id="2050339315714019657">पोर्ट्रेट</translation> <translation id="2053312383184521053">निष्क्रिय स्थिती डेटा</translation> @@ -782,6 +790,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_DOMAIN" /> वरील <ph name="PEPPER_PLUGIN_NAME" /> ला तुमचा काँप्युटर अॅक्सेस करायचा आहे</translation> <translation id="2178614541317717477">CA तडजोड</translation> <translation id="218070003709087997">किती प्रती प्रिंट करायच्या ते सूचित करण्यासाठी संख्या वापरा (1 ते 999).</translation> +<translation id="2183558561014688873">जेव्हा तुमचे डिव्हाइस सक्रिय आणि अनलॉक केलेले असते तेव्हा तुम्ही कधीही "OK Google" म्हणून तुमचे असिस्टंट अॅक्सेस करा.</translation> <translation id="2187895286714876935">सर्व्हर प्रमाणपत्र आयात एरर</translation> <translation id="2187906491731510095">विस्तार अपडेट केले</translation> <translation id="2188881192257509750"><ph name="APPLICATION" /> उघडा</translation> @@ -853,6 +862,7 @@ <translation id="2282146716419988068">GPU प्रक्रिया</translation> <translation id="2282155092769082568">स्वयंकॉन्फिगरेशन URL:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">पत्ते भरा आणि सेव्ह करा</translation> <translation id="2286841657746966508">बिलिंग पत्ता</translation> <translation id="2288181517385084064">व्हिडिओ रेकॉर्डरवर स्विच करा</translation> <translation id="2288735659267887385">प्रवेशयोग्यता सेटिंग्ज</translation> @@ -934,6 +944,7 @@ <translation id="2425665904502185219">एकूण फाइल आकार</translation> <translation id="2428510569851653187">टॅब क्रॅश झाला तेव्हा तुम्ही नेमके काय करत होता ते सांगा</translation> <translation id="2431027948063157455">Google Assistant लोड होऊ शकले नाही, कृपया तुमचे नेटवर्क कनेक्शन तपासा आणि पुन्हा प्रयत्न करा.</translation> +<translation id="2432753757290432042">Linux (बीटा) अपडेट आवश्यक आहे</translation> <translation id="2433452467737464329">पृष्ठ स्वयं-रिफ्रेश करण्यासाठी URL मध्ये क्वेरी परम जोडा: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">स्वरूप</translation> <translation id="2433836460518180625">फक्त डिव्हाइस अनलॉक करा</translation> @@ -1183,6 +1194,7 @@ <translation id="2775104091073479743">फिंगरप्रिंट संपादित करा</translation> <translation id="2776441542064982094">नेटवर्कवर नोंदणी करण्यासाठी कोणतीही डिव्हाइसेस उपलब्ध नसल्यासारखे दिसते. आपले डिव्हाइस चालू असल्यास आणि इंटरनेटशी कनेक्ट केलेले असल्यास, त्यातील सूचना मॅन्युअलमधील सूचना वापरून त्याची नोंदणी करण्याचा प्रयत्न करा.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Linux अॅप्लिकेशन इंस्टॉल करताना एरर आली</translation> <translation id="2783298271312924866">डाउनलोड केलेले</translation> <translation id="2783321960289401138">शॉर्टकट तयार करा...</translation> <translation id="2783829359200813069">एंक्रिप्शन प्रकार निवडा</translation> @@ -1207,6 +1219,7 @@ <translation id="2812944337881233323">साइन आउट केल्यानंतर पुन्हा साइन इन करून पहा.</translation> <translation id="2812989263793994277">कोणत्याही इमेज दर्शवू नका</translation> <translation id="2814489978934728345">हे पृष्ठ लोड करणे थांबवा</translation> +<translation id="281504910091592009">तुमच्या <ph name="BEGIN_LINK" />Google खात्यामध्ये<ph name="END_LINK" /> सेव्ह केलेले पासवर्ड पाहा आणि व्यवस्थापित करा</translation> <translation id="2815500128677761940">बुकमार्क बार</translation> <translation id="2815693974042551705">बुकमार्क फोल्डर</translation> <translation id="2818476747334107629">प्रिंटर तपशील</translation> @@ -1287,6 +1300,7 @@ <translation id="2939938020978911855">उपलब्ध असलेले Bluetooth डिव्हाइस दर्शवा</translation> <translation id="2941112035454246133">निम्न</translation> <translation id="2942560570858569904">वाट पाहत आहे…</translation> +<translation id="2942581856830209953">हे पेज कस्टमाइझ करा</translation> <translation id="2943400156390503548">स्लाइड</translation> <translation id="2943503720238418293">लहान नाव वापरा</translation> <translation id="2946119680249604491">कनेक्शन जोडा</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">पासवर्ड:</translation> <translation id="3694027410380121301">मागील टॅब निवडा</translation> <translation id="3699624789011381381">ईमेल अॅड्रेस</translation> +<translation id="3699920817649120894">सिंक करणे आणि पर्सनलाइझेशन बंद करायचे आहे का?</translation> <translation id="3700888195348409686">सादर करत आहे (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004"><ph name="URL" /> समाविष्ट करण्यासाठी तुमची प्रारंभ पृष्ठे बदलली.</translation> <translation id="370415077757856453">JavaScript ब्लॉक केले</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&पूर्ण स्क्रीन</translation> <translation id="3828029223314399057">बुकमार्क शोधणे</translation> <translation id="3830674330436234648">प्लेबॅक उपलब्ध नाही</translation> +<translation id="3831436149286513437">Google ड्राइव्ह शोध सूचना</translation> <translation id="3831486154586836914">विंडो विहंगावलोकन मोड एंटर केला</translation> <translation id="383161972796689579">या डिव्हाइसच्या मालकाने नवीन वापरकर्त्यांना जोडले जाण्यापासून अक्षम केले आहे</translation> <translation id="3834775135533257713">"<ph name="INSTALLED_APP_NAME" />" सह संघर्ष असल्याने "<ph name="TO_INSTALL_APP_NAME" />" मध्ये अॅप्लिकेशन जोडणे शक्य झाले नाही.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">सर्वात कमी</translation> <translation id="3872220884670338524">आणखी कृती, <ph name="USERNAME" /> साठीचे खाते <ph name="DOMAIN" /> वर सेव्ह केले</translation> <translation id="3872991219937722530">डिस्क स्थान मोकळे करा अन्यथा डिव्हाइस अप्रतिसादात्मक बनेल.</translation> +<translation id="3873315167136380065">हे सुरू करण्यासाठी, तुमची सिंक पासफ्रेझ काढून टाकण्यासाठी <ph name="BEGIN_LINK" />सिंक रीसेट करा<ph name="END_LINK" /></translation> <translation id="3878840326289104869">पर्यवेक्षी वापरकर्ता तयार करत आहे</translation> <translation id="3879748587602334249">डाउनलोड व्यवस्थापक</translation> <translation id="3880709822663530586">जेव्हा तुमच्या डिव्हाइसचे ब्लूटूथ सुरू असेल तेव्हाच तुमची सिक्युरिटी की कार्य करते</translation> @@ -2028,6 +2045,7 @@ <translation id="4068776064906523561">फिंगरप्रिंट सेव्ह केले</translation> <translation id="407173827865827707">क्लिकवर</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: साइन इन एरर</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">ईमेल स्वाक्षरीकर्ता प्रमाणपत्र</translation> <translation id="407520071244661467">स्केल</translation> <translation id="4075639477629295004"><ph name="FILE_NAME" /> कास्ट करू शकलो नाही.</translation> @@ -2093,6 +2111,7 @@ <translation id="4192273449750167573">पुढील स्क्रीनवरील तुमच्या सेटिंग्जचे पुनरावलोकन करा</translation> <translation id="4193154014135846272">Google दस्तऐवज</translation> <translation id="4194570336751258953">टॅप-टू-क्लिक सक्षम करा</translation> +<translation id="4195249722193633765">Linux (बीटा) सह अॅप इंस्टॉल करा</translation> <translation id="4195643157523330669">नवीन विंडोमध्ये उघडा</translation> <translation id="4195814663415092787">आपण सोडले होते तिथून पुढे सुरु करा</translation> <translation id="4197674956721858839">झिप निवड</translation> @@ -2153,7 +2172,9 @@ <translation id="428608937826130504">शेल्फ आयटम 8</translation> <translation id="4287502004382794929">आपल्याकडे या डिव्हाइसची नोंदणी करण्यासाठी पुरेसा सॉफ्टवेअर परवाना नाही. कृपया आणखी खरेदी करण्यासाठी विक्रीशी संपर्क साधावा. आपल्याला हा संदेश त्रुटीमुळे दिसत असल्याचा आपल्याला विश्वास असल्यास, कृपया समर्थनाशी संपर्क साधा.</translation> <translation id="4289540628985791613">विहंगावलोकन</translation> +<translation id="4295072614469448764">तुमच्या टर्मिनलमध्ये अॅप उपलब्ध आहे. तुमच्या लाँचरमध्ये आयकन देखील असू शकतो.</translation> <translation id="4296575653627536209">पर्यवेक्षी वापरकर्ता जोडा</translation> +<translation id="4297219207642690536">रीस्टार्ट करा आणि रीसेट करा</translation> <translation id="4297322094678649474">भाषा बदला</translation> <translation id="4300305918532693141">ही सेटिंग बदलण्यासाठी, <ph name="BEGIN_LINK" />संकालन रीसेट करा<ph name="END_LINK" /></translation> <translation id="4305227814872083840">मोठा (2s)</translation> @@ -2189,6 +2210,7 @@ <translation id="4370975561335139969">आपण एंटर केलेला ईमेल आणि पासवर्ड जुळत नाही</translation> <translation id="437184764829821926">प्रगत फॉन्ट सेटिंग्ज</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Linux इंस्टॉलर</translation> <translation id="4375035964737468845">डाउनलोड केलेल्या फायली उघडा</translation> <translation id="4377363674125277448">सर्व्हरच्या प्रमाणपत्रास समस्या आली.</translation> <translation id="4378154925671717803">फोन</translation> @@ -2307,6 +2329,7 @@ <translation id="4576541033847873020">Bluetooth डिव्हाइस जोडा</translation> <translation id="4579581181964204535"><ph name="HOST_NAME" /> कास्ट करण्यात अक्षम.</translation> <translation id="4580526846085481512">तुमची खात्री आहे की आपण $1 आयटम हटवू इच्छिता?</translation> +<translation id="4582497162516204941">Linux (बीटा) इंस्टॉल करा</translation> <translation id="4582563038311694664">सर्व सेटिंग्ज रीसेट करा</translation> <translation id="4585793705637313973">पृष्ठ संपादित करा</translation> <translation id="4589268276914962177">नवीन टर्मिनल</translation> @@ -2550,6 +2573,7 @@ <translation id="4953808748584563296">डीफॉल्ट नारिंगी अवतार</translation> <translation id="4955814292505481804">वार्षिक</translation> <translation id="4957949153200969297">फक्त <ph name="IDS_SHORT_PRODUCT_NAME" /> सिंकशी संबंधित वैशिष्ट्ये सुरू करा</translation> +<translation id="4959262764292427323">तुम्हाला कोणत्याही डिव्हाइसवर वापरता यावे यासाठी तुमच्या Google खात्यामध्ये पासवर्ड सेव्ह केले जातात</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> - <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">आपण निवडलेल्या फोल्डरमध्ये संवेदनशील फायली आहेत. आपल्याला खात्री आहे की या फोल्डरवर आपण "$1" ला कायम वाचण्याचा प्रवेश मंजूर करू इच्छिता?</translation> <translation id="4964455510556214366">व्यवस्था</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Chrome मध्ये सिंक, पर्सनलायझेशन आणि इतर Google सेवा नियंत्रित करणारी सेटिंग्ज बदलली आहेत. याचा तुमच्या सद्य सेटिंग्जवर परिणाम होऊ शकतो.</translation> <translation id="5241128660650683457">आपण भेट देता त्या वेबसाइटवर आपला सर्व डेटा वाचा</translation> <translation id="5242724311594467048">"<ph name="EXTENSION_NAME" />" सक्षम करायचे?</translation> +<translation id="5243522832766285132">कृपया थोड्या वेळानंतर पुन्हा प्रयत्न करा</translation> <translation id="5244474230056479698"><ph name="EMAIL" /> वर संकालित करीत आहे</translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> क्रॅश झाला आहे. अॅप्लिकेशन रीस्टार्ट करण्यासाठी या फुग्यावर क्लिक करा.</translation> <translation id="5247051749037287028">डिस्प्ले नाव (पर्यायी)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">यास मिनिटभर किंवा त्याहून अधिक वेळ लागू शकतो.</translation> <translation id="5264252276333215551">कृपया कियोस्क मोडमध्ये आपला अॅप लाँच करण्यासाठी इंटरनेटशी कनेक्ट करा.</translation> <translation id="5265562206369321422">एका आठवड्यापेक्षा जास्त ऑफलाइन</translation> +<translation id="5265797726250773323">इंस्टॉल करताना एरर आली</translation> <translation id="5266113311903163739">प्रमाणन अधिकृतता आयात एरर</translation> <translation id="5269977353971873915">प्रिंट अयशस्वी</translation> <translation id="5271549068863921519">पासवर्ड सेव्ह करा</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">हे डीव्हाइस स्वरूपित करा</translation> <translation id="5292195676005197571">सर्वाधिक की वापरण्यासाठी, फक्त बटण दाबा</translation> <translation id="5293170712604732402">सेटिंग्ज त्यांच्या मूळ डीफॉल्टवर पुनर्संचयित करा</translation> +<translation id="5297082477358294722">पासवर्ड सेव्ह केलेले आहेत. तुमच्या <ph name="SAVED_PASSWORDS_STORE" /> मध्ये सेव्ह केलेले पासवर्ड पाहा आणि व्यवस्थापित करा.</translation> <translation id="5298219193514155779">द्वारा निर्मित थीम</translation> <translation id="5299109548848736476">Do Not Track</translation> <translation id="5299682071747318445">आपल्या संंकालित वाक्यांशासह सर्व डेटा कूटबद्ध केला आहे</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> ला तुमच्या काँप्युटरचे स्थान वापरायचे आहे</translation> <translation id="5612734644261457353">क्षमस्व, आपला पासवर्ड अद्याप सत्यापित होऊ शकला नाही. टीप: आपण अलीकडेच आपला पासवर्ड बदलला असल्यास, एकदा आपण साइन आउट केल्यानंतर आपला नवीन पासवर्ड लागू केला जाईल, कृपया येथे जुना पासवर्ड वापरा.</translation> <translation id="5614190747811328134">वापरकर्ता सूचना</translation> +<translation id="5614553682702429503">पासवर्ड सेव्ह करायचा आहे का?</translation> <translation id="561698261642843490">Firefox बंद करा</translation> <translation id="5618075537869101857">अरेरे, कियोस्क अॅप्लिकेशन लाँच केला जाऊ शकला नाही.</translation> <translation id="5618333180342767515">(यास काही मिनिटे लागू शकतील)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">पृष्ठ भाषा:</translation> <translation id="5677928146339483299">अवरोधित</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" /> ला मंजूर केला गेलेला प्रवेश वाचा आणि लिहा.</translation> +<translation id="5678784840044122290">तुमच्या टर्मिनलमध्ये Linux अॅप्लिकेशन उपलब्ध असेल आणि तुमच्या लॉंचरमध्ये आयकन देखील दिसू शकेल.</translation> <translation id="5678955352098267522"><ph name="WEBSITE_1" /> वर आपला डेटा वाचा</translation> <translation id="5684661240348539843">मालमत्ता अभिज्ञापक</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />संग्रहण किंवा आभासी डिस्कमधून डिस्कनेक्ट करू शकत नाही<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">व्यक्ती जोडा</translation> <translation id="583281660410589416">अज्ञात</translation> <translation id="5832976493438355584">लॉक केले</translation> +<translation id="5833397272224757657">तुम्ही भेट देता त्या साइट तसेच ब्राउझर अॅक्टिव्हिटी आणि संवाद यांच्यावरील आशयाचा वापर पर्सनलायझेशनसाठी करते</translation> <translation id="5833610766403489739">ही फाईल कुठेतरी हरवली आहे. कृपया आपले डाउनलोड स्थान सेटिंग तपासा आणि पुन्हा प्रयत्न करा.</translation> <translation id="5833726373896279253">ही सेटिंग्ज फक्त मालकाद्वारे सुधारित केली जाऊ शकतात:</translation> <translation id="5834581999798853053">सुमारे <ph name="TIME" /> मिनिटे बाकी</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">साइटला फ्लॅश चालवण्यापासून अवरोधित करा</translation> <translation id="5910363049092958439">म्हणून इमेज ज&तन करा...</translation> <translation id="5911737117543891828">Google ड्राइव्ह ऑफलाइन फायली तात्पुरत्या हटविल्या जातील. ऑफलाइन उपलब्ध म्हणून आपण सेट केलेल्या फायली या डिव्हाइस मधून हटविल्या जाणार नाहीत.</translation> +<translation id="5911887972742538906">तुमच्या Linux अॅप्लिकेशनच्या इंस्टॉलेशन दरम्यान एरर आली आहे.</translation> <translation id="5912378097832178659">शोध इंजिन &संपादित करा...</translation> <translation id="5914724413750400082">मॉड्यूलस (<ph name="MODULUS_NUM_BITS" /> बिट): <ph name="MODULUS_HEX_DUMP" /> @@ -3377,6 +3408,7 @@ <translation id="6198102561359457428">साइन आउट करा नंतर पुन्हा साइन इन करा...</translation> <translation id="6198252989419008588">पिन बदला</translation> <translation id="6199801702437275229">स्थान माहितीसाठी प्रतीक्षा करत आहे...</translation> +<translation id="6201792273624501289">Linux अॅप्स</translation> <translation id="6204015976622790023">तुमच्या स्क्रीनवर काय आहे यासंबंधित तुमच्या असिस्टंटकडील उपयुक्त सूचना पाहा.</translation> <translation id="6205710420833115353">काही ऑपरेशनला अपेक्षेपेक्षा जास्त वेळ लागत आहे. आपण त्यांना निरस्त करू इच्छिता?</translation> <translation id="6206311232642889873">इमेज कॉ&पी करा</translation> @@ -3854,6 +3886,7 @@ <translation id="6945221475159498467">निवडा</translation> <translation id="694592694773692225">या पेजवर रीडिरेक्ट ब्लॉक केले.</translation> <translation id="6949306908218145636">उघडी पेज बुकमार्क करा...</translation> +<translation id="6950627417367801484">अॅप्स रिस्टोअर करा</translation> <translation id="6951153907720526401">पेमेंट हँडलर</translation> <translation id="6955446738988643816">पॉपअपची तपासणी करा</translation> <translation id="6957231940976260713">सेवेचे नाव</translation> @@ -3979,6 +4012,7 @@ <translation id="7127980134843952133">इतिहास डाउनलोड करा</translation> <translation id="7131040479572660648"><ph name="WEBSITE_1" />, <ph name="WEBSITE_2" />, आणि <ph name="WEBSITE_3" /> वर आपला डेटा वाचा</translation> <translation id="713122686776214250">पृ&ष्ठ जोडा...</translation> +<translation id="7133578150266914903">तुमचा अॅडमिनिस्ट्रेटर हे डिव्हाइस रोल बॅक करत आहे (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">मजकूर लहान करा</translation> <translation id="7136694880210472378">डीफॉल्ट बनवा</translation> <translation id="7136984461011502314"><ph name="PRODUCT_NAME" /> मध्ये स्वागत आहे</translation> @@ -4179,6 +4213,7 @@ <translation id="7463006580194749499">व्यक्ती जोडा</translation> <translation id="7464490149090366184">झिप करणे अयशस्वी, आयटम विद्यमान: "$1"</translation> <translation id="7465778193084373987">Netscape प्रमाणपत्र निरस्तीकरण URL</translation> +<translation id="7469406957790636836">हे सुरू करण्यासाठी, प्रथम <ph name="BEGIN_LINK" />भाषा आणि इनपुट<ph name="END_LINK" /> मध्ये स्पेल चेक सुरू करा</translation> <translation id="7469894403370665791">या नेटवर्कशी स्वयंचलितपणे कनेक्ट व्हा</translation> <translation id="747114903913869239">एरर: विस्तार डीकोड करण्यात अक्षम</translation> <translation id="7473753388963818366">चला तुमच्यासाठी तुमचे <ph name="DEVICE_TYPE" /> तयार करूया</translation> @@ -4276,6 +4311,7 @@ <translation id="7606992457248886637">अधिकारी</translation> <translation id="7607002721634913082">विराम द्या</translation> <translation id="7607274158153386860">टॅबलेट साइटची विनंती करा</translation> +<translation id="7609148976235050828">कृपया इंटरनेटशी कनेक्ट करा आणि पुन्हा प्रयत्न करा.</translation> <translation id="7611008212562900400">तुमचे डिव्हाइस, अॅप्स, वेब शोधा...</translation> <translation id="7616214729753637086">डिव्हाइसची नोंदणी करत आहे...</translation> <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" यावर कनेक्ट करीत आहे</translation> @@ -4344,6 +4380,7 @@ <translation id="7730449930968088409">आपल्या स्क्रीनची सामग्री कॅप्चर करा</translation> <translation id="7730494089396812859">क्लाउड बॅकअप तपशील दर्शवा</translation> <translation id="7732111077498238432">नेटवर्क धोरण-नियंत्रित आहे</translation> +<translation id="7737238973539693982">Linux (बीटा) हटवा</translation> <translation id="773905249182896430">धोकादायक साइटपासून तुमचे आणि तुमच्या डिव्हाइसचे संरक्षण करते</translation> <translation id="7740996059027112821">मानक</translation> <translation id="7748528009589593815">मागील टॅब</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">ओव्हरस्कॅन</translation> <translation id="7977551819349545646">Chromebox अपडेट करत आहे...</translation> <translation id="7978412674231730200">खाजगी की</translation> +<translation id="7978450511781612192">हे तुम्हाला तुमच्या Google खात्यामधून साइन आउट करेल. तुमचे बुकमार्क, इतिहास, पासवर्ड आणि बरेच काही आता सिंक होणार नाही.</translation> <translation id="7979036127916589816">समक्रमण एरर</translation> <translation id="7980084013673500153">मालमत्ता आयडी: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">जलद ब्राउझिंग आणि शोधाकरता पेज आधीच लोड करा</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">रांग</translation> <translation id="8226742006292257240">खाली यादृच्छिकपणे व्युत्पन्न केलेला TPM पासवर्ड आहे जो आपल्या संगणकासाठी नियुक्त केला गेला आहे:</translation> <translation id="8227119283605456246">फाईल संलग्न करा</translation> +<translation id="8230134520748321204"><ph name="ORIGIN" /> साठी पासवर्ड सेव्ह करायचा आहे का?</translation> <translation id="8234795456569844941">कृपया आमच्या इंजिनियरना ही समस्या सोडवण्यात मदत करा. तुम्हाला प्रोफाइल एरर मिळण्याआधी नेमके काय झाले ते आम्हाला सांगा:</translation> <translation id="8234989666557591529">तुमचे <ph name="DEVICE_TYPE" /> अनलॉक करण्यासाठी एक फोन निवडा</translation> <translation id="8239020549147958415"><ph name="FULL_NAME" /> म्हणून सिंक करा</translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">स्मार्ट ब्राउझरवर बदला</translation> <translation id="8438566539970814960">शोध आणि ब्राउझ करणे चांगले करा</translation> <translation id="8439506636278576865">या भाषेमध्ये पेज भाषांतरीत करण्यासाठी ऑफर</translation> +<translation id="8440630305826533614">Linux अॅप्स</translation> <translation id="8446884382197647889">अधिक जाणून घ्या</translation> <translation id="8447409163267621480">एकतर Ctrl किंवा Alt समाविष्ट करा</translation> <translation id="8448729345478502352">तुमच्या स्क्रीनवर आयटम लहान किंवा मोठे करा</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Windows सुविधा</translation> <translation id="8498214519255567734">तुमच्या स्क्रीनकडे पाहणे किंवा मंद उजेडात वाचणे सोपे करते</translation> <translation id="8498395510292172881">Chrome मध्ये वाचन सुरू ठेवा</translation> +<translation id="8502536196501630039">Google Play वरचे अॅप्स वापरण्यासाठी, तुम्ही प्रथम तुमचे अॅप्स रिस्टोअर करणे आवश्यक आहे. काही डेटा गमावला असू शकतो.</translation> <translation id="8503813439785031346">वापरकर्तानाव</translation> <translation id="850875081535031620">कोणतेही हानिकारक सॉफ्टवेअर आढळले नाही</translation> <translation id="8509646642152301857">शब्दलेखन तपासणी शब्दकोश डाउनलोड करणे अयशस्वी.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Google रेखांकन</translation> <translation id="869884720829132584">अॅप्लिकेशन मेनू</translation> <translation id="869891660844655955">कालावधी समाप्ती तारीख</translation> +<translation id="8699566574894671540">हे सुरू करण्यासाठी, संपादन मेनू मध्ये टाइप करताना प्रथम शब्दलेखन तपासा निवडा</translation> <translation id="870073306461175568">नेटवर्क फाइल शेअर</translation> <translation id="8701677791353449257">डिव्हाइसचे नाव रेग्युलर एक्स्प्रेशन <ph name="REGEX" /> शी जुळणे आवश्यक आहे.</translation> <translation id="8704521619148782536">यास नेहमीपेक्षा जास्त वेळ लागत आहे. आपण प्रतीक्षा करु शकता किंवा रद्द करा आणि नंतर पुन्हा प्रयत्न करा.</translation> @@ -5024,6 +5066,7 @@ </p>परंतु आपण अद्याप आज्ञा रेखेद्वारे कॉन्फिगर करू शकता. कृपया ध्वजांकन आणि परिस्थिती चलांवरील अधिक माहितीसाठी <code>man <ph name="PRODUCT_BINARY_NAME" /></code> पहा.</p></translation> <translation id="8755376271068075440">&विशाल</translation> +<translation id="8756969031206844760">पासवर्ड अपडेट करायचा आहे का?</translation> <translation id="8757090071857742562">डेस्कटॉप कास्ट करण्यात अक्षम. तुमची स्क्रीन सामायिक करणे प्रारंभ करण्यासाठी आपण सूचनेची पुष्टी केली किंवा नाही ते पाहण्यासाठी तपासा.</translation> <translation id="8757640015637159332">सार्वजनिक सत्र एंटर करा</translation> <translation id="8757742102600829832">याच्याशी कनेक्ट करण्यासाठी एक Chromebox निवडा</translation> @@ -5181,7 +5224,9 @@ <translation id="9009369504041480176">अपलोड करीत आहे (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">चिन्ह नेहमी दर्शवा</translation> <translation id="9011178328451474963">अंतिम टॅब</translation> +<translation id="9013707997379828817">तुमच्या अॅडमिनिस्ट्रेटरने हे डिव्हाइस रोल बॅक केले आहे. कृपया महत्त्वाच्या फायली सेव्ह करा, त्यानंतर रीस्टार्ट करा. या डिव्हाइस वरील सर्व डेटा हटवला जाईल.</translation> <translation id="9014987600015527693">दुसरा फोन दर्शवा</translation> +<translation id="9018218886431812662">इंस्टॉलेशन पूर्ण झाले</translation> <translation id="901834265349196618">ईमेल</translation> <translation id="9019062154811256702">स्वयं-भरण सेटिंग्ज वाचा आणि बदला</translation> <translation id="9020362265352758658">४x</translation> @@ -5205,6 +5250,7 @@ <translation id="9038649477754266430">पेज अधिक द्रुतपणे लोड करण्यासाठी पूर्वानुमान सेवेचा वापर करा</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">टॅब निःशब्द करा</translation> +<translation id="9040661932550800571"><ph name="ORIGIN" /> साठी पासवर्ड अपडेट करायचा आहे का?</translation> <translation id="9041692268811217999">तुमच्या अॅडमिनिस्ट्रेटरने तुमच्या मशीनवरील स्थानिक फायलींचा अॅक्सेस बंद केला आहे</translation> <translation id="9042893549633094279">गोपनीयता आणि सुरक्षा</translation> <translation id="904451693890288097">कृपया यासाठी पासकी प्रविष्ट करा "<ph name="DEVICE_NAME" />":</translation> @@ -5309,6 +5355,7 @@ <translation id="9203478404496196495">टॅब सशब्द करा</translation> <translation id="9203904171912129171">एक डिव्हाइस निवडा</translation> <translation id="9203962528777363226">या डिव्हाइसच्या प्रशासकाने नवीन वापरकर्त्यांना जोडले जाण्यापासून अक्षम केले आहे</translation> +<translation id="9213073329713032541">इंस्टॉलेशनला यशस्वीरीत्या सुरुवात झाली.</translation> <translation id="9214520840402538427">अरेरे! स्थापना-वेळ विशेषतांचा प्रारंभ कालबाह्य झाला. कृपया आपल्या समर्थन प्रतिनिधीशी संपर्क साधा.</translation> <translation id="9214695392875603905">कपकेक</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" जोडले</translation> @@ -5363,6 +5410,7 @@ <translation id="988978206646512040">रिक्त सांकेतिक वाक्यांशाची परवानगी नाही</translation> <translation id="992032470292211616">विस्तार, अॅप्स आणि थीम आपल्या डिव्हाइसची हानी करू शकतात. आपल्याला खात्री आहे की आपण सुरू ठेवू इच्छिता?</translation> <translation id="992592832486024913">ChromeVox (बोललेला अभिप्राय) अक्षम करा</translation> +<translation id="993540765962421562">इंस्टॉलेशन प्रगतीपथावर आहे</translation> <translation id="994289308992179865">&वळण</translation> <translation id="996250603853062861">सुरक्षित कनेक्शन इंस्टॉल करत आहे...</translation> <translation id="998747458861718449">तपासा</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb index 0741ade8..b9ff972b 100644 --- a/chrome/app/resources/generated_resources_no.xtb +++ b/chrome/app/resources/generated_resources_no.xtb
@@ -297,6 +297,7 @@ <translation id="1433811987160647649">Spør før bruk</translation> <translation id="1434696352799406980">Dette tilbakestiller oppstartssiden, nye faner, søkemotoren og eventuelle festede faner. I tillegg slår det av alle utvidelser og fjerner midlertidige data, for eksempel informasjonskapsler. Bokmerker, loggoppføringer og lagrede passord slettes ikke.</translation> <translation id="1434886155212424586">Startsiden er Ny fane-siden</translation> +<translation id="1436671784520050284">Fortsett konfigureringen</translation> <translation id="1436784010935106834">Fjernet</translation> <translation id="1438632560381091872">Slå på lyden for fanene</translation> <translation id="1442392616396121389">Rutingprefiks</translation> @@ -316,6 +317,7 @@ <translation id="1465827627707997754">Pizzastykke</translation> <translation id="1467432559032391204">Venstre</translation> <translation id="1468571364034902819">Du kan ikke bruke denne profilen</translation> +<translation id="1470533772306424441">Vi installerer disse appene for deg. Du finner flere apper for din enhet i Play-butikken.</translation> <translation id="1470811252759861213">For å få utvidelsene dine på alle datamaskinene du bruker, <ph name="SIGN_IN_LINK" />.</translation> <translation id="1474339897586437869">«<ph name="FILENAME" />» ble ikke lastet opp. Det er ikke nok ledig plass på Google Disk.</translation> <translation id="1475502736924165259">Du har en fil med sertifikater som ikke passer inn i noen av de andre kategoriene</translation> @@ -787,6 +789,7 @@ <translation id="2192505247865591433">Fra:</translation> <translation id="2193365732679659387">Klareringsinnstillinger</translation> <translation id="2195729137168608510">Beskyttelse av e-post </translation> +<translation id="2199298570273670671">Feil</translation> <translation id="2200356397587687044">Chrome trenger tillatelse for å fortsette</translation> <translation id="220138918934036434">Skjul knappen</translation> <translation id="2202898655984161076">Det oppstod et problem med oppføring av skrivere. Enkelte av skriverne dine er ikke registrert på <ph name="CLOUD_PRINT_NAME" />.</translation> @@ -939,6 +942,7 @@ <translation id="2440604414813129000">Vis &kilde</translation> <translation id="2445081178310039857">Det kreves en rotkatalog for utvidelsen</translation> <translation id="2445484935443597917">Opprett en ny profil</translation> +<translation id="2446585455334014596"><ph name="APP_NAME" /> ønsker å bekrefte identiteten din</translation> <translation id="2448312741937722512">Type</translation> <translation id="2450223707519584812">Du kan ikke legge til brukere fordi Google API-nøkler mangler. Se <ph name="DETAILS_URL" /> for nærmere informasjon.</translation> <translation id="2450310832094867474">Vil du slå av synkronisering og logge av?</translation> @@ -948,6 +952,7 @@ <translation id="2453576648990281505">Filen eksisterer allerede</translation> <translation id="2453860139492968684">Fullfør</translation> <translation id="2454247629720664989">Søkeord</translation> +<translation id="245661998428026871">Videoen i bilde-i-bilde-modusen stoppes.</translation> <translation id="2457246892030921239"><ph name="APP_NAME" /> vil kopiere filer fra <ph name="VOLUME_NAME" />.</translation> <translation id="2462724976360937186">Nøkkel-ID for sertifiseringsinstans</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> er lagt til</translation> @@ -1354,6 +1359,7 @@ <translation id="304826556400666995">Slå på lyden for fanene</translation> <translation id="3053013834507634016">Bruk av sertifikatnøkkel</translation> <translation id="3057861065630527966">Sikkerhetskopiér bildene og videoene dine</translation> +<translation id="3059313675706898490">Android Messages</translation> <translation id="3060379269883947824">Slå på Tekstopplesing</translation> <translation id="3061707000357573562">Feilrettingstjeneste</translation> <translation id="3064410671692449875">Ikke nok data</translation> @@ -1402,6 +1408,7 @@ <translation id="313205617302240621">Glemt passordet?</translation> <translation id="3132996321662585180">Oppdater daglig</translation> <translation id="3135204511829026971">Rotér skjermen</translation> +<translation id="313638818480447860">Vi famt <ph name="NUMBER_OF_APPS" /> apper koblet til kontoen din som er optimalisert for denne enheten.</translation> <translation id="313963229645891001">Laster ned, <ph name="STATUS" /></translation> <translation id="3139925690611372679">Gult standardbrukerbilde</translation> <translation id="3140353188828248647">Fokuser adressefelt</translation> @@ -1432,6 +1439,7 @@ <translation id="3182749001423093222">Stavekontroll</translation> <translation id="3183139917765991655">Profile Importer</translation> <translation id="3184560914950696195">Kunne ikke lagre til $1. Redigerte bilder blir lagret i Nedlastinger-mappen.</translation> +<translation id="3188257591659621405">Mine filer</translation> <translation id="3188465121994729530">Glidende gjennomsnitt</translation> <translation id="3190558889382726167">Passordet er lagret</translation> <translation id="3192947282887913208">Lydfiler</translation> @@ -1518,6 +1526,7 @@ <translation id="3326821416087822643">Til zip: <ph name="FILE_NAME" /> ...</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">Appinformasjon</translation> +<translation id="3334632933872291866"><ph name="WINDOW_TITLE" /> - videoen spilles av i bilde-i-bilde-modus</translation> <translation id="3335337277364016868">Innspillingsår</translation> <translation id="3335947283844343239">Åpne lukkede faner igjen</translation> <translation id="3336664756920573711">Lås opp <ph name="DEVICE_TYPE" /> med Android-telefonen din</translation> @@ -1537,6 +1546,7 @@ <translation id="3360297538363969800">Utskriften mislyktes. Kontrollér skriveren og prøv på nytt.</translation> <translation id="3364721542077212959">Pekepennverktøy</translation> <translation id="3365598184818502391">Bruk enten Ctrl eller Alt</translation> +<translation id="3367047597842238025">Still inn din <ph name="DEVICE_TYPE" /> akkurat slik som du ønsker og oppdag alle de fantastiske funksjonene på din enhet.</translation> <translation id="3368922792935385530">Tilkoblet</translation> <translation id="3369624026883419694">Slår opp vertsnavn …</translation> <translation id="337286756654493126">lese mapper du åpner i appen</translation> @@ -1550,6 +1560,7 @@ <translation id="3389312115541230716">Høyreklikk på <ph name="SMALL_PRODUCT_LOGO" />-ikonet på oppgavelinjen</translation> <translation id="3391716558283801616">Fane 7</translation> <translation id="3396331542604645348">Den valgte skriveren er ikke tilgjengelig, eller har ikke blitt installert på riktig måte. Kontrollér skriveren din, eller prøv å velge en annen skriver.</translation> +<translation id="3396800784455899911">Ved å klikke på «Godta og fortsett»-knappen godtar du behandlingen som beskrives ovenfor, for disse Google-tjenestene.</translation> <translation id="3399432415385675819">Varsler slås av</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">Ingen passord er lagret for dette nettstedet</translation> @@ -1778,10 +1789,13 @@ <translation id="3726463242007121105">Denne enheten kan ikke åpnes fordi den har et filsystem som ikke støttes.</translation> <translation id="3727148787322499904">Endringer i denne innstillingen påvirker alle delte nettverk</translation> <translation id="3727187387656390258">Undersøk hurtigvindu</translation> +<translation id="3729506734996624908">Tillatte nettsteder</translation> <translation id="3732078975418297900">Feil på linje <ph name="ERROR_LINE" /></translation> <translation id="3733127536501031542">SSL-tjener med oppgradering </translation> +<translation id="3735740477244556633">Sortér etter</translation> <translation id="3737274407993947948">Feil ved installering av Linux …</translation> <translation id="3737536731758327622">Nedlastingene dine vises her</translation> +<translation id="3738671331307774213">Ved å verifisere din identitet bidrar du til å beskytte de private dataene dine.</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094">Vil du åpne <ph name="APPLICATION" />?</translation> <translation id="3741158646617793859">Nå vises <ph name="DEVICE_NAME" /> i administrasjonskonsollen</translation> @@ -1866,6 +1880,7 @@ <translation id="3846116211488856547">Skaff deg verktøy for å utvikle nettsteder, Android-apper med mer. Linux laster ned <ph name="DOWNLOAD_SIZE" /> med data.</translation> <translation id="385051799172605136">Tilbake</translation> <translation id="3851428669031642514">Last inn utrygge skripter</translation> +<translation id="3854599674806204102">Velg et alternativj</translation> <translation id="3855441664322950881">Pakk utvidelsen</translation> <translation id="3855676282923585394">Importér bokmerker og innstillinger</translation> <translation id="3856800405688283469">Velg tidssone</translation> @@ -2576,6 +2591,7 @@ <translation id="5027562294707732951">Legg til utvidelsen</translation> <translation id="5029568752722684782">Slett kopi</translation> <translation id="5030338702439866405">Utstedt av</translation> +<translation id="503155457707535043">Apper lastes ned</translation> <translation id="503498442187459473"><ph name="HOST" /> ber om å bruke kameraet ditt og mikrofonen din</translation> <translation id="5036662165765606524">Ikke tillat at nettsteder laster ned flere filer automatisk</translation> <translation id="5037676449506322593">Velg alle</translation> @@ -3090,6 +3106,7 @@ <translation id="57838592816432529">Kutt lyden</translation> <translation id="5785583009707899920">Chrome Filverktøy</translation> <translation id="5787146423283493983">Nøkkelavtale</translation> +<translation id="5788127256798019331">Play-filer</translation> <translation id="5788367137662787332">Beklager, men minst én partisjon på enheten <ph name="DEVICE_LABEL" /> kunne ikke tilkobles.</translation> <translation id="5794414402486823030">Åpne alltid med systemvisningsprogrammet</translation> <translation id="5794786537412027208">Avslutt alle Chrome-apper</translation> @@ -3342,6 +3359,7 @@ <translation id="6178664161104547336">Velg et sertifikat</translation> <translation id="6181431612547969857">Nedlastingen ble blokkert</translation> <translation id="6185132558746749656">Enhetsposisjon</translation> +<translation id="6185617499004995178">CUPS IPP validator</translation> <translation id="6185696379715117369">Opp én side</translation> <translation id="6189273858858366896">Konfigurer eller administrer fildelinger på nettverket.</translation> <translation id="6189412234224385711">Åpne med <ph name="EXTENSION_NAME" /></translation> @@ -3374,6 +3392,7 @@ <translation id="6231881193380278751">Legg til en forespørselsparameter i nettadressen for å laste inn siden på nytt automatisk: chrome://device-log/?refresh=<sek></translation> <translation id="6232017090690406397">Batteri</translation> <translation id="6232116551750539448">Tilkoblingen til <ph name="NAME" /> er brutt</translation> +<translation id="6235700927623181151">Denne fanen deler innholdet på skrivebordet ditt.</translation> <translation id="6237816943013845465">Lar deg justere skjermoppløsningen</translation> <translation id="6238923052227198598">Hold det siste notatet på låseskjermen</translation> <translation id="6239558157302047471">Last inn &rammen på nytt</translation> @@ -3517,6 +3536,7 @@ <translation id="6451180435462401570">Administrer Cloud Print-enheter</translation> <translation id="6451689256222386810">Hvis du har glemt passordfrasen din eller vil endre denne innstillingen, må du <ph name="BEGIN_LINK" />tilbakestille synkroniseringen<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">Avslå</translation> +<translation id="6455264371803474013">På bestemte nettsteder</translation> <translation id="6455894534188563617">&Ny mappe</translation> <translation id="6456394469623773452">Grei</translation> <translation id="6456631036739229488">Smart Lock-telefonen er endret. Skriv inn passordet ditt for å oppdatere Smart Lock. Neste gang låser telefonen opp <ph name="DEVICE_TYPE" />-enheten. Du kan slå av Smart Lock i innstillingene.</translation> @@ -3594,6 +3614,7 @@ <translation id="657402800789773160">&Last inn denne siden på nytt</translation> <translation id="6577284282025554716">Nedlasting avbrutt: <ph name="FILE_NAME" /></translation> <translation id="6578664922716508575">Kryptér synkroniserte passord med Google-brukernavnet og -passordet ditt</translation> +<translation id="6579705087617859690"><ph name="WINDOW_TITLE" /> - skrivebordinnholdet er delt</translation> <translation id="6580151766480067746">ARC-versjon</translation> <translation id="6581162200855843583">Google Disk-link</translation> <translation id="6582421931165117398">For å beskytte personopplysningene dine, endre passordet ditt nå. Du blir bedt om å logge på før du kan endre passordet.</translation> @@ -4060,6 +4081,7 @@ <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Dette programmet kan hindre at Chrome fungerer skikkelig.}other{Disse programmene kan hindre at Chrome fungerer skikkelig.}}</translation> <translation id="7303900363563182677">Dette nettstedet er blokkert fra å se tekst og bilder som er kopiert til utklippstavlen</translation> <translation id="730515362922783851">utveksle data med en hvilken som helst enhet på det lokale nettverket eller Internett.</translation> +<translation id="7307129035224081534">Satt på pause</translation> <translation id="7308002049209013926">Bruk appoversikten for å få rask tilgang til nye apper og aktiviteter. For å komme hit kan du også bruke tastekombinasjonen Alt + Shift + L.</translation> <translation id="7309257895202129721">Vis &kontroller</translation> <translation id="7310598146671372464">Kan ikke logge på. Tjeneren støtter ikke de angitte Kerberos-krypteringstypene. Ta kontakt med administratoren din.</translation> @@ -4148,6 +4170,7 @@ <translation id="7465778193084373987">Nettadresse for tilbakekalling av Netscape-sertifikat</translation> <translation id="7469894403370665791">Koble til dette nettverket automatisk</translation> <translation id="747114903913869239">Feil: Kan ikke avkode etternavnet</translation> +<translation id="7473753388963818366">La oss få deg i gang med <ph name="DEVICE_TYPE" /></translation> <translation id="7473891865547856676">Nei takk</translation> <translation id="747459581954555080">Gjenopprett alt</translation> <translation id="7475671414023905704">Nettadresse for mistet passord – Netscape</translation> @@ -4270,6 +4293,7 @@ <translation id="7665369617277396874">Legg til konto</translation> <translation id="7671130400130574146">Bruk systemets tittellinje og kantlinjer</translation> <translation id="7672520070349703697"><ph name="HUNG_IFRAME_URL" /> på <ph name="PAGE_TITLE" />.</translation> +<translation id="7676867886086876795">Send stemmen din til Google for å tillate diktat til hvilket som helst tekstfelt.</translation> <translation id="7681095912841365527">Nettstedet kan bruke Bluetooth</translation> <translation id="7683373461016844951">For å fortsette, klikk på OK. Klikk deretter på Legg til person for å opprette en ny profil for <ph name="DOMAIN" />-e-postadressen din.</translation> <translation id="7684212569183643648">Installert av administratoren din</translation> @@ -4311,6 +4335,7 @@ <translation id="7740996059027112821">Standard</translation> <translation id="7748528009589593815">Forrige fane</translation> <translation id="7748626145866214022">Flere alternativer er tilgjengelige på handlingslinjen. Trykk på Alt + A for å fokusere på handlingslinjen.</translation> +<translation id="7750228210027921155">Bilde i bilde</translation> <translation id="7751260505918304024">Vis alle</translation> <translation id="7754704193130578113">Spør før nedlasting hvor hver fil skal lagres</translation> <translation id="7758143121000533418">Family Link</translation> @@ -4418,6 +4443,7 @@ <translation id="7857949311770343000">Er dette den nye fanen du ventet på?</translation> <translation id="786073089922909430">Tjeneste: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">Ne&dlastinger</translation> +<translation id="7868378670806575181">{NUM_COOKIES,plural, =1{ Én informasjonskapsel}other{ #informasjonskapsler}}</translation> <translation id="786957569166715433">«<ph name="DEVICE_NAME" />» er tilkoblet</translation> <translation id="7870730066603611552">Gå gjennom alternativene for synkronisering etter konfigureringen</translation> <translation id="7870790288828963061">Fant ingen Kiosk-apper med nyere versjon. Ingenting å oppdatere. Ta ut USB-pinnen.</translation> @@ -4738,6 +4764,7 @@ <translation id="8373553483208508744">Slå av lyden for fanene</translation> <translation id="8382913212082956454">Kopier &e-postadresse</translation> <translation id="8386903983509584791">Skanningen er fullført</translation> +<translation id="8389492867173948260">lese og endre alle dataene dine på nettstedene du besøker:</translation> <translation id="8390449457866780408">Tjeneren er ikke tilgjengelig.</translation> <translation id="8391712576156218334">Bildet er ikke tilgjengelig. Prøv på nytt senere.</translation> <translation id="8392234662362215700">Trykk på Ctrl + Shift + mellomrom for å bytte tastaturoppsett.</translation> @@ -4769,6 +4796,7 @@ <translation id="84297032718407999">Du logges av om <ph name="LOGOUT_TIME_LEFT" /></translation> <translation id="8431909052837336408">Endre PIN-koden for SIM-kortet</translation> <translation id="8434480141477525001">Feilsøkingsport for NaCl</translation> +<translation id="8435395510592618362">Bekreft identiteten din med <ph name="APP_NAME" /></translation> <translation id="843760761634048214">Lagre kredittkortet</translation> <translation id="8438328416656800239">Bytt til en smart nettleser</translation> <translation id="8438566539970814960">Gjør søking og surfing bedre</translation> @@ -4795,6 +4823,7 @@ <translation id="8465252176946159372">Ikke gyldig</translation> <translation id="8465444703385715657">Du må gi tillatelse for at <ph name="PLUGIN_NAME" /> skal kunne kjøre</translation> <translation id="8466234950814670489">Tar-arkiv</translation> +<translation id="8466417995783206254">Denne fanen spiller av en video i bilde-i-bilde.</translation> <translation id="8468750959626135884">Lås opp <ph name="DEVICE_TYPE" /> med Android-telefonen din.</translation> <translation id="8470028084415844044">For å få alle passordene dine på alle enhetene du bruker, slå på synkronisering.</translation> <translation id="8470513973197838199">Lagrede passord for <ph name="ORIGIN" /></translation> @@ -4815,6 +4844,7 @@ <translation id="8496717697661868878">Kjør dette programtillegget</translation> <translation id="8497219075884839166">Windows Verktøy</translation> <translation id="8498214519255567734">Gjør det lettere å se på skjermen og lese i svakt lys</translation> +<translation id="8498395510292172881">Forsett å lese i Chrome</translation> <translation id="8503813439785031346">Brukernavn</translation> <translation id="850875081535031620">Fant ingen skadelig programvare</translation> <translation id="8509646642152301857">Nedlastingen av ordboken for stavekontroll mislyktes.</translation> @@ -5155,6 +5185,7 @@ <translation id="9027459031423301635">Åpne link i ny &fane</translation> <translation id="9030515284705930323">Organisasjonen din har ikke slått på Google Play-butikken for kontoen din. Kontakt administratoren din for å få mer informasjon.</translation> <translation id="9033857511263905942">&Lim inn</translation> +<translation id="9034924485347205037">Linux-filer</translation> <translation id="9035012421917565900">Disse elementene kan ikke flyttes tilbake til «<ph name="DESTINATION_NAME" />», så du kan ikke angre denne handlingen.</translation> <translation id="9037008143807155145">https://www.google.com/calendar/render?cid=%s</translation> <translation id="9037965129289936994">Vis original</translation> @@ -5255,6 +5286,7 @@ <translation id="9173995187295789444">Skanner etter Bluetooth-enheter …</translation> <translation id="9176611096776448349"><ph name="WINDOW_TITLE" /> – en Bluetooth-enhet er tilkoblet</translation> <translation id="9177499212658576372">Du er for øyeblikket tilkoblet nettverket <ph name="NETWORK_TYPE" />.</translation> +<translation id="9179734824669616955">Sett opp Linux (Beta) på <ph name="DEVICE_TYPE" /> din</translation> <translation id="9180281769944411366">Denne prosessen kan ta noen minutter. Starter Linux-beholderen.</translation> <translation id="9180380851667544951">Nettstedet kan dele skjermen din</translation> <translation id="9188441292293901223">Du må oppdatere telefonen til en nyere versjon av Android for å låse opp <ph name="DEVICE_TYPE" />.</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb index 902d724..962ca8cd 100644 --- a/chrome/app/resources/generated_resources_pl.xtb +++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Trwa wyszukiwanie...</translation> <translation id="1316495628809031177">Synchronizacja została wstrzymana</translation> <translation id="1319979322914001937">Aplikacja, która pokazuje przefiltrowaną listę rozszerzeń z Chrome Web Store. Rozszerzenia z takiej listy można instalować bezpośrednio z tej aplikacji.</translation> +<translation id="1322046419516468189">Swoje zapisane hasła znajdziesz tutaj: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Aby korzystać z kart ze swoich innych urządzeń, zaloguj się w Chrome.</translation> <translation id="1327074568633507428">Drukarka w Google Cloud Print</translation> <translation id="1327977588028644528">Brama</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">C&entrum pomocy</translation> <translation id="162035744160882748">Włącz synchronizację, personalizację i inne usługi Google</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Obrazy są obecnie niedostępne. Aby zobaczyć kolekcje tapet, połącz się ponownie z internetem.</translation> <translation id="1624026626836496796">Wystarczy, że zrobisz to tylko raz. Twoje dane logowania nie zostaną zapisane.</translation> <translation id="1627276047960621195">Deskryptory plików</translation> <translation id="1627408615528139100">Już pobrany</translation> <translation id="1632803087685957583">Pozwala zmienić ustawienia m.in. podpowiadania słów czy szybkości powtarzania klawiszy</translation> <translation id="1635033183663317347">Zainstalowane przez opiekuna.</translation> +<translation id="1635885551358739414">Google może używać zawartości odwiedzanych przez Ciebie stron oraz informacji o Twojej aktywności i interakcjach w przeglądarce, by personalizować Chrome i inne usługi Google takie jak Tłumacz, wyszukiwarka czy reklamy. Możesz to zmienić w Ustawieniach.</translation> <translation id="1637224376458524414">Pobierz tę zakładkę na swojego iPhone'a</translation> <translation id="1637765355341780467">Coś poszło nie tak podczas otwierania Twojego profilu. Niektóre funkcje mogą być niedostępne.</translation> <translation id="1639239467298939599">Wczytuję</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Hasło jest zbyt krótkie.</translation> <translation id="1661867754829461514">Brak kodu PIN</translation> <translation id="16620462294541761">Niestety, nie udało się zweryfikować Twojego hasła. Spróbuj ponownie.</translation> +<translation id="1662550410081243962">Zapisuj i automatycznie uzupełniaj informacje o formach płatności</translation> <translation id="166278006618318542">Algorytm klucza publicznego podmiotu</translation> <translation id="166439687370499867">Wprowadzanie zmian w konfiguracjach sieci współdzielonych jest niedozwolone.</translation> <translation id="1665611772925418501">Nie można zmodyfikować pliku.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> chce odczytać markę i model Twojego klucza bezpieczeństwa</translation> <translation id="167832068858235403">zmniejsz głośność</translation> <translation id="1679068421605151609">Narzędzia dla programistów</translation> +<translation id="1680849702532889074">Podczas instalowania aplikacji na Linuksa wystąpił błąd.</translation> <translation id="16815041330799488">Nie zezwalaj stronom na dostęp do tekstu i obrazów skopiowanych do schowka</translation> <translation id="1682548588986054654">Nowe okno incognito</translation> <translation id="168715261339224929">Aby korzystać ze swoich zakładek na wszystkich urządzeniach, włącz synchronizację.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Odpinanie kart</translation> <translation id="1734824808160898225">Program <ph name="PRODUCT_NAME" /> może nie móc sam się aktualizować</translation> <translation id="1736419249208073774">Odkrywaj</translation> +<translation id="1736827427463982819">Wyłącz Linuksa (Beta)</translation> <translation id="1737968601308870607">Zgłoś błąd</translation> <translation id="1741314857973421784">Dalej</translation> <translation id="174173592514158117">Pokaż wszystkie foldery Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> chce na stałe przechowywać dużą ilość danych na Twoim komputerze</translation> <translation id="1997616988432401742">Twoje certyfikaty</translation> <translation id="1999115740519098545">Po uruchomieniu</translation> +<translation id="2000419248597011803">Niektóre pliki cookie oraz zapytania wpisane na pasku adresu i w polu wyszukiwania zostaną wysłane do domyślnej wyszukiwarki</translation> <translation id="2001796770603320721">Zarządzaj na Dysku</translation> <translation id="2004663115385769400">Nie można otworzyć w: $1</translation> <translation id="200544492091181894">Możesz zmienić to później w Ustawieniach</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Nadal blokuj pliki cookie</translation> <translation id="204622017488417136">Na Twoim urządzeniu zostanie przywrócona poprzednia wersja Chrome. Wszystkie zapisane lokalnie konta użytkowników i dane zostaną usunięte. Tej czynności nie można cofnąć.</translation> <translation id="2048182445208425546">Dostęp do ruchu sieciowego</translation> +<translation id="2048653237708779538">Czynność niedostępna</translation> <translation id="204914487372604757">Utwórz skrót</translation> <translation id="2050339315714019657">Pionowo</translation> <translation id="2053312383184521053">Dane o stanie bezczynności</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Wtyczka <ph name="PEPPER_PLUGIN_NAME" /> na <ph name="PEPPER_PLUGIN_DOMAIN" /> chce mieć dostęp do Twojego komputera</translation> <translation id="2178614541317717477">Naruszenie bezpieczeństwa urzędu certyfikacji</translation> <translation id="218070003709087997">Wpisz wartość numeryczną, by określić liczbę kopii do wydrukowania (od 1 do 999).</translation> +<translation id="2183558561014688873">Uruchamiaj Asystenta, mówiąc „OK Google”, gdy urządzenie jest odblokowane i nieuśpione.</translation> <translation id="2187895286714876935">Błąd importowania certyfikatu serwera</translation> <translation id="2187906491731510095">Rozszerzenia zaktualizowane</translation> <translation id="2188881192257509750">Otwórz <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Proces GPU</translation> <translation id="2282155092769082568">URL automatycznej konfiguracji:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Zapisuj i automatycznie uzupełniaj adresy</translation> <translation id="2286841657746966508">Adres rozliczeniowy</translation> <translation id="2288181517385084064">Przełącz na rejestrator wideo</translation> <translation id="2288735659267887385">Ustawienia ułatwień dostępu</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Łączny rozmiar plików</translation> <translation id="2428510569851653187">Opisz, co robiłeś, gdy wystąpiła awaria karty</translation> <translation id="2431027948063157455">Nie udało się załadować Asystenta Google. Spróbuj ponownie.</translation> +<translation id="2432753757290432042">Wymagana aktualizacja Linuksa (Beta)</translation> <translation id="2433452467737464329">Aby strona była odświeżana automatycznie, dodaj parametr zapytania w adresie URL: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Wygląd</translation> <translation id="2433836460518180625">Tylko odblokowywanie urządzenia</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Edytuj odciski palców</translation> <translation id="2776441542064982094">Wygląda na to, że nie ma żadnych dostępnych urządzeń do zarejestrowania w sieci. Jeśli Twoje urządzenie jest włączone i ma połączenie z internetem, spróbuj je zarejestrować zgodnie z opisem zawartym w jego instrukcji.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Błąd podczas instalowania aplikacji na Linuksa</translation> <translation id="2783298271312924866">Pobrane</translation> <translation id="2783321960289401138">Utwórz skrót...</translation> <translation id="2783829359200813069">Wybieranie typów szyfrowania</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Wyloguj się i zaloguj się ponownie</translation> <translation id="2812989263793994277">Nie pokazuj żadnych grafik</translation> <translation id="2814489978934728345">Zatrzymaj ładowanie strony</translation> +<translation id="281504910091592009">Zapisane hasła znajdziesz na swoim <ph name="BEGIN_LINK" />koncie Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Pasek zakładek</translation> <translation id="2815693974042551705">Folder zakładek</translation> <translation id="2818476747334107629">Szczegóły drukarki</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Pokaż dostępne urządzenia Bluetooth</translation> <translation id="2941112035454246133">Niski</translation> <translation id="2942560570858569904">Czekam…</translation> +<translation id="2942581856830209953">Dostosuj tę stronę</translation> <translation id="2943400156390503548">Prezentacje</translation> <translation id="2943503720238418293">Użyj krótszej nazwy</translation> <translation id="2946119680249604491">Dodaj połączenie</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Hasło:</translation> <translation id="3694027410380121301">Wybierz poprzednią kartę</translation> <translation id="3699624789011381381">Adres e-mail</translation> +<translation id="3699920817649120894">Wyłączyć synchronizację i personalizację?</translation> <translation id="3700888195348409686">Wyświetlasz prezentację (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Strony początkowe zostały zmienione i zawierają <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript zablokowany</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Pełny ekran</translation> <translation id="3828029223314399057">Przeszukaj zakładki</translation> <translation id="3830674330436234648">Odtwarzanie jest niedostępne</translation> +<translation id="3831436149286513437">Podpowiedzi z Dysku Google podczas wyszukiwania</translation> <translation id="3831486154586836914">Jesteś w trybie przeglądu okien</translation> <translation id="383161972796689579">Właściciel tego urządzenia wyłączył możliwość dodawania nowych użytkowników</translation> <translation id="3834775135533257713">Nie udało się dodać aplikacji „<ph name="TO_INSTALL_APP_NAME" />”, bo występuje konflikt z aplikacją „<ph name="INSTALLED_APP_NAME" />”.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Najniższy</translation> <translation id="3872220884670338524">Więcej czynności, zapisane konto użytkownika <ph name="USERNAME" /> w domenie <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Zwolnij miejsce na dysku, ponieważ w przeciwnym razie urządzenie przestanie odpowiadać.</translation> +<translation id="3873315167136380065">Aby włączyć tę funkcję, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" /> w celu usunięcia hasła synchronizacji</translation> <translation id="3878840326289104869">Tworzenie użytkownika nadzorowanego</translation> <translation id="3879748587602334249">Menedżer pobierania</translation> <translation id="3880709822663530586">Klucz bezpieczeństwa będzie działać, gdy włączysz na urządzeniu Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Zapisane odciski palców</translation> <translation id="407173827865827707">Po kliknięciu</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: błąd logowania</translation> +<translation id="4071828814509176232">OK Google</translation> <translation id="4074900173531346617">Certyfikat podmiotu podpisującego pocztę e-mail</translation> <translation id="407520071244661467">Skala</translation> <translation id="4075639477629295004">Nie udało się przesłać pliku <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Przejrzyj ustawienia na następnym ekranie</translation> <translation id="4193154014135846272">Dokument Google</translation> <translation id="4194570336751258953">Włącz funkcję dotknij-kliknij</translation> +<translation id="4195249722193633765">Zainstaluj aplikację za pomocą Linuksa (Beta)</translation> <translation id="4195643157523330669">Otwórz w nowej karcie</translation> <translation id="4195814663415092787">Kontynuuj tam, gdzie skończyłem</translation> <translation id="4197674956721858839">Spakuj wybrane do pliku ZIP</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">8 element na półce</translation> <translation id="4287502004382794929">Nie masz wystarczającej liczby licencji na oprogramowanie, by zarejestrować to urządzenie. Aby dokupić licencje, skontaktuj się z działem sprzedaży. Jeśli uważasz, że widzisz tę wiadomość z powodu błędu, skontaktuj się z obsługą klienta.</translation> <translation id="4289540628985791613">Przegląd</translation> +<translation id="4295072614469448764">Aplikacja jest teraz dostępna w terminalu. Może mieć też ikonę w Menu z aplikacjami.</translation> <translation id="4296575653627536209">Dodaj nadzorowanego użytkownika</translation> +<translation id="4297219207642690536">Uruchom ponownie i zresetuj</translation> <translation id="4297322094678649474">Zmień języki</translation> <translation id="4300305918532693141">Aby zmienić to ustawienie, <ph name="BEGIN_LINK" />zresetuj synchronizację<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">długie (2 s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Podany adres e-mail i hasło nie pasują do siebie</translation> <translation id="437184764829821926">Zaawansowane ustawienia czcionek</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Instalator Linuksa</translation> <translation id="4375035964737468845">Otwieranie pobranych plików</translation> <translation id="4377363674125277448">Wystąpił problem z certyfikatem serwera.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Sparuj urządzenie Bluetooth</translation> <translation id="4579581181964204535">Nie udało się przesłać <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Czy na pewno chcesz usunąć następującą liczbę elementów: $1?</translation> +<translation id="4582497162516204941">Zainstaluj za pomocą Linuksa (Beta)</translation> <translation id="4582563038311694664">Zresetuj wszystkie ustawienia</translation> <translation id="4585793705637313973">Edytuj stronę</translation> <translation id="4589268276914962177">Nowy terminal</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Domyślny pomarańczowy awatar</translation> <translation id="4955814292505481804">Roczna</translation> <translation id="4957949153200969297">Włącz tylko funkcje związane z Synchronizacją <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Hasła są zapisywane na Twoim koncie Google, dzięki czemu możesz ich używać na dowolnym urządzeniu</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Wybrany folder zawiera poufne pliki. Czy na pewno chcesz, by aplikacja „$1” miała do niego stały dostęp z uprawnieniami do odczytu?</translation> <translation id="4964455510556214366">Układ</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Zostały zmienione ustawienia synchronizacji, personalizacji i innych usług Google w Chrome. Może to wpłynąć na Twoje bieżące ustawienia.</translation> <translation id="5241128660650683457">Odczyt wszystkich Twoich danych na odwiedzanych stronach internetowych</translation> <translation id="5242724311594467048">Włączyć rozszerzenie „<ph name="EXTENSION_NAME" />”?</translation> +<translation id="5243522832766285132">Spróbuj ponownie za kilka chwil</translation> <translation id="5244474230056479698">Synchronizowanie z <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Aplikacja <ph name="APP_NAME" /> uległa awarii. Kliknij ten dymek, aby uruchomić ją ponownie.</translation> <translation id="5247051749037287028">Wyświetlana nazwa (opcjonalnie)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">To może potrwać około minuty.</translation> <translation id="5264252276333215551">Aby uruchomić aplikację w trybie kiosku, połącz się z internetem.</translation> <translation id="5265562206369321422">Offline od ponad tygodnia</translation> +<translation id="5265797726250773323">Błąd podczas instalowania</translation> <translation id="5266113311903163739">Błąd importowania urzędu certyfikacji</translation> <translation id="5269977353971873915">Niepowodzenie drukowania</translation> <translation id="5271549068863921519">Zapisz hasło</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Sformatuj urządzenie</translation> <translation id="5292195676005197571">W przypadku większości kluczy wystarczy nacisnąć przycisk</translation> <translation id="5293170712604732402">Przywróć ustawienia do wartości domyślnych</translation> +<translation id="5297082477358294722">Hasło zostało zapisane. Swoje zapisane hasła znajdziesz tutaj: <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Motyw utworzony przez</translation> <translation id="5299109548848736476">Bez śledzenia</translation> <translation id="5299682071747318445">Wszystkie dane są szyfrowane z użyciem Twojego hasła</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> chce używać lokalizacji Twojego komputera</translation> <translation id="5612734644261457353">Nadal nie można zweryfikować Twojego hasła. Uwaga: jeśli ostatnio hasło było zmieniane, nowe hasło zostanie zastosowane, gdy się wylogujesz. Tu podaj stare hasło.</translation> <translation id="5614190747811328134">Informacje dla użytkownika</translation> +<translation id="5614553682702429503">Zapisać hasło?</translation> <translation id="561698261642843490">Zamykanie Firefoksa</translation> <translation id="5618075537869101857">Nie można uruchomić aplikacji kiosku.</translation> <translation id="5618333180342767515">(może to potrwać kilka minut)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Język strony:</translation> <translation id="5677928146339483299">Zablokowane</translation> <translation id="5678550637669481956">Uprawnienia do zapisu i odczytu nośnika <ph name="VOLUME_NAME" /> zostały przyznane.</translation> +<translation id="5678784840044122290">Aplikacja na Linuksa będzie dostępna w terminalu. Może mieć też ikonę w Menu z aplikacjami.</translation> <translation id="5678955352098267522">Odczyt Twoich danych na stronie <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identyfikator zasobu</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Nie można odłączyć archiwum lub dysku wirtualnego<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Dodaj osobę</translation> <translation id="583281660410589416">Nieznany</translation> <translation id="5832976493438355584">Zablokowane</translation> +<translation id="5833397272224757657">Zawartość otwieranych stron oraz informacje o Twoich interakcjach i aktywności w przeglądarce zostaną wykorzystane do personalizacji</translation> <translation id="5833610766403489739">Plik gdzieś się zawieruszył. Sprawdź ustawienie lokalizacji pobierania i spróbuj ponownie.</translation> <translation id="5833726373896279253">Tylko właściciel może zmodyfikować te ustawienia:</translation> <translation id="5834581999798853053">Zostało około <ph name="TIME" /> min</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Zablokuj uruchamianie Flasha na stronach</translation> <translation id="5910363049092958439">Zapisz gra&fikę jako...</translation> <translation id="5911737117543891828">Tymczasowe pliki offline z Dysku Google zostaną usunięte. Pliki, które zostały przez Ciebie określone jako dostępne w trybie offline, nie zostaną usunięte z tego urządzenia.</translation> +<translation id="5911887972742538906">Podczas instalowania aplikacji na Linuksa wystąpił błąd.</translation> <translation id="5912378097832178659">&Edytuj wyszukiwarki...</translation> <translation id="5914724413750400082">Modulo (<ph name="MODULUS_NUM_BITS" /> b): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Wyloguj się i ponownie zaloguj</translation> <translation id="6198252989419008588">Zmień kod PIN</translation> <translation id="6199801702437275229">Oczekuję na informacje o wolnym miejscu...</translation> +<translation id="6201792273624501289">Aplikacje na Linuksa</translation> <translation id="6204015976622790023">Wyświetlaj sugestie Asystenta dotyczące tego, co wyświetla się na Twoim ekranie.</translation> <translation id="6205710420833115353">Niektóre operacje trwają dłużej niż powinny. Chcesz je przerwać?</translation> <translation id="6206311232642889873">Kop&iuj grafikę</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Wybierz</translation> <translation id="694592694773692225">Przekierowanie zostało zablokowane na tej stronie.</translation> <translation id="6949306908218145636">Dodaj otwarte strony do zakładek...</translation> +<translation id="6950627417367801484">Przywróć aplikacje</translation> <translation id="6951153907720526401">Moduły do obsługi płatności</translation> <translation id="6955446738988643816">Sprawdź wyskakujące okienko</translation> <translation id="6957231940976260713">Nazwa usługi</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Historia pobierania</translation> <translation id="7131040479572660648">Odczyt Twoich danych na stronie <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> i <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Dodaj &stronę</translation> +<translation id="7133578150266914903">Administrator przywraca wcześniejszą wersję oprogramowania na tym urządzeniu (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Pomniejsz tekst</translation> <translation id="7136694880210472378">Ustaw jako domyślną</translation> <translation id="7136984461011502314">Witamy w przeglądarce <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Dodaj osobę</translation> <translation id="7464490149090366184">Pakowanie nie powiodło się, element istnieje: „$1”</translation> <translation id="7465778193084373987">Adres URL odwołania certyfikatu firmy Netscape</translation> +<translation id="7469406957790636836">Aby włączyć tę funkcję, najpierw włącz sprawdzanie pisowni w sekcji <ph name="BEGIN_LINK" />Języki i metody wprowadzania<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Automatycznie łącz się z tą siecią</translation> <translation id="747114903913869239">Błąd: nie można zdekodować rozszerzenia</translation> <translation id="7473753388963818366">Przygotujmy to urządzenie (<ph name="DEVICE_TYPE" />) dla Ciebie</translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Urzędy</translation> <translation id="7607002721634913082">Wstrzymano</translation> <translation id="7607274158153386860">Żądaj strony w wersji na tablety</translation> +<translation id="7609148976235050828">Połącz się z internetem i spróbuj ponownie.</translation> <translation id="7611008212562900400">Przeszukaj urządzenie, aplikacje, internet…</translation> <translation id="7616214729753637086">Rejestruję urządzenie…</translation> <translation id="7617366389578322136">Łączę się z urządzeniem „<ph name="DEVICE_NAME" />”</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Przechwytywanie zawartości ekranu</translation> <translation id="7730494089396812859">Pokaż szczegóły kopii zapasowej w chmurze</translation> <translation id="7732111077498238432">W sieci obowiązują zasady</translation> +<translation id="7737238973539693982">Usuń Linuksa (Beta)</translation> <translation id="773905249182896430">Chroni Ciebie i Twoje urządzenie przed niebezpiecznymi witrynami</translation> <translation id="7740996059027112821">Standardowa</translation> <translation id="7748528009589593815">Poprzednia karta</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Nadmiarowość obrazu</translation> <translation id="7977551819349545646">Aktualizuję Chromeboxa...</translation> <translation id="7978412674231730200">Klucz prywatny</translation> +<translation id="7978450511781612192">Spowoduje to wylogowanie Cię z Twoich kont Google. Twoje zakładki, historia, hasła i inne dane przestaną być synchronizowane.</translation> <translation id="7979036127916589816">Błąd synchronizacji</translation> <translation id="7980084013673500153">Identyfikator zasobu: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Ładuj wstępnie strony, by przyspieszyć przeglądanie i wyszukiwanie</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Kolejka</translation> <translation id="8226742006292257240">Poniżej znajduje się losowo wygenerowane hasło modułu TPM, które zostało przypisane do Twojego komputera:</translation> <translation id="8227119283605456246">Załącz plik</translation> +<translation id="8230134520748321204">Zapisać hasło do: <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pomóż naszym inżynierom rozwiązać ten problem. Powiedz nam, co się działo tuż przed wyświetleniem się komunikatu o błędzie profilu:</translation> <translation id="8234989666557591529">Wybierz telefon do odblokowania urządzenia <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Synchronizuj jako <ph name="FULL_NAME" /></translation> @@ -4813,6 +4852,7 @@ <translation id="8438328416656800239">Przejdź na inteligentną przeglądarkę</translation> <translation id="8438566539970814960">Ulepsz wyszukiwanie i przeglądanie</translation> <translation id="8439506636278576865">Proponuj tłumaczenie stron w tym języku</translation> +<translation id="8440630305826533614">Aplikacje na Linuksa</translation> <translation id="8446884382197647889">Więcej informacji</translation> <translation id="8447409163267621480">Uwzględnij Ctrl lub Alt</translation> <translation id="8448729345478502352">Powiększ lub pomniejsz elementy na ekranie</translation> @@ -4857,6 +4897,7 @@ <translation id="8497219075884839166">Narzędzia Windows</translation> <translation id="8498214519255567734">Dzięki tej funkcji oczy mniej się męczą podczas patrzenia na ekran lub czytania przy słabym oświetleniu</translation> <translation id="8498395510292172881">Czytaj dalej w Chrome</translation> +<translation id="8502536196501630039">Aby używać aplikacji z Google Play, musisz najpierw przywrócić swoje aplikacje. Niektóre dane mogły zostać utracone.</translation> <translation id="8503813439785031346">Nazwa użytkownika</translation> <translation id="850875081535031620">Nie znaleziono szkodliwego oprogramowania</translation> <translation id="8509646642152301857">Nie udało się pobrać słownika funkcji sprawdzania pisowni.</translation> @@ -4986,6 +5027,7 @@ <translation id="8698464937041809063">Rysunek Google</translation> <translation id="869884720829132584">Menu aplikacji</translation> <translation id="869891660844655955">Data wygaśnięcia</translation> +<translation id="8699566574894671540">Aby włączyć tę funkcję, najpierw w menu Edycja włącz opcję Sprawdzaj pisownię w trakcie pisania</translation> <translation id="870073306461175568">Sieciowe udziały plików</translation> <translation id="8701677791353449257">Nazwa urządzenia musi odpowiadać wyrażeniu regularnemu <ph name="REGEX" />.</translation> <translation id="8704521619148782536">To trwa o wiele dłużej niż zwykle. Możesz zaczekać albo anulować i spróbować ponownie później.</translation> @@ -5025,6 +5067,7 @@ <p>Serwer proxy można jeszcze skonfigurować za pomocą wiersza poleceń. Więcej informacji na temat flag i zmiennych środowiskowych zawiera instrukcja <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">&Większy</translation> +<translation id="8756969031206844760">Zaktualizować hasło?</translation> <translation id="8757090071857742562">Nie udało się przesłać pulpitu. Sprawdź, czy potwierdzono prośbę o rozpoczęcie udostępniania ekranu.</translation> <translation id="8757640015637159332">Rozpocznij sesję publiczną</translation> <translation id="8757742102600829832">Wybierz Chromeboxa, z którym chcesz się połączyć</translation> @@ -5181,7 +5224,9 @@ <translation id="9009369504041480176">Przesyłanie (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Zawsze pokazuj ikonę</translation> <translation id="9011178328451474963">Ostatnia karta</translation> +<translation id="9013707997379828817">Administrator przywrócił wcześniejszą wersję oprogramowania na tym urządzeniu. Zapisz ważne pliki, a następnie uruchom ponownie urządzenie. Wszystkie dane zostaną usunięte z pamięci.</translation> <translation id="9014987600015527693">Pokaż inny telefon</translation> +<translation id="9018218886431812662">Instalacja ukończona</translation> <translation id="901834265349196618">e-mail</translation> <translation id="9019062154811256702">Odczytywanie i zmienianie ustawień autouzupełniania</translation> <translation id="9020362265352758658">4x</translation> @@ -5205,6 +5250,7 @@ <translation id="9038649477754266430">Używaj podpowiedzi, by strony ładowały się szybciej</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Wycisz karty</translation> +<translation id="9040661932550800571">Zaktualizować hasło do: <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Dostęp do plików lokalnych na tym komputerze został wyłączony przez administratora</translation> <translation id="9042893549633094279">Prywatność i bezpieczeństwo</translation> <translation id="904451693890288097">Wpisz klucz urządzenia „<ph name="DEVICE_NAME" />”:</translation> @@ -5309,6 +5355,7 @@ <translation id="9203478404496196495">Wyłącz wyciszenie karty</translation> <translation id="9203904171912129171">Wybierz urządzenie</translation> <translation id="9203962528777363226">Administrator tego urządzenia wyłączył możliwość dodawania nowych użytkowników</translation> +<translation id="9213073329713032541">Instalacja rozpoczęła się.</translation> <translation id="9214520840402538427">Upłynął limit czasu inicjowania atrybutów instalacyjnych. Skontaktuj się z przedstawicielem obsługi klienta.</translation> <translation id="9214695392875603905">Babeczka</translation> <translation id="9215293857209265904">Dodano „<ph name="EXTENSION_NAME" />”</translation> @@ -5363,6 +5410,7 @@ <translation id="988978206646512040">Puste hasło jest niedozwolone</translation> <translation id="992032470292211616">Rozszerzenia, aplikacje i motywy mogą wyrządzić szkody na urządzeniu. Na pewno chcesz kontynuować?</translation> <translation id="992592832486024913">Wyłącz ChromeVox (potwierdzenia głosowe)</translation> +<translation id="993540765962421562">Instaluję</translation> <translation id="994289308992179865">&Powtarzaj</translation> <translation id="996250603853062861">Nawiązuję bezpieczne połączenie...</translation> <translation id="998747458861718449">&Zbadaj</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb index 151d4b6c..e59d18e 100644 --- a/chrome/app/resources/generated_resources_pt-BR.xtb +++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Pesquisando...</translation> <translation id="1316495628809031177">A sincronização está pausada</translation> <translation id="1319979322914001937">Um aplicativo que mostra uma lista filtrada de extensões da Chrome Web Store. As extensões que estão na lista podem ser instaladas diretamente a partir do app.</translation> +<translation id="1322046419516468189">Ver e gerenciar senhas salvas na sua <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Para ver as guias dos seus outros dispositivos, faça login no Chrome.</translation> <translation id="1327074568633507428">Impressora no Google Cloud Print</translation> <translation id="1327977588028644528">Gateway</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Central de ajuda</translation> <translation id="162035744160882748">Ativar sincronização, personalização e outros serviços do Google</translation> <translation id="1620510694547887537">Câmera</translation> +<translation id="1623132449929929218">As imagens estão indisponíveis no momento. Reconecte-se à Internet para ver as coleções de plano de fundo.</translation> <translation id="1624026626836496796">Isso só acontecerá uma vez e suas credenciais não serão armazenadas.</translation> <translation id="1627276047960621195">Descritores de arquivos</translation> <translation id="1627408615528139100">Download já concluído</translation> <translation id="1632803087685957583">Permite ajustar a taxa de repetição, a previsão de palavras e outras configurações do teclado</translation> <translation id="1635033183663317347">Instalada pelo custodiante.</translation> +<translation id="1635885551358739414">O Google pode usar o conteúdo dos sites que você visita, além das interações e atividades do navegador, para personalizar o Chrome e outros serviços do Google, como o Tradutor, a Pesquisa e os anúncios. Você pode personalizar isso em "Configurações".</translation> <translation id="1637224376458524414">Receber esse favorito no seu iPhone</translation> <translation id="1637765355341780467">Ocorreu um erro ao abrir seu perfil. É possível que alguns recursos estejam indisponíveis.</translation> <translation id="1639239467298939599">Carregando</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">A senha é muito pequena.</translation> <translation id="1661867754829461514">PIN ausente</translation> <translation id="16620462294541761">Não foi possível confirmar sua senha. Tente novamente.</translation> +<translation id="1662550410081243962">Salvar e preencher as formas de pagamento</translation> <translation id="166278006618318542">Algoritmo da chave pública do requerente</translation> <translation id="166439687370499867">A alteração das configurações de rede compartilhada não é permitida</translation> <translation id="1665611772925418501">Não foi possível modificar o arquivo.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> quer ver a marca e o modelo da sua chave de segurança</translation> <translation id="167832068858235403">diminuir volume</translation> <translation id="1679068421605151609">Ferramentas do desenvolvedor</translation> +<translation id="1680849702532889074">Ocorreu um erro durante a instalação do aplicativo Linux.</translation> <translation id="16815041330799488">Não permitir que sites vejam textos e imagens copiados para a área de transferência</translation> <translation id="1682548588986054654">Nova janela anônima</translation> <translation id="168715261339224929">Para ver seus favoritos em todos os seus dispositivos, ative a sincronização.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Liberar guias</translation> <translation id="1734824808160898225">Talvez o <ph name="PRODUCT_NAME" /> não consiga se manter atualizado</translation> <translation id="1736419249208073774">Explorar</translation> +<translation id="1736827427463982819">Desligar o Linux (Beta)</translation> <translation id="1737968601308870607">Cadastre um bug</translation> <translation id="1741314857973421784">Continuar</translation> <translation id="174173592514158117">Mostrar todas as pastas do Google Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">O URL <ph name="URL" /> quer armazenar permanentemente dados grandes no computador local</translation> <translation id="1997616988432401742">Seus certificados</translation> <translation id="1999115740519098545">Inicialização</translation> +<translation id="2000419248597011803">Envia alguns cookies e pesquisas da barra de endereço e da caixa de pesquisa para seu mecanismo de pesquisa padrão.</translation> <translation id="2001796770603320721">Gerenciar no Drive</translation> <translation id="2004663115385769400">Não é possível abrir com $1</translation> <translation id="200544492091181894">Você pode alterar isso a qualquer momento nas configurações</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Continuar bloqueando cookies</translation> <translation id="204622017488417136">Seu dispositivo voltará à versão do Google Chrome instalada anteriormente. Todas as contas de usuário e dados locais serão removidos. Esta ação não pode ser desfeita.</translation> <translation id="2048182445208425546">Acesse seu tráfego de rede</translation> +<translation id="2048653237708779538">Ação indisponível</translation> <translation id="204914487372604757">Criar atalho</translation> <translation id="2050339315714019657">Retrato</translation> <translation id="2053312383184521053">Dados em estado de inatividade</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">O plug-in <ph name="PEPPER_PLUGIN_NAME" /> do domínio <ph name="PEPPER_PLUGIN_DOMAIN" /> quer acessar seu computador</translation> <translation id="2178614541317717477">Compromisso da autoridade de certificação</translation> <translation id="218070003709087997">Use um número para indicar o número de cópias a serem impressas (1 a 999).</translation> +<translation id="2183558561014688873">Acesse seu Assistente sempre que disser "Ok Google" quando seu dispositivo estiver ativado e desbloqueado.</translation> <translation id="2187895286714876935">Erro de importação do certificado de servidor</translation> <translation id="2187906491731510095">Extensões atualizadas</translation> <translation id="2188881192257509750">Abrir <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Processo de GPU</translation> <translation id="2282155092769082568">URL de configuração automática</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Salvar e preencher endereços</translation> <translation id="2286841657746966508">Endereço de faturamento</translation> <translation id="2288181517385084064">Alternar para gravador de vídeo</translation> <translation id="2288735659267887385">Configurações de acessibilidade</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Tamanho total do arquivo</translation> <translation id="2428510569851653187">Descrever o que você estava fazendo quando a guia travou</translation> <translation id="2431027948063157455">Não foi possível carregar o Google Assistente. Verifique sua conexão de rede e tente novamente.</translation> +<translation id="2432753757290432042">Atualização do Linux (Beta) obrigatória</translation> <translation id="2433452467737464329">Adicione um parâmetro de consulta ao URL para atualizar automaticamente a página: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Aparência</translation> <translation id="2433836460518180625">Desbloquear somente dispositivo</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Editar impressões digitais</translation> <translation id="2776441542064982094">Parece que não há dispositivos disponíveis para registrar na rede. Se seu dispositivo estiver ligado e conectado à Internet, tente registrá-lo usando as instruções do seu manual.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Erro ao instalar o aplicativo Linux</translation> <translation id="2783298271312924866">Download concluído</translation> <translation id="2783321960289401138">Criar atalho...</translation> <translation id="2783829359200813069">Selecionar tipos de criptografia</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Tente sair e fazer login novamente</translation> <translation id="2812989263793994277">Não mostrar nenhuma imagem</translation> <translation id="2814489978934728345">Parar de carregar esta página</translation> +<translation id="281504910091592009">Ver e gerenciar as senhas salvas na sua <ph name="BEGIN_LINK" />Conta do Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Barra de favoritos</translation> <translation id="2815693974042551705">Pasta de favoritos</translation> <translation id="2818476747334107629">Detalhes da impressora</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Mostrar dispositivos Bluetooth disponíveis</translation> <translation id="2941112035454246133">Baixa</translation> <translation id="2942560570858569904">Aguardando...</translation> +<translation id="2942581856830209953">Personalizar esta página</translation> <translation id="2943400156390503548">Apresentações</translation> <translation id="2943503720238418293">Use um nome mais curto</translation> <translation id="2946119680249604491">Adicionar conexão</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Senha:</translation> <translation id="3694027410380121301">Selecionar guia anterior</translation> <translation id="3699624789011381381">Endereço de e-mail</translation> +<translation id="3699920817649120894">Desativar a sincronização e a personalização?</translation> <translation id="3700888195348409686">Apresentando (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Suas páginas de inicialização foram alteradas para incluir <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript bloqueado</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Tela cheia</translation> <translation id="3828029223314399057">Pesquisar favoritos</translation> <translation id="3830674330436234648">Nenhuma reprodução disponível</translation> +<translation id="3831436149286513437">Sugestões de pesquisa do Google Drive</translation> <translation id="3831486154586836914">Iniciado modo de visão geral da janela</translation> <translation id="383161972796689579">O proprietário deste dispositivo desativou a adição de novos usuários</translation> <translation id="3834775135533257713">Não foi possível adicionar o app "<ph name="TO_INSTALL_APP_NAME" />" porque ele entra em conflito com o app "<ph name="INSTALLED_APP_NAME" />".</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Mais baixa</translation> <translation id="3872220884670338524">Mais ações, contas salvas de <ph name="USERNAME" /> em <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Libere espaço em disco, ou o dispositivo deixará de responder.</translation> +<translation id="3873315167136380065">Para ativar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" /> para remover sua senha longa de sincronização</translation> <translation id="3878840326289104869">Criando usuário supervisionado</translation> <translation id="3879748587602334249">Gerenciador de downloads</translation> <translation id="3880709822663530586">Sua chave de segurança só funciona quando o Bluetooth do dispositivo está ativado</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Impressões digitais salvas</translation> <translation id="407173827865827707">Ao clicar</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: erro de login</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certificado do signatário do e-mail</translation> <translation id="407520071244661467">Escala</translation> <translation id="4075639477629295004">Não foi possível transmitir o arquivo <ph name="FILE_NAME" /></translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Revisar as configurações na próxima tela</translation> <translation id="4193154014135846272">Documento do Google</translation> <translation id="4194570336751258953">Ativar toque para clicar</translation> +<translation id="4195249722193633765">Instalar aplicativo com o Linux (Beta)</translation> <translation id="4195643157523330669">Abrir em uma nova guia</translation> <translation id="4195814663415092787">Continuar de onde você parou</translation> <translation id="4197674956721858839">Compactar seleção</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Item 8 da estante</translation> <translation id="4287502004382794929">Você não tem licenças de software suficientes para inscrever este dispositivo. Entre em contato com o departamento de vendas para adquirir mais. Se acredita que esta mensagem está aparecendo por engano, entre em contato com o suporte.</translation> <translation id="4289540628985791613">Visão geral</translation> +<translation id="4295072614469448764">O aplicativo está disponível no seu terminal. Também pode haver um ícone no acesso rápido.</translation> <translation id="4296575653627536209">Adicionar usuário supervisionado</translation> +<translation id="4297219207642690536">Reiniciar e redefinir</translation> <translation id="4297322094678649474">Alterar idiomas</translation> <translation id="4300305918532693141">Para alterar essa configuração, <ph name="BEGIN_LINK" />redefina a sincronização<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">longo (2 seg)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">O e-mail e a senha que você digitou não coincidem.</translation> <translation id="437184764829821926">Configurações de fonte avançadas</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Instalador do Linux</translation> <translation id="4375035964737468845">Abrir arquivos baixados</translation> <translation id="4377363674125277448">Ocorreu um problema com o certificado do servidor.</translation> <translation id="4378154925671717803">Telefone</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Parear dispositivo Bluetooth</translation> <translation id="4579581181964204535">Não foi possível transmitir <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Tem certeza que quer excluir $1 itens?</translation> +<translation id="4582497162516204941">Instalar com o Linux (Beta)</translation> <translation id="4582563038311694664">Redefinir todas as configurações</translation> <translation id="4585793705637313973">Editar página</translation> <translation id="4589268276914962177">Novo terminal</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Avatar laranja padrão</translation> <translation id="4955814292505481804">Anual</translation> <translation id="4957949153200969297">Ativa apenas os recursos relacionados à sincronização do <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">As senhas são salvas na sua Conta do Google para que você possa usá-las em qualquer dispositivo</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" />: <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">A pasta selecionada contém arquivos confidenciais. Tem certeza que quer conceder a "$1" acesso permanente de leitura a esta pasta?</translation> <translation id="4964455510556214366">Organização</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">As configurações que controlam sincronização, personalização e outros serviços do Google no Chrome foram alteradas. Isso pode afetar suas configurações atuais.</translation> <translation id="5241128660650683457">Ler todos os dados sobre os websites que você visita</translation> <translation id="5242724311594467048">Ativar "<ph name="EXTENSION_NAME" />"?</translation> +<translation id="5243522832766285132">Tente novamente em alguns instantes</translation> <translation id="5244474230056479698">Sincronizado com <ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> travou. Clique neste balão para reiniciar o aplicativo.</translation> <translation id="5247051749037287028">Nome de exibição (opcional)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Isso pode levar aproximadamente um minuto.</translation> <translation id="5264252276333215551">Conecte-se à Internet para iniciar seu aplicativo no modo quiosque.</translation> <translation id="5265562206369321422">Off-line há mais de uma semana</translation> +<translation id="5265797726250773323">Erro ao instalar</translation> <translation id="5266113311903163739">Erro de importação da Autoridade de certificação</translation> <translation id="5269977353971873915">Falha ao imprimir</translation> <translation id="5271549068863921519">Salvar senha</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatar este dispositivo</translation> <translation id="5292195676005197571">Para usar a maioria das chaves, basta pressionar o botão</translation> <translation id="5293170712604732402">Restaurar configurações para os padrões originais</translation> +<translation id="5297082477358294722">Senha salva. Veja e gerencie as senhas salvas na sua <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Tema criado por</translation> <translation id="5299109548848736476">Não rastrear</translation> <translation id="5299682071747318445">Todos os dados são criptografados com sua senha de sincronização</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150">O URL <ph name="URL" /> quer usar o local do seu computador</translation> <translation id="5612734644261457353">Não foi possível confirmar sua senha. Nota: se você alterou sua senha recentemente, a nova senha será aplicada depois que você sair. Use a senha antiga aqui.</translation> <translation id="5614190747811328134">Aviso para o usuário</translation> +<translation id="5614553682702429503">Salvar senha?</translation> <translation id="561698261642843490">Fechar o Firefox</translation> <translation id="5618075537869101857">Puxa, não foi possível iniciar o aplicativo de quiosque.</translation> <translation id="5618333180342767515">Isso pode demorar alguns minutos</translation> @@ -3043,6 +3071,7 @@ <translation id="5677503058916217575">Idioma da página:</translation> <translation id="5677928146339483299">Bloqueados</translation> <translation id="5678550637669481956">Foi concedido acesso de leitura e gravação a <ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">O aplicativo Linux estará disponível no seu terminal e também poderá mostrar um ícone no acesso rápido.</translation> <translation id="5678955352098267522">Leia seus dados em <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identificador de recurso</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Não é possível desconectar de um arquivo ou disco virtual<ph name="END_BOLD" /> @@ -3138,6 +3167,7 @@ <translation id="5832805196449965646">Adicionar pessoa</translation> <translation id="583281660410589416">Desconhecido</translation> <translation id="5832976493438355584">Bloqueado</translation> +<translation id="5833397272224757657">Usa o conteúdo dos sites que você visita, além das interações e atividades do navegador, para personalização</translation> <translation id="5833610766403489739">Este arquivo está perdido em algum lugar. Verifique sua configuração de local de download e tente novamente.</translation> <translation id="5833726373896279253">Estas definições somente poderão ser alteradas pelo proprietário:</translation> <translation id="5834581999798853053">Cerca de <ph name="TIME" /> minutos restantes</translation> @@ -3191,6 +3221,7 @@ <translation id="5908769186679515905">Impedir que sites executem Flash</translation> <translation id="5910363049092958439">Sal&var imagem como...</translation> <translation id="5911737117543891828">Arquivos off-line temporários do Google Drive serão excluídos. Os arquivos que você definiu como disponíveis off-line não serão excluídos deste dispositivo.</translation> +<translation id="5911887972742538906">Ocorreu um erro durante a instalação do aplicativo Linux.</translation> <translation id="5912378097832178659">&Editar mecanismos de pesquisa...</translation> <translation id="5914724413750400082">Módulo (<ph name="MODULUS_NUM_BITS" /> bits): <ph name="MODULUS_HEX_DUMP" /> @@ -3378,6 +3409,7 @@ <translation id="6198102561359457428">Saia e faça login novamente...</translation> <translation id="6198252989419008588">Alterar PIN</translation> <translation id="6199801702437275229">Aguardando informações sobre espaço...</translation> +<translation id="6201792273624501289">Aplicativos Linux</translation> <translation id="6204015976622790023">Veja sugestões relevantes do seu Assistente relacionadas ao que é exibido na tela.</translation> <translation id="6205710420833115353">Algumas operações estão demorando mais tempo que o esperado. Quer cancelar?</translation> <translation id="6206311232642889873">&Copiar imagem</translation> @@ -3854,6 +3886,7 @@ <translation id="6945221475159498467">Selecionar</translation> <translation id="694592694773692225">Redirecionamento bloqueado nesta página.</translation> <translation id="6949306908218145636">Adicionar páginas abertas aos favoritos...</translation> +<translation id="6950627417367801484">Restaurar apps</translation> <translation id="6951153907720526401">Gerenciadores de pagamento</translation> <translation id="6955446738988643816">Inspecionar pop-up</translation> <translation id="6957231940976260713">Nome do serviço</translation> @@ -3979,6 +4012,7 @@ <translation id="7127980134843952133">Histórico de download</translation> <translation id="7131040479572660648">Leia seus dados em <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> e <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Adicionar pá&gina...</translation> +<translation id="7133578150266914903">O administrador está revertendo este dispositivo (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Diminuir o texto</translation> <translation id="7136694880210472378">Tornar padrão</translation> <translation id="7136984461011502314">Bem-vindo ao <ph name="PRODUCT_NAME" /></translation> @@ -4179,6 +4213,7 @@ <translation id="7463006580194749499">Adicionar pessoa</translation> <translation id="7464490149090366184">Falha na compactação, o item existe: "$1"</translation> <translation id="7465778193084373987">URL da revogação do certificado do Netscape</translation> +<translation id="7469406957790636836">Para ativar essa configuração, primeiro ative a verificação ortográfica em <ph name="BEGIN_LINK" />Idiomas e entrada<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Conectar-se automaticamente a esta rede</translation> <translation id="747114903913869239">Erro: Não foi possível decodificar a extensão</translation> <translation id="7473753388963818366">É hora de preparar seu <ph name="DEVICE_TYPE" /></translation> @@ -4276,6 +4311,7 @@ <translation id="7606992457248886637">Autoridades</translation> <translation id="7607002721634913082">Pausado</translation> <translation id="7607274158153386860">Solicitar site para tablet</translation> +<translation id="7609148976235050828">Conecte-se à Internet e tente novamente.</translation> <translation id="7611008212562900400">Pesquisar seu dispositivo, apps, Web...</translation> <translation id="7616214729753637086">Registrando dispositivo…</translation> <translation id="7617366389578322136">Conectando-se a "<ph name="DEVICE_NAME" />"</translation> @@ -4344,6 +4380,7 @@ <translation id="7730449930968088409">Capturar o conteúdo da sua tela</translation> <translation id="7730494089396812859">Exibir detalhes do backup em nuvem</translation> <translation id="7732111077498238432">A rede é controlada por política</translation> +<translation id="7737238973539693982">Excluir o Linux (Beta)</translation> <translation id="773905249182896430">Protege você e seu dispositivo de sites perigosos</translation> <translation id="7740996059027112821">Padrão</translation> <translation id="7748528009589593815">Guia anterior</translation> @@ -4532,6 +4569,7 @@ <translation id="7974936243149753750">Overscan</translation> <translation id="7977551819349545646">Atualizando Chromebox...</translation> <translation id="7978412674231730200">Chave privada</translation> +<translation id="7978450511781612192">Isso desconectará você das suas Contas do Google. Seus favoritos, histórico, senhas e outras configurações não serão mais sincronizados.</translation> <translation id="7979036127916589816">Erro de sincronização</translation> <translation id="7980084013673500153">Código do recurso: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Pré-carregar páginas para possibilitar navegação e pesquisa mais rápidas</translation> @@ -4696,6 +4734,7 @@ <translation id="8226619461731305576">Fila</translation> <translation id="8226742006292257240">A senha abaixo foi gerada de forma aleatória e atribuída ao seu computador:</translation> <translation id="8227119283605456246">Anexar arquivo</translation> +<translation id="8230134520748321204">Salvar senha para <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Ajude nossos engenheiros a corrigir esse problema. Conte-nos o que aconteceu logo antes de você receber a mensagem de erro de perfil:</translation> <translation id="8234989666557591529">Escolha um smartphone para desbloquear seu <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Sincronizar como <ph name="FULL_NAME" /></translation> @@ -4815,6 +4854,7 @@ <translation id="8438328416656800239">Mudar para um navegador inteligente</translation> <translation id="8438566539970814960">Melhorar pesquisas e navegação</translation> <translation id="8439506636278576865">Oferecer para traduzir páginas neste idioma</translation> +<translation id="8440630305826533614">Aplicativos Linux</translation> <translation id="8446884382197647889">Saiba mais</translation> <translation id="8447409163267621480">Incluir a tecla Ctrl ou Alt</translation> <translation id="8448729345478502352">Torne os itens na tela menores ou maiores</translation> @@ -4859,6 +4899,7 @@ <translation id="8497219075884839166">Utilitários do Windows</translation> <translation id="8498214519255567734">Facilita olhar para a tela ou ler com pouca luz</translation> <translation id="8498395510292172881">Continuar lendo no Chrome</translation> +<translation id="8502536196501630039">Para usar apps do Google Play, primeiro você precisa restaurar seus apps. Alguns dados podem ter sido perdidos.</translation> <translation id="8503813439785031346">Nome de usuário</translation> <translation id="850875081535031620">Nenhum software perigoso encontrado</translation> <translation id="8509646642152301857">Falha no download do dicionário de correção ortográfica.</translation> @@ -4988,6 +5029,7 @@ <translation id="8698464937041809063">Desenho do Google</translation> <translation id="869884720829132584">Menu Aplicativos</translation> <translation id="869891660844655955">Validade</translation> +<translation id="8699566574894671540">Para ativar essa configuração, primeiro selecione "Verificar ortografia ao digitar" no menu "Editar"</translation> <translation id="870073306461175568">Compartilhamentos de arquivos de rede</translation> <translation id="8701677791353449257">O nome do dispositivo precisa corresponder à expressão regular <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Esta ação está levando mais tempo que o habitual. Você pode continuar esperando ou cancelá-la e tentar mais tarde.</translation> @@ -5027,6 +5069,7 @@ <p>Porém, você ainda pode configurar por meio da linha de comando. Consulte <code>man <ph name="PRODUCT_BINARY_NAME" /></code> para ver mais informações sobre variáveis de sinalizadores e ambiente.</p></translation> <translation id="8755376271068075440">&Maior</translation> +<translation id="8756969031206844760">Atualizar senha?</translation> <translation id="8757090071857742562">Não é possível transmitir a área de trabalho. Verifique se você confirmou a solicitação para começar a compartilhar sua tela.</translation> <translation id="8757640015637159332">Entrar na sessão pública</translation> <translation id="8757742102600829832">Selecionar um Chromebox para se conectar</translation> @@ -5183,7 +5226,9 @@ <translation id="9009369504041480176">Enviando (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Sempre mostrar ícone</translation> <translation id="9011178328451474963">Última guia</translation> +<translation id="9013707997379828817">O administrador reverteu este dispositivo. Salve arquivos importantes e reinicie. Todos os dados no dispositivo serão excluídos.</translation> <translation id="9014987600015527693">Mostrar outro smartphone</translation> +<translation id="9018218886431812662">Instalação concluída</translation> <translation id="901834265349196618">e-mail</translation> <translation id="9019062154811256702">Ler e alterar as configurações de preenchimento automático</translation> <translation id="9020362265352758658">4x</translation> @@ -5207,6 +5252,7 @@ <translation id="9038649477754266430">Usar um serviço de previsão para carregar páginas mais rapidamente</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Desativar som das guias</translation> +<translation id="9040661932550800571">Atualizar senha para <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">O acesso a arquivos locais no seu computador foi desativado pelo administrador</translation> <translation id="9042893549633094279">Privacidade e segurança</translation> <translation id="904451693890288097">Insira a chave de acesso para "<ph name="DEVICE_NAME" />":</translation> @@ -5311,6 +5357,7 @@ <translation id="9203478404496196495">Ativar o som da guia</translation> <translation id="9203904171912129171">Selecione um dispositivo</translation> <translation id="9203962528777363226">O administrador deste dispositivo desativou a adição de novos usuários</translation> +<translation id="9213073329713032541">Instalação iniciada.</translation> <translation id="9214520840402538427">Ops! A inicialização dos atributos de tempo de instalação ultrapassou o tempo limite. Entre em contato com o representante de suporte.</translation> <translation id="9214695392875603905">Cupcake</translation> <translation id="9215293857209265904">"<ph name="EXTENSION_NAME" />" adicionada</translation> @@ -5365,6 +5412,7 @@ <translation id="988978206646512040">A senha longa não pode ficar em branco</translation> <translation id="992032470292211616">Extensões, aplicativos e temas podem danificar seu dispositivo. Tem certeza que quer continuar?</translation> <translation id="992592832486024913">Desativar ChromeVox (feedback falado)</translation> +<translation id="993540765962421562">Instalação em andamento</translation> <translation id="994289308992179865">&Repetir</translation> <translation id="996250603853062861">Estabelecendo conexão segura...</translation> <translation id="998747458861718449">I&nspecionar</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb index d757de7..8cd92b9 100644 --- a/chrome/app/resources/generated_resources_ro.xtb +++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Se caută...</translation> <translation id="1316495628809031177">Sincronizarea este întreruptă</translation> <translation id="1319979322914001937">O aplicație care afișează o listă filtrată de extensii din Magazinul web Chrome. Extensiile din listă pot fi instalate direct din aplicație.</translation> +<translation id="1322046419516468189">Vezi și gestionează parolele salvate în <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Pentru a accesa filele de pe alte dispozitive, conectează-te la Chrome.</translation> <translation id="1327074568633507428">Imprimantă în Google Cloud Print</translation> <translation id="1327977588028644528">Gateway</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">C&entrul de ajutor</translation> <translation id="162035744160882748">Activează sincronizarea, personalizarea și alte servicii Google</translation> <translation id="1620510694547887537">Camera</translation> +<translation id="1623132449929929218">Imaginile sunt momentan indisponibile. Conectează-te din nou la internet ca să vezi colecțiile de imagini de fundal.</translation> <translation id="1624026626836496796">Acest lucru se va întâmpla doar o singură dată, iar datele tale de conectare nu vor fi stocate.</translation> <translation id="1627276047960621195">Descriptorii fișierelor</translation> <translation id="1627408615528139100">Descărcat deja</translation> <translation id="1632803087685957583">Cu ajutorul acestor setări, poți să ajustezi frecvența de repetare a tastelor, predicția cuvintelor și altele</translation> <translation id="1635033183663317347">Instalată de custode.</translation> +<translation id="1635885551358739414">Google poate folosi conținutul de pe site-urile pe care le accesezi, activitatea browserului și interacțiunile pentru a personaliza Chrome și alte servicii Google, precum Traducere, Căutare și anunțuri. Poți personaliza această opțiune în Setări.</translation> <translation id="1637224376458524414">Obține marcajul pe iPhone</translation> <translation id="1637765355341780467">A apărut o eroare la deschiderea profilului. Este posibil ca unele funcții să nu fie disponibile.</translation> <translation id="1639239467298939599">Se încarcă</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Parola este prea scurtă.</translation> <translation id="1661867754829461514">Codul PIN lipsește</translation> <translation id="16620462294541761">Ne pare rău, parola nu a putut fi verificată. Încercați din nou.</translation> +<translation id="1662550410081243962">Salvează și completează metodele de plată</translation> <translation id="166278006618318542">Algoritm cu cheie publică pentru subiect</translation> <translation id="166439687370499867">Nu se permite modificarea configurațiilor de rețea cu acces comun</translation> <translation id="1665611772925418501">Fișierul nu a putut fi modificat.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> dorește să vadă marca și modelul cheii de securitate</translation> <translation id="167832068858235403">reduce volumul</translation> <translation id="1679068421605151609">Instrumente pentru dezvoltatori</translation> +<translation id="1680849702532889074">A apărut o eroare în timpul instalării aplicației Linux.</translation> <translation id="16815041330799488">Nu permite site-urilor să vadă textul și imaginile copiate în clipboard</translation> <translation id="1682548588986054654">Fereastră &incognito nouă</translation> <translation id="168715261339224929">Pentru a accesa marcajele pe toate dispozitivele, activează sincronizarea.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Anulează fixarea filelor</translation> <translation id="1734824808160898225">Este posibil ca <ph name="PRODUCT_NAME" /> să nu se poată actualiza</translation> <translation id="1736419249208073774">Explorează</translation> +<translation id="1736827427463982819">Închide Linux (Beta)</translation> <translation id="1737968601308870607">Trimite o eroare</translation> <translation id="1741314857973421784">Continuă</translation> <translation id="174173592514158117">Afișează toate dosarele Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> dorește să stocheze permanent cantități mari de date pe computer</translation> <translation id="1997616988432401742">Certificatele tale</translation> <translation id="1999115740519098545">La pornire</translation> +<translation id="2000419248597011803">Trimite anumite cookie-uri și căutări din bara de adrese și din caseta de căutare în motorul de căutare prestabilit</translation> <translation id="2001796770603320721">Gestionează în Drive</translation> <translation id="2004663115385769400">Nu se poate deschide cu $1</translation> <translation id="200544492091181894">Poți modifica ulterior această opțiune în Setări</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Continuă blocarea cookie-urilor</translation> <translation id="204622017488417136">Dispozitivul va reveni la versiunea Chrome instalată anterior. Toate conturile de utilizator și datele locale vor fi eliminate. Această operațiune nu poate fi anulată.</translation> <translation id="2048182445208425546">Accesează traficul de rețea</translation> +<translation id="2048653237708779538">Acțiunea nu este disponibilă</translation> <translation id="204914487372604757">Creează o comandă rapidă</translation> <translation id="2050339315714019657">Portret</translation> <translation id="2053312383184521053">Date pentru starea inactivă</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Pluginul <ph name="PEPPER_PLUGIN_NAME" /> de pe <ph name="PEPPER_PLUGIN_DOMAIN" /> dorește să acceseze computerul</translation> <translation id="2178614541317717477">Compromitere CA</translation> <translation id="218070003709087997">Precizează un număr de exemplare pentru printare (de la 1 la 999).</translation> +<translation id="2183558561014688873">Accesează Asistentul ori de câte ori rostești „Ok Google” când dispozitivul este activ și deblocat.</translation> <translation id="2187895286714876935">Eroare de import a certificatului serverului</translation> <translation id="2187906491731510095">Extensiile au fost actualizate</translation> <translation id="2188881192257509750">Deschide <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Proces GPU</translation> <translation id="2282155092769082568">Adresa URL de autoconfigurare:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Salvează și completează adresele</translation> <translation id="2286841657746966508">Adresa de facturare</translation> <translation id="2288181517385084064">Comută la înregistrarea video</translation> <translation id="2288735659267887385">Setări de accesibilitate</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Dimensiunea totală a fișierelor</translation> <translation id="2428510569851653187">Descrie ce făceai când s-a blocat fila</translation> <translation id="2431027948063157455">Asistentul Google nu s-a putut încărca; încearcă din nou.</translation> +<translation id="2432753757290432042">Este necesară o actualizare pentru Linux (Beta)</translation> <translation id="2433452467737464329">Pentru actualizarea automată a paginii: chrome://network/?refresh=<sec>, adăugați un parametru de interogare în adresa URL</translation> <translation id="2433507940547922241">Aspect</translation> <translation id="2433836460518180625">Deblochează numai dispozitivul</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Editează amprentele</translation> <translation id="2776441542064982094">Se pare că nu există dispozitive disponibile pentru a fi înregistrate în rețea. Dacă ați pornit dispozitivul și v-ați conectat la internet, încercați să îl înregistrați urmând instrucțiunile din manualul care îl însoțește.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Eroare la instalarea aplicației Linux</translation> <translation id="2783298271312924866">Descărcat</translation> <translation id="2783321960289401138">Creează o comandă rapidă...</translation> <translation id="2783829359200813069">Selectează tipurile de criptare</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Deconectează-te și conectează-te din nou</translation> <translation id="2812989263793994277">Nu afișa nicio imagine</translation> <translation id="2814489978934728345">Oprește încărcarea acestei pagini</translation> +<translation id="281504910091592009">Vezi și gestionează parolele salvate în <ph name="BEGIN_LINK" />Contul Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Bara de marcaje</translation> <translation id="2815693974042551705">Dosar de marcaje</translation> <translation id="2818476747334107629">Detaliile imprimantei</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Afișează dispozitivele Bluetooth disponibile</translation> <translation id="2941112035454246133">Redusă</translation> <translation id="2942560570858569904">Se așteaptă...</translation> +<translation id="2942581856830209953">Personalizează această pagină</translation> <translation id="2943400156390503548">Prezentări</translation> <translation id="2943503720238418293">Folosește un nume mai scurt</translation> <translation id="2946119680249604491">Adăugați o conexiune</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Parolă:</translation> <translation id="3694027410380121301">Selectează fila anterioară</translation> <translation id="3699624789011381381">Adresă de e-mail</translation> +<translation id="3699920817649120894">Dezactivezi sincronizarea și personalizarea?</translation> <translation id="3700888195348409686">Se prezintă (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Paginile de pornire au fost modificate pentru a include <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript blocat</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Ecran complet</translation> <translation id="3828029223314399057">Căutați în marcaje</translation> <translation id="3830674330436234648">Nicio redare disponibilă</translation> +<translation id="3831436149286513437">Sugestii de căutare în Google Drive</translation> <translation id="3831486154586836914">S-a trecut în modul de prezentare a ferestrei</translation> <translation id="383161972796689579">Proprietarul acestui dispozitiv a dezactivat adăugarea de utilizatori noi</translation> <translation id="3834775135533257713">Aplicația „<ph name="TO_INSTALL_APP_NAME" />” nu a putut fi adăugată, deoarece se află în conflict cu „<ph name="INSTALLED_APP_NAME" />”.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Cea mai scăzută</translation> <translation id="3872220884670338524">Mai multe acțiuni, cont salvat pentru <ph name="USERNAME" /> pe <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Eliberează spațiu pe hard disk sau dispozitivul nu va mai răspunde la comenzi.</translation> +<translation id="3873315167136380065">Ca să activezi această opțiune, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" /> pentru a elimina expresia de acces pentru sincronizare</translation> <translation id="3878840326289104869">Se creează utilizatorul monitorizat</translation> <translation id="3879748587602334249">Manager de descărcări</translation> <translation id="3880709822663530586">Cheia de securitate funcționează numai atunci când dispozitivul are activat Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Amprentele salvate</translation> <translation id="407173827865827707">Când se dă clic</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: eroare la conectare</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certificat semnatar pentru e-mail</translation> <translation id="407520071244661467">Redimensionează</translation> <translation id="4075639477629295004">Nu se poate proiecta <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Examinează setările pe ecranul următor</translation> <translation id="4193154014135846272">Document Google</translation> <translation id="4194570336751258953">Activează funcția „atinge pentru clic”</translation> +<translation id="4195249722193633765">Instalează aplicația cu Linux (Beta)</translation> <translation id="4195643157523330669">Deschide în filă nouă</translation> <translation id="4195814663415092787">Continuați de unde ați rămas</translation> <translation id="4197674956721858839">Arhivați fișierele selectate</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Elementul 8 din raft</translation> <translation id="4287502004382794929">Nu dețineți suficiente licențe de software pentru a înscrie acest dispozitiv. Contactați departamentul de vânzări pentru a achiziționa licențe suplimentare. În cazul în care considerați că acest mesaj este afișat din greșeală, contactați serviciul de asistență.</translation> <translation id="4289540628985791613">Prezentare generală</translation> +<translation id="4295072614469448764">Aplicația este disponibilă pe terminal. Este posibil ca Lansatorul să conțină și o pictogramă.</translation> <translation id="4296575653627536209">Adaugă un utilizator monitorizat</translation> +<translation id="4297219207642690536">Repornește și resetează</translation> <translation id="4297322094678649474">Schimbă limbile</translation> <translation id="4300305918532693141">Pentru a modifica această setare, <ph name="BEGIN_LINK" />resetează sincronizarea<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">lungă (2 sec.)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Adresa de e-mail și parola pe care le-ai introdus nu se potrivesc</translation> <translation id="437184764829821926">Setări avansate pentru fonturi</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Programul de instalare Linux</translation> <translation id="4375035964737468845">Deschide fișierele descărcate</translation> <translation id="4377363674125277448">A apărut o problemă cu privire la certificatul serverului.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Asociază dispozitivul Bluetooth</translation> <translation id="4579581181964204535">Nu se poate proiecta <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Sigur vrei să ștergi $1 elemente?</translation> +<translation id="4582497162516204941">Instalează cu Linux (Beta)</translation> <translation id="4582563038311694664">Restabilește toate setările</translation> <translation id="4585793705637313973">Editează pagina</translation> <translation id="4589268276914962177">Terminal nou</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Avatar portocaliu prestabilit</translation> <translation id="4955814292505481804">Anuală</translation> <translation id="4957949153200969297">Activează numai funcțiile asociate cu Sincronizare <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Parolele sunt salvate în Contul tău Google, astfel încât să le poți folosi pe orice dispozitiv</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Dosarul pe care l-ați selectat conține fișiere cu informații delicate. Sigur doriți să permiteți accesul de citire permanent pentru „$1” la acest dosar?</translation> <translation id="4964455510556214366">Aranjare</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Setările care controlează sincronizarea, personalizarea și alte servicii Google din Chrome s-au modificat. Această acțiune poate afecta setările curente.</translation> <translation id="5241128660650683457">Citește toate datele de pe site-urile pe care le vizitezi</translation> <translation id="5242724311594467048">Activați extensia „<ph name="EXTENSION_NAME" />”?</translation> +<translation id="5243522832766285132">Încearcă din nou în câteva momente</translation> <translation id="5244474230056479698">Se sincronizează cu <ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> s-a blocat. Dă clic pe balon pentru a reporni aplicația.</translation> <translation id="5247051749037287028">Numele afișat (opțional)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Poate dura câteva minute.</translation> <translation id="5264252276333215551">Conectați-vă la internet pentru a lansa aplicația în modul chioșc.</translation> <translation id="5265562206369321422">Offline pentru mai mult de o săptămână</translation> +<translation id="5265797726250773323">Eroare la instalare</translation> <translation id="5266113311903163739">Eroare la importarea Autorității de certificare</translation> <translation id="5269977353971873915">Printarea a eșuat</translation> <translation id="5271549068863921519">Salvează parola</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatează acest dispozitiv</translation> <translation id="5292195676005197571">Pentru a folosi cheia, de obicei trebuie doar să apeși butonul</translation> <translation id="5293170712604732402">Restabilește setările la valorile inițiale</translation> +<translation id="5297082477358294722">Parola a fost salvată. Vezi și gestionează parolele salvate în <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Temă creată de</translation> <translation id="5299109548848736476">Nu urmăriți</translation> <translation id="5299682071747318445">Toate datele sunt criptate cu parola dvs. de acces pentru sincronizare</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> dorește să utilizeze locația computerului</translation> <translation id="5612734644261457353">Ne pare rău, parola dvs. tot nu a putut fi confirmată. Notă: dacă v-ați schimbat recent parola, aceasta se va aplica după ce vă deconectați. Vă rugăm să utilizați aici parola veche.</translation> <translation id="5614190747811328134">Notificare pentru utilizator</translation> +<translation id="5614553682702429503">Salvezi parola?</translation> <translation id="561698261642843490">Închide Firefox</translation> <translation id="5618075537869101857">Hopa, aplicația de tip chioșc nu a putut fi lansată.</translation> <translation id="5618333180342767515">(aceasta poate dura câteva minute)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Limba paginii:</translation> <translation id="5677928146339483299">Blocat</translation> <translation id="5678550637669481956">A fost acordat accesul de citire și scriere la <ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">Aplicația Linux va fi disponibilă pe terminal și este posibil ca Lansatorul să afișeze și o pictogramă.</translation> <translation id="5678955352098267522">Citește datele de pe <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identificator articol</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Nu se poate deconecta de la o arhivă sau un disc virtual<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Adăugați un utilizator</translation> <translation id="583281660410589416">Necunoscut</translation> <translation id="5832976493438355584">Blocat</translation> +<translation id="5833397272224757657">Folosește conținutul de pe site-urile pe care le accesezi, activitatea browserului și interacțiunile pentru personalizare</translation> <translation id="5833610766403489739">Fișierul nu poate fi găsit. Verificați setarea locației de descărcare și încercați din nou.</translation> <translation id="5833726373896279253">Aceste setări pot fi modificate numai de proprietar:</translation> <translation id="5834581999798853053">Au mai rămas aproape <ph name="TIME" /> min.</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Nu permite site-urilor să ruleze Flash</translation> <translation id="5910363049092958439">Sal&vează imaginea ca...</translation> <translation id="5911737117543891828">Fișierele offline temporare din Google Drive vor fi șterse. Fișierele pe care le-ai făcut disponibile offline nu vor fi șterse de pe acest dispozitiv.</translation> +<translation id="5911887972742538906">A apărut o eroare în timpul instalării aplicației Linux.</translation> <translation id="5912378097832178659">&Editează motoarele de căutare...</translation> <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> (de) biți): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Deconectați-vă, apoi conectați-vă din nou...</translation> <translation id="6198252989419008588">Schimbă codul PIN</translation> <translation id="6199801702437275229">Se așteaptă informațiile despre spațiu...</translation> +<translation id="6201792273624501289">Aplicații Linux</translation> <translation id="6204015976622790023">Vezi sugestiile relevante de la Asistent în legătură cu conținutul de pe ecran.</translation> <translation id="6205710420833115353">Unele operațiuni durează mai mult decât ar trebui. Dorești să le anulezi?</translation> <translation id="6206311232642889873">Cop&iază imaginea</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Selectează</translation> <translation id="694592694773692225">Redirecționarea a fost blocată pe această pagină.</translation> <translation id="6949306908218145636">Marcați paginile deschise...</translation> +<translation id="6950627417367801484">Restabilește aplicațiile</translation> <translation id="6951153907720526401">Handlere pentru plăți</translation> <translation id="6955446738988643816">Fereastră pop-up de inspectare</translation> <translation id="6957231940976260713">Nume serviciu</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Istoricul descărcărilor</translation> <translation id="7131040479572660648">Citește datele de pe <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> și <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Adăugați pa&gina...</translation> +<translation id="7133578150266914903">Administratorul îți resetează acest dispozitiv (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Micșorează textul</translation> <translation id="7136694880210472378">Setează ca prestabilit</translation> <translation id="7136984461011502314">Bun venit la <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Adăugați o persoană</translation> <translation id="7464490149090366184">Arhivarea nu a reușit, elementul există: „$1”</translation> <translation id="7465778193084373987">Adresă URL de revocare a certificatului Netscape</translation> +<translation id="7469406957790636836">Pentru a activa această opțiune, activează mai întâi verificarea ortografiei în <ph name="BEGIN_LINK" />Limbi și mod de introducere<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Conectează-te automat la această rețea</translation> <translation id="747114903913869239">Eroare: extensia nu poate fi decodificată</translation> <translation id="7473753388963818366">Hai să-ți pregătim dispozitivul <ph name="DEVICE_TYPE" /></translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Autorități</translation> <translation id="7607002721634913082">Întreruptă</translation> <translation id="7607274158153386860">Solicitați site-ul pentru tablete</translation> +<translation id="7609148976235050828">Conectează-te la internet și încearcă din nou.</translation> <translation id="7611008212562900400">Caută pe dispozitiv, în aplicații, pe web...</translation> <translation id="7616214729753637086">Se înregistrează dispozitivul...</translation> <translation id="7617366389578322136">Se conectează la „<ph name="DEVICE_NAME" />”</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Capturează conținutul ecranului</translation> <translation id="7730494089396812859">Afișează detaliile pentru backupul în cloud</translation> <translation id="7732111077498238432">Rețeaua este controlată de politică</translation> +<translation id="7737238973539693982">Șterge Linux (Beta)</translation> <translation id="773905249182896430">Protecție împotriva site-urilor periculoase</translation> <translation id="7740996059027112821">Standard</translation> <translation id="7748528009589593815">Fila anterioară</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Suprascanare</translation> <translation id="7977551819349545646">Se actualizează Chromeboxul...</translation> <translation id="7978412674231730200">Cheie privată</translation> +<translation id="7978450511781612192">Astfel, te vei deconecta de la Conturile Google. Marcajele, istoricul, parolele și alte setări nu vor mai fi sincronizate.</translation> <translation id="7979036127916589816">Eroare de sincronizare</translation> <translation id="7980084013673500153">ID articol: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Preîncarcă paginile pentru navigare și căutare mai rapide</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Coadă</translation> <translation id="8226742006292257240">Mai jos se află parola TPM generată aleatoriu, care a fost atribuită computerului tău:</translation> <translation id="8227119283605456246">Atașează un fișier</translation> +<translation id="8230134520748321204">Salvezi parola pentru <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Ajută-i pe inginerii noștri să remedieze această problemă. Spune-ne ce s-a întâmplat chiar înainte să primești mesajul de eroare privind profilul:</translation> <translation id="8234989666557591529">Alege un telefon pentru a debloca dispozitivul <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Sincronizează ca <ph name="FULL_NAME" /></translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">Comută la un browser inteligent</translation> <translation id="8438566539970814960">Îmbunătățește căutările și navigarea</translation> <translation id="8439506636278576865">Oferă-te să traduci paginile în această limbă</translation> +<translation id="8440630305826533614">Aplicații Linux</translation> <translation id="8446884382197647889">Află mai multe</translation> <translation id="8447409163267621480">Include Ctrl sau Alt</translation> <translation id="8448729345478502352">Micșorează sau mărește elementele de pe ecran</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Utilitare Windows</translation> <translation id="8498214519255567734">Mai multă comoditate când privești ecranul sau citești într-o lumină slabă</translation> <translation id="8498395510292172881">Continuă să citești în Chrome</translation> +<translation id="8502536196501630039">Ca să folosești aplicații din Google Play, trebuie mai întâi să restabilești aplicațiile. Este posibil ca unele date să se fi pierdut.</translation> <translation id="8503813439785031346">Nume utilizator</translation> <translation id="850875081535031620">Nu s-a găsit software dăunător</translation> <translation id="8509646642152301857">Descărcarea dicționarului de verificare ortografică nu a reușit.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Desen Google</translation> <translation id="869884720829132584">Meniul aplicațiilor</translation> <translation id="869891660844655955">Dată de expirare</translation> +<translation id="8699566574894671540">Pentru a activa această opțiune, selectează mai întâi Verifică ortografia în timp ce se introduce text în meniul Editare</translation> <translation id="870073306461175568">Dispozitive de stocare în rețea</translation> <translation id="8701677791353449257">Numele dispozitivului trebuie să corespundă expresiei regulate <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Acțiunea durează mult mai mult decât de obicei. Puteți aștepta în continuare sau puteți anula și încerca din nou mai târziu.</translation> @@ -5024,6 +5066,7 @@ <p>Poți totuși să configurezi prin linia de comandă. Accesează <code>man <ph name="PRODUCT_BINARY_NAME" /></code> pentru mai multe informații despre semnalizatori și variabile de mediu.</p></translation> <translation id="8755376271068075440">&Mai mare</translation> +<translation id="8756969031206844760">Actualizezi parola?</translation> <translation id="8757090071857742562">Desktopul nu poate fi proiectat. Verifică dacă ai confirmat solicitarea de a începe permiterea accesului la ecran.</translation> <translation id="8757640015637159332">Accesați sesiunea publică</translation> <translation id="8757742102600829832">Alege un Chromebox la care să te conectezi</translation> @@ -5180,7 +5223,9 @@ <translation id="9009369504041480176">Se încarcă (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Afișează întotdeauna pictograma</translation> <translation id="9011178328451474963">Ultima filă</translation> +<translation id="9013707997379828817">Administratorul a resetat acest dispozitiv. Salvează fișierele importante, apoi repornește-l. Toate datele de pe dispozitiv vor fi șterse.</translation> <translation id="9014987600015527693">Vezi alt telefon</translation> +<translation id="9018218886431812662">Instalare finalizată</translation> <translation id="901834265349196618">e-mail</translation> <translation id="9019062154811256702">Citește și modifică setările pentru completarea automată</translation> <translation id="9020362265352758658">4x</translation> @@ -5204,6 +5249,7 @@ <translation id="9038649477754266430">Folosește un serviciu de predicții pentru a încărca paginile mai rapid</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Dezactivează sunetul filelor</translation> +<translation id="9040661932550800571">Actualizezi parola pentru <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Accesul la fișierele de pe computer este dezactivat de administrator</translation> <translation id="9042893549633094279">Confidențialitate și securitate</translation> <translation id="904451693890288097">Introduceți codul PIN pentru „<ph name="DEVICE_NAME" />":</translation> @@ -5308,6 +5354,7 @@ <translation id="9203478404496196495">Activează sunetul filei</translation> <translation id="9203904171912129171">Selectează un dispozitiv</translation> <translation id="9203962528777363226">Administratorul acestui dispozitiv a dezactivat adăugarea de utilizatori noi</translation> +<translation id="9213073329713032541">Instalarea a început.</translation> <translation id="9214520840402538427">Hopa! Inițializarea atributelor necesare în momentul instalării a expirat. Contactați reprezentantul dvs. de asistență.</translation> <translation id="9214695392875603905">Brioșă</translation> <translation id="9215293857209265904">S-a adăugat „<ph name="EXTENSION_NAME" />”</translation> @@ -5362,6 +5409,7 @@ <translation id="988978206646512040">Trebuie să fie introdusă expresia de acces</translation> <translation id="992032470292211616">Extensiile, aplicațiile și temele pot dăuna dispozitivului. Sigur doriți să continuați?</translation> <translation id="992592832486024913">Dezactivați ChromeVox (feedback rostit)</translation> +<translation id="993540765962421562">Instalare în curs</translation> <translation id="994289308992179865">&Redă în buclă</translation> <translation id="996250603853062861">Se stabilește conexiunea securizată...</translation> <translation id="998747458861718449">I&nspectează</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb index d2efabe3..80007d23 100644 --- a/chrome/app/resources/generated_resources_sk.xtb +++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Prebieha vyhľadávanie...</translation> <translation id="1316495628809031177">Synchronizácia je pozastavená</translation> <translation id="1319979322914001937">Aplikácia, ktorá zobrazuje filtrovaný zoznam rozšírení z Internetového obchodu Chrome. Rozšírenia z tohto zoznamu sa dajú nainštalovať priamo z aplikácie.</translation> +<translation id="1322046419516468189">Uložené heslá si môžete zobraziť a spravovať v časti <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Ak chcete získať karty z ďalších svojich zariadení, prihláste sa do Chromu.</translation> <translation id="1327074568633507428">Tlačiareň v službe Google Cloud Print</translation> <translation id="1327977588028644528">Brána</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Centrum pomoci</translation> <translation id="162035744160882748">Zapnutie synchronizácie, prispôsobenia a ďalších služieb Googlu</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Obrázky sú momentálne nedostupné. Ak chcete zobraziť zbierky tapiet, pripojte sa znova k internetu.</translation> <translation id="1624026626836496796">Túto akciu musíte vykonať iba raz a vaše prihlasovacie údaje sa neuložia.</translation> <translation id="1627276047960621195">Deskriptory súborov</translation> <translation id="1627408615528139100">Už je stiahnutý</translation> <translation id="1632803087685957583">Umožňuje nastaviť rýchlosť opakovania klávesnice, predpoveď ďalšieho slova a ďalšie</translation> <translation id="1635033183663317347">Nainštalované vaším opatrovníkom</translation> +<translation id="1635885551358739414">Google môže použiť obsah na weboch, ktoré navštívite, aktivitu prehliadača a interakcie na prispôsobenie Chromu a ďalších služieb Googlu, ako sú Prekladač, Vyhľadávanie a reklamy. Túto voľbu môžete prispôsobiť v Nastaveniach.</translation> <translation id="1637224376458524414">Uložte si túto záložku do zariadenia iPhone</translation> <translation id="1637765355341780467">Pri pokuse o otvorenie profilu sa vyskytla chyba. Niektoré funkcie nemusia byť k dispozícii.</translation> <translation id="1639239467298939599">Prebieha načítavanie</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Heslo je príliš krátke.</translation> <translation id="1661867754829461514">Chýba kód PIN</translation> <translation id="16620462294541761">Vaše heslo sa nepodarilo overiť. Skúste to znova.</translation> +<translation id="1662550410081243962">Ukladať a dopĺňať spôsoby platby</translation> <translation id="166278006618318542">Algoritmus verejného kľúča subjektu</translation> <translation id="166439687370499867">Zmena konfigurácií zdieľanej siete nie je povolená</translation> <translation id="1665611772925418501">Súbor sa nepodarilo upraviť.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> chce zistiť model a značku vášho bezpečnostného kľúča</translation> <translation id="167832068858235403">znížiť hlasitosť</translation> <translation id="1679068421605151609">Nástroje pre vývojárov</translation> +<translation id="1680849702532889074">Počas inštalácie aplikácie Linux sa vyskytla chyba.</translation> <translation id="16815041330799488">Nepovoliť webom prístup k textu a obrázkom skopírovaným do schránky</translation> <translation id="1682548588986054654">Nové okno inkognito</translation> <translation id="168715261339224929">Ak chcete získať záložky vo všetkých zariadeniach, zapnite synchronizáciu.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Odopnúť karty</translation> <translation id="1734824808160898225">Prehliadač <ph name="PRODUCT_NAME" /> sa sám nemusí pravidelne aktualizovať</translation> <translation id="1736419249208073774">Preskúmať</translation> +<translation id="1736827427463982819">Vypnúť Linux (beta)</translation> <translation id="1737968601308870607">Nahlásiť chybu</translation> <translation id="1741314857973421784">Ďalej</translation> <translation id="174173592514158117">Zobraziť všetky priečinky Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> chce natrvalo ukladať veľké množstvo dát vo vašom počítači</translation> <translation id="1997616988432401742">Vaše certifikáty</translation> <translation id="1999115740519098545">Pri spustení</translation> +<translation id="2000419248597011803">Odošle niektoré súbory cookie a vyhľadávania z panela s adresou a vyhľadávacieho poľa do vášho predvoleného vyhľadávača</translation> <translation id="2001796770603320721">Spravovať na Disku</translation> <translation id="2004663115385769400">Nedá sa otvoriť pomocou aplikácie $1</translation> <translation id="200544492091181894">Svoju voľbu môžete kedykoľvek neskôr zmeniť v nastaveniach</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Pokračovať v blokovaní súborov cookie</translation> <translation id="204622017488417136">Na vašom zariadení sa obnoví predchádzajúca nainštalovaná verzia prehliadača Chrome. Všetky používateľské účty a miestne údaje budú odstránené. Túto akciu nie je možné vrátiť späť.</translation> <translation id="2048182445208425546">Prístup k sieťovej premávke</translation> +<translation id="2048653237708779538">Akcia nie je k dispozícii</translation> <translation id="204914487372604757">Vytvoriť odkaz</translation> <translation id="2050339315714019657">Na výšku</translation> <translation id="2053312383184521053">Údaje stavu nečinnosti</translation> @@ -784,6 +792,7 @@ <translation id="2178098616815594724"><ph name="PEPPER_PLUGIN_NAME" /> na webe <ph name="PEPPER_PLUGIN_DOMAIN" /> chce získať prístup k vášmu počítaču</translation> <translation id="2178614541317717477">Ohrozenie zabezpečenia CA</translation> <translation id="218070003709087997">Zadanie počtu kópií, ktoré chcete vytlačiť, treba zadať číslovkou (1 až 999).</translation> +<translation id="2183558561014688873">Keď je zariadenie aktívne a odomknuté, Asistenta môžete kedykoľvek aktivovať vyslovením výrazu „Ok Google“.</translation> <translation id="2187895286714876935">Chyba importovania certifikátu servera</translation> <translation id="2187906491731510095">Rozšírenia boli aktualizované</translation> <translation id="2188881192257509750">Otvoriť <ph name="APPLICATION" /></translation> @@ -855,6 +864,7 @@ <translation id="2282146716419988068">Proces GPU</translation> <translation id="2282155092769082568">Webová adresa automatickej konfigurácie</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Ukladať a dopĺňať adresy</translation> <translation id="2286841657746966508">Fakturačná adresa</translation> <translation id="2288181517385084064">Prepnúť na videorekordér</translation> <translation id="2288735659267887385">Nastavenia dostupnosti</translation> @@ -936,6 +946,7 @@ <translation id="2425665904502185219">Celková veľkosť súboru</translation> <translation id="2428510569851653187">Opíšte, čo ste robili, keď karta zlyhala</translation> <translation id="2431027948063157455">Asistent Google sa nenačítal. Skontrolujte sieťové pripojenie a skúste to znova.</translation> +<translation id="2432753757290432042">Vyžaduje sa aktualizácia systému Linux (beta)</translation> <translation id="2433452467737464329">Pridajte parameter dopytu do webovej adresy na automatické obnovenie stránky: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Vzhľad</translation> <translation id="2433836460518180625">Iba odomknúť zariadenie</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Upraviť odtlačky prstov</translation> <translation id="2776441542064982094">Zdá sa, že v sieti nie sú žiadne zariadenia dostupné na registráciu. Ak je zariadenie zapnuté a pripojené k internetu, skúste ho zaregistrovať podľa pokynov v tejto príručke.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Pri inštalácii aplikácie pre Linux sa vyskytla chyba</translation> <translation id="2783298271312924866">Stiahnuté</translation> <translation id="2783321960289401138">Vytvoriť odkaz...</translation> <translation id="2783829359200813069">Vyberte typy šifrovania</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Skúste sa odhlásiť a znovu prihlásiť</translation> <translation id="2812989263793994277">Nezobraziť žiadne obrázky</translation> <translation id="2814489978934728345">Zastaviť otváranie tejto stránky</translation> +<translation id="281504910091592009">Zobrazenie a správa uložených hesiel v <ph name="BEGIN_LINK" />účte Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Panel so záložkami</translation> <translation id="2815693974042551705">Priečinok so záložkami</translation> <translation id="2818476747334107629">Podrobnosti tlačiarne</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Zobraziť dostupné zariadenia Bluetooth</translation> <translation id="2941112035454246133">Nízka</translation> <translation id="2942560570858569904">Čaká sa...</translation> +<translation id="2942581856830209953">Prispôsobiť túto stránku</translation> <translation id="2943400156390503548">Prezentácie</translation> <translation id="2943503720238418293">Použite kratší názov</translation> <translation id="2946119680249604491">Pridať pripojenie</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Heslo:</translation> <translation id="3694027410380121301">Vybrať predchádzajúcu kartu</translation> <translation id="3699624789011381381">E-mailová adresa</translation> +<translation id="3699920817649120894">Vypnúť synchronizáciu a prispôsobenie?</translation> <translation id="3700888195348409686">Prebieha prezentácia (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Vaše stránky pri spustení boli zmenené tak, aby zahŕňali webovú adresu <ph name="URL" />.</translation> <translation id="370415077757856453">Bol zablokovaný JavaScript</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Celá obrazovka</translation> <translation id="3828029223314399057">Prehľadať záložky</translation> <translation id="3830674330436234648">Prehrávanie nie je k dispozícii</translation> +<translation id="3831436149286513437">Návrhy vyhľadávania z Disku Google</translation> <translation id="3831486154586836914">Vstúpili ste do režimu prehľadu okien</translation> <translation id="383161972796689579">Vlastník tohto zariadenia zakázal pridávanie nových používateľov</translation> <translation id="3834775135533257713">Aplikáciu <ph name="TO_INSTALL_APP_NAME" /> sa nepodarilo pridať, pretože je v konflikte s aplikáciou <ph name="INSTALLED_APP_NAME" />.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Najnižší</translation> <translation id="3872220884670338524">Ďalšie akcie, uložený účet <ph name="USERNAME" /> v doméne <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Uvoľnite miesto na disku, inak vaše zariadenie prestane reagovať.</translation> +<translation id="3873315167136380065">Zapnite toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" /> a odstráňte tak prístupovú frázu synchronizácie</translation> <translation id="3878840326289104869">Prebieha vytváranie kontrolovaného používateľa</translation> <translation id="3879748587602334249">Správca sťahovania</translation> <translation id="3880709822663530586">Bezpečnostný kľúč funguje iba vtedy, keď je v zariadení zapnuté rozhranie Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Uložené odtlačky prstov</translation> <translation id="407173827865827707">Po kliknutí</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: chyba prihlásenia</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Certifikát podpisovateľa e-mailu</translation> <translation id="407520071244661467">Prispôsobiť veľkosť</translation> <translation id="4075639477629295004">Nie je možné prenášať súbor <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Skontrolujte nastavenia na ďalšej obrazovke</translation> <translation id="4193154014135846272">Dokument Google</translation> <translation id="4194570336751258953">Povoliť kliknutie klepnutím</translation> +<translation id="4195249722193633765">Inštalácia aplikácie pomocou systému Linux (beta)</translation> <translation id="4195643157523330669">Otvoriť na novej karte</translation> <translation id="4195814663415092787">Pokračovať tam, kde ste prestali</translation> <translation id="4197674956721858839">Výber súborov na komprimovanie</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">8. položka na poličke</translation> <translation id="4287502004382794929">Nemáte dostatočný počet softvérových licencií na registráciu tohto zariadenia. Kontaktujte obchodné oddelenie a kúpte si ďalšie. Ak sa domnievate, že ide o chybu, kontaktujte podporu.</translation> <translation id="4289540628985791613">Prehľad</translation> +<translation id="4295072614469448764">Aplikácia je k dispozícii v termináli. V spúšťači sa môže tiež objaviť jej ikona.</translation> <translation id="4296575653627536209">Pridať kontrolovaného používateľa</translation> +<translation id="4297219207642690536">Reštartovať a resetovať</translation> <translation id="4297322094678649474">Zmeniť jazyky</translation> <translation id="4300305918532693141">Ak chcete zmeniť toto nastavenie, <ph name="BEGIN_LINK" />resetujte synchronizáciu<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">dlhé (2 s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Zadaný e-mail a heslo nesúhlasia.</translation> <translation id="437184764829821926">Rozšírené nastavenia písma</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Inštalátor systému Linux</translation> <translation id="4375035964737468845">Otvárať stiahnuté súbory</translation> <translation id="4377363674125277448">Vyskytol sa problém s certifikátom servera.</translation> <translation id="4378154925671717803">Telefón</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Párovanie zariadenia Bluetooth</translation> <translation id="4579581181964204535">Nie je možné prenášať hostiteľskú službu <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Naozaj chcete odstrániť položky ($1)?</translation> +<translation id="4582497162516204941">Nainštalovať pomocou systému Linux (beta)</translation> <translation id="4582563038311694664">Resetovať všetky nastavenia</translation> <translation id="4585793705637313973">Úprava stránky</translation> <translation id="4589268276914962177">Nový terminál</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Predvolený oranžový avatar</translation> <translation id="4955814292505481804">Ročná</translation> <translation id="4957949153200969297">Povolenie iba tých funkcií, ktoré súvisia so synchronizáciou prehliadača <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Heslá sa ukladajú do účtu Google, takže ich môžete používať v ľubovoľnom zariadení</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Vybratý priečinok obsahuje citlivé súbory. Naozaj chcete aplikácii $1 povoliť trvalý prístup na čítanie pre tento priečinok?</translation> <translation id="4964455510556214366">Usporiadanie</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Nastavenia, ktoré riadia synchronizáciu, prispôsobenie a ďalšie služby v Chrome, boli zmenené. Môže to ovplyvniť vaše aktuálne nastavenia.</translation> <translation id="5241128660650683457">Čítať všetky vaše údaje na weboch, ktoré navštevujete</translation> <translation id="5242724311594467048">Povoliť rozšírenie <ph name="EXTENSION_NAME" />?</translation> +<translation id="5243522832766285132">Skúste to znova o chvíľu</translation> <translation id="5244474230056479698">Synchronizácia do účtu <ph name="EMAIL" /></translation> <translation id="5246282308050205996"><ph name="APP_NAME" /> zlyhala. Aplikáciu reštartujte kliknutím na túto bublinu.</translation> <translation id="5247051749037287028">Zobrazovaný názov (voliteľné)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Môže to chvíľu trvať.</translation> <translation id="5264252276333215551">Ak chcete aplikáciu spustiť v režime verejného terminálu, pripojte sa k internetu.</translation> <translation id="5265562206369321422">Offline viac ako týždeň</translation> +<translation id="5265797726250773323">Pri inštalácii sa vyskytla chyba</translation> <translation id="5266113311903163739">Chyba importovania certifikačnej autority</translation> <translation id="5269977353971873915">Zlyhanie tlače</translation> <translation id="5271549068863921519">Uložiť heslo</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formátovať toto zariadenie</translation> <translation id="5292195676005197571">Väčšinu kľúčov môžete použiť pomocou tlačidla</translation> <translation id="5293170712604732402">Obnovenie pôvodných predvolených nastavení</translation> +<translation id="5297082477358294722">Heslo bolo uložené. Uložené heslá si môžete zobraziť a spravovať v časti <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Autor motívu:</translation> <translation id="5299109548848736476">Nesledovať</translation> <translation id="5299682071747318445">Všetky údaje sú šifrované pomocou vlastnej prístupovej frázy pre synchronizáciu</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> chce použiť polohu vášho počítača</translation> <translation id="5612734644261457353">Je nám ľúto, stále sa nedarí overiť vaše heslo. Poznámka: Ak ste nedávno zmenili heslo, vaše nové heslo bude použité až po odhlásení. Použite svoje staré heslo.</translation> <translation id="5614190747811328134">Oznámenie pre používateľa</translation> +<translation id="5614553682702429503">Uložiť heslo?</translation> <translation id="561698261642843490">Zatvorenie prehliadača Firefox</translation> <translation id="5618075537869101857">Hops, aplikáciu pre režim kiosku sa nepodarilo spustiť.</translation> <translation id="5618333180342767515">(môže to trvať niekoľko minút)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Jazyk stránky:</translation> <translation id="5677928146339483299">Zablokované</translation> <translation id="5678550637669481956">Bol udelený prístup k médiu <ph name="VOLUME_NAME" /> s povolením čítať a zapisovať.</translation> +<translation id="5678784840044122290">Aplikácia Linux bude k dispozícii v termináli a jej ikona sa môže tiež zobraziť v spúšťači.</translation> <translation id="5678955352098267522">Čítať vaše údaje na: <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Identifikátor obsahu</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Nedá sa odpojiť od archívu či virtuálneho disku<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Pridať osobu</translation> <translation id="583281660410589416">Neznáme</translation> <translation id="5832976493438355584">Uzamknuté</translation> +<translation id="5833397272224757657">Používa obsah z navštívených webov, aktivitu prehliadača a interakcie s ním na prispôsobenie</translation> <translation id="5833610766403489739">Umiestnenie tohto súboru sa zmenilo. Skontrolujte nastavenie umiestnenia pre sťahované súbory a skúste to znova.</translation> <translation id="5833726373896279253">Tieto nastavenia môže upraviť len vlastník:</translation> <translation id="5834581999798853053">Zostáva približne <ph name="TIME" /> min.</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Blokovať na weboch spúšťanie obsahu vo formáte Flash</translation> <translation id="5910363049092958439">Uložiť &obrázok ako...</translation> <translation id="5911737117543891828">Dočasné súbory offline na Disku Google budú odstránené. Súbory, v prípade ktorých ste nastavili dostupnosť v režime offline, sa z tohto zariadenia neodstránia.</translation> +<translation id="5911887972742538906">Pri inštalácii aplikácie pre Linux sa vyskytla chyba.</translation> <translation id="5912378097832178659">Spravovať vyhľadávače…</translation> <translation id="5914724413750400082">Modul (<ph name="MODULUS_NUM_BITS" /> bitov): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Odhláste sa a potom sa znova prihláste...</translation> <translation id="6198252989419008588">Zmeniť PIN</translation> <translation id="6199801702437275229">Čaká sa na informácie o voľnom mieste...</translation> +<translation id="6201792273624501289">Aplikácie pre Linux</translation> <translation id="6204015976622790023">Zobrazte si relevantné návrhy Asistenta súvisiace s obsahom na obrazovke</translation> <translation id="6205710420833115353">Niektoré operácie trvajú dlhšie, ako sa očakávalo. Chcete ich zrušiť?</translation> <translation id="6206311232642889873">&Kopírovať obrázok</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Vybrať</translation> <translation id="694592694773692225">Presmerovanie bolo zablokované na tejto stránke.</translation> <translation id="6949306908218145636">Pridať otvorené stránky medzi záložky...</translation> +<translation id="6950627417367801484">Obnoviť aplikácie</translation> <translation id="6951153907720526401">Obslužné nástroje platieb</translation> <translation id="6955446738988643816">Preskúmať kontextové okná</translation> <translation id="6957231940976260713">Názov služby</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">História sťahovania</translation> <translation id="7131040479572660648">Čítať vaše údaje na weboch <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> a <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Pridať strán&ku...</translation> +<translation id="7133578150266914903">Správca obnovuje toto zariadenie (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Zmenšiť text</translation> <translation id="7136694880210472378">Nastaviť ako predvolený</translation> <translation id="7136984461011502314">Vitajte v aplikácii <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Pridať osobu</translation> <translation id="7464490149090366184">Komprimovanie zlyhalo, položka existuje: $1</translation> <translation id="7465778193084373987">Netscape – webová adresa pre zrušenie certifikátu</translation> +<translation id="7469406957790636836">Ak chcete túto funkciu zapnúť, najprv v časti <ph name="BEGIN_LINK" />Jazyky a vstup<ph name="END_LINK" /> zapnite kontrolu pravopisu</translation> <translation id="7469894403370665791">Automaticky sa pripojiť k tejto sieti</translation> <translation id="747114903913869239">Chyba: Nepodarilo sa dekódovať rozšírenie</translation> <translation id="7473753388963818366">Príprava zariadenia <ph name="DEVICE_TYPE" /></translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Autority</translation> <translation id="7607002721634913082">Pozastavené</translation> <translation id="7607274158153386860">Vyžiadať verziu stránok pre tablety</translation> +<translation id="7609148976235050828">Pripojte sa k internetu a skúste to znova.</translation> <translation id="7611008212562900400">Vyhľadávajte v zariadení, aplikáciách a na webe...</translation> <translation id="7616214729753637086">Zariadenie sa registruje...</translation> <translation id="7617366389578322136">Pripája sa k zariadeniu „<ph name="DEVICE_NAME" />“</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Zachytiť obsah obrazovky</translation> <translation id="7730494089396812859">Zobraziť podrobnosti zálohy v cloude</translation> <translation id="7732111077498238432">Sieť je riadená pravidlami</translation> +<translation id="7737238973539693982">Odstrániť Linux (beta)</translation> <translation id="773905249182896430">Chráni vás aj vaše zariadenie pred nebezpečnými webmi</translation> <translation id="7740996059027112821">Štandardne</translation> <translation id="7748528009589593815">Predchádzajúca karta</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Presah obsahu</translation> <translation id="7977551819349545646">Zariadenie Chromebox sa aktualizuje...</translation> <translation id="7978412674231730200">Súkromný kľúč</translation> +<translation id="7978450511781612192">Táto možnosť vás odhlási z účtov Google. Záložky, história, heslá a ďalší obsah sa prestanú synchronizovať.</translation> <translation id="7979036127916589816">Chyba synchronizácie</translation> <translation id="7980084013673500153">ID prvku: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Vopred načítavať stránky na zrýchlenie prehliadania a vyhľadávania</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Poradie</translation> <translation id="8226742006292257240">Nižšie je uvedené náhodne vygenerované heslo modulu TPM, ktoré bolo priradené k vášmu počítaču:</translation> <translation id="8227119283605456246">Pripojiť súbor</translation> +<translation id="8230134520748321204">Uložiť heslo pre adresu <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pomôžte našim programátorom vyriešiť tento problém. Povedzte nám, čo sa stalo presne predtým, než sa zobrazilo chybové hlásenie profilu:</translation> <translation id="8234989666557591529">Vyberte telefón, ktorým chcete odomknúť zariadenie <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Synchronizovať ako profil <ph name="FULL_NAME" /></translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">Prepnite na inteligentný prehliadač</translation> <translation id="8438566539970814960">Zlepšovať vyhľadávania a prehliadanie</translation> <translation id="8439506636278576865">Ponúkať preklady stránok v tomto jazyku</translation> +<translation id="8440630305826533614">Aplikácie pre Linux</translation> <translation id="8446884382197647889">Ďalšie informácie</translation> <translation id="8447409163267621480">Použite buď Ctrl, alebo Alt</translation> <translation id="8448729345478502352">Zväčšte alebo zmenšite položky na obrazovke</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Nástroje systému Windows</translation> <translation id="8498214519255567734">Obrazovka bude pri tlmenom osvetlení menej rušivá aj čitateľnejšia</translation> <translation id="8498395510292172881">Pokračovať v čítaní v Chrome</translation> +<translation id="8502536196501630039">Ak chcete používať aplikácie zo služby Google Play, najprv musíte obnoviť svoje aplikácie. Mohlo dôjsť k strate niektorých dát.</translation> <translation id="8503813439785031346">Meno používateľa</translation> <translation id="850875081535031620">Nenašiel sa žiadny škodlivý softvér</translation> <translation id="8509646642152301857">Sťahovanie slovníka na kontrolu pravopisu zlyhalo.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Nákres Google</translation> <translation id="869884720829132584">Ponuka Aplikácie</translation> <translation id="869891660844655955">Koniec platnosti</translation> +<translation id="8699566574894671540">Ak chcete túto funkciu zapnúť, najprv v ponuke Upraviť vyberte možnosť Kontrolovať pravopis počas písania</translation> <translation id="870073306461175568">Zdieľanie súborov v sieti</translation> <translation id="8701677791353449257">Názov zariadenia musí zodpovedať regulárnemu výrazu <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Táto akcia trvá dlhšie ako obvykle. Môžete počkať alebo ju zrušiť a skúsiť to znova neskôr.</translation> @@ -5024,6 +5066,7 @@ <p>Stále však môžete nastavenia nakonfigurovať pomocou príkazového riadka. Ďalšie informácie o príznakoch a premenných prostredia nájdete v príručke <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">&Väčší</translation> +<translation id="8756969031206844760">Aktualizovať heslo?</translation> <translation id="8757090071857742562">Plochu sa nepodarilo prenášať. Skontrolujte, či ste potvrdili výzvu na zdieľanie obrazovky.</translation> <translation id="8757640015637159332">Vstúpiť do verejnej relácie</translation> <translation id="8757742102600829832">Výber zariadenia Chromebox, ku ktorému sa chcete pripojiť</translation> @@ -5180,7 +5223,9 @@ <translation id="9009369504041480176">Nahrávanie (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Vždy zobrazovať ikonu</translation> <translation id="9011178328451474963">Posledná karta</translation> +<translation id="9013707997379828817">Správca obnovil toto zariadenie. Uložte si dôležité súbory a potom zariadenie reštartujte. Zo zariadenia sa odstránia všetky dáta.</translation> <translation id="9014987600015527693">Zobraziť ďalší telefón</translation> +<translation id="9018218886431812662">Inštalácia bola dokončená</translation> <translation id="901834265349196618">e-mail</translation> <translation id="9019062154811256702">Čítať a meniť nastavenia automatického dopĺňania</translation> <translation id="9020362265352758658">4x</translation> @@ -5204,6 +5249,7 @@ <translation id="9038649477754266430">Používať službu predpovedí na rýchlejšie načítanie stránok</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Stlmiť karty</translation> +<translation id="9040661932550800571">Aktualizovať heslo pre adresu <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Prístup k miestnym súborom vo vašom počítači zakázal správca</translation> <translation id="9042893549633094279">Ochrana súkromia a zabezpečenie</translation> <translation id="904451693890288097">Zadajte prístupový kľúč pre zariadenie „<ph name="DEVICE_NAME" />“:</translation> @@ -5308,6 +5354,7 @@ <translation id="9203478404496196495">Obnoviť zvuk karty</translation> <translation id="9203904171912129171">Výber zariadenia</translation> <translation id="9203962528777363226">Správca tohto zariadenia zakázal pridávanie nových používateľov</translation> +<translation id="9213073329713032541">Inštalácia bola úspešne spustená.</translation> <translation id="9214520840402538427">Ojoj! Časový limit pre inicializáciu atribútov času inštalácie uplynul. Kontaktujte zástupcu podpory.</translation> <translation id="9214695392875603905">Koláčik</translation> <translation id="9215293857209265904">Položka „<ph name="EXTENSION_NAME" />“ bola pridaná</translation> @@ -5362,6 +5409,7 @@ <translation id="988978206646512040">Prístupová fráza nemôže byť prázdna</translation> <translation id="992032470292211616">Rozšírenia, aplikácie a motívy môžu poškodiť vaše zariadenie. Naozaj chcete pokračovať?</translation> <translation id="992592832486024913">Zakázať funkciu ChromeVox (hlasovú spätnú väzbu)</translation> +<translation id="993540765962421562">Inštaluje sa</translation> <translation id="994289308992179865">Opa&kovať</translation> <translation id="996250603853062861">Prebieha nadväzovanie zabezpečeného spojenia...</translation> <translation id="998747458861718449">P&reskúmať</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb index 91c16ef..c061c2ac 100644 --- a/chrome/app/resources/generated_resources_sl.xtb +++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Iskanje ...</translation> <translation id="1316495628809031177">Sinhronizacija je zaustavljena</translation> <translation id="1319979322914001937">Aplikacija, ki prikaže filtriran seznam razširitev v Spletni trgovini Chrome. Razširitve na seznamu je mogoče namestiti neposredno iz aplikacije.</translation> +<translation id="1322046419516468189">Ogled in upravljanje shranjenih gesel tukaj: <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Če želite dostopati do zavihkov v drugih napravah, se prijavite v Chrome.</translation> <translation id="1327074568633507428">Tiskalnik v Google Tiskanju v oblaku</translation> <translation id="1327977588028644528">Prehod</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Center za pomoč</translation> <translation id="162035744160882748">Vklop sinhronizacije, prilagajanja in drugih Googlovih storitev</translation> <translation id="1620510694547887537">Kamera</translation> +<translation id="1623132449929929218">Slike trenutno niso na voljo. Znova vzpostavite povezavo z internetom, če si želite ogledati zbirke ozadij.</translation> <translation id="1624026626836496796">To se bo zgodilo samo enkrat in vaše poverilnice ne bodo shranjene.</translation> <translation id="1627276047960621195">Deskriptorji datotek</translation> <translation id="1627408615528139100">Že preneseno</translation> <translation id="1632803087685957583">Omogoča prilagajanje hitrosti ponavljanja za tipkovnico, predvidevanja besed in drugega</translation> <translation id="1635033183663317347">Namestil skrbnik</translation> +<translation id="1635885551358739414">Google lahko vsebino na spletnih mestih, ki jih obiščete, ter vašo dejavnost brskanja in interakcije uporabi za prilagajanje Chroma ter drugih Googlovih storitev, kot so Prevajalnik, Iskanje Google in oglasi. To lahko prilagodite v nastavitvah.</translation> <translation id="1637224376458524414">Prejemanje tega zaznamka v iPhonu</translation> <translation id="1637765355341780467">Pri odpiranju profila je prišlo do težave. Nekatere funkcije morda niso na voljo.</translation> <translation id="1639239467298939599">Nalaganje</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Geslo je prekratko.</translation> <translation id="1661867754829461514">Manjka PIN</translation> <translation id="16620462294541761">Vašega gesla žal ni bilo mogoče preveriti. Poskusite znova.</translation> +<translation id="1662550410081243962">Shranjevanje in izpolnjevanje plačilnih sredstev</translation> <translation id="166278006618318542">Algoritem javnega ključa subjekta</translation> <translation id="166439687370499867">Spreminjanje omrežnih konfiguracij v skupni rabi ni dovoljeno</translation> <translation id="1665611772925418501">Datoteke ni bilo mogoče spremeniti.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546"><ph name="URL" /> si želi ogledati znamko in model varnostnega ključa</translation> <translation id="167832068858235403">zmanjšanje glasnosti</translation> <translation id="1679068421605151609">Razvijalska orodja</translation> +<translation id="1680849702532889074">Med namestitvijo aplikacije za Linux je prišlo do napake.</translation> <translation id="16815041330799488">Spletnim mestom ne dovoli ogleda besedila in slik, kopiranih v odložišče</translation> <translation id="1682548588986054654">Novo &okno brez beleženja zgodovine</translation> <translation id="168715261339224929">Če želite dostopati do zaznamkov v vseh napravah, vklopite sinhronizacijo.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Odpni zavihke</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> se morda ne bo mogel posodabljati</translation> <translation id="1736419249208073774">Razišči</translation> +<translation id="1736827427463982819">Izklopi Linux (beta)</translation> <translation id="1737968601308870607">Prijavi napako</translation> <translation id="1741314857973421784">Naprej</translation> <translation id="174173592514158117">Prikaz vseh map v Googlu Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567"><ph name="URL" /> želi trajno shraniti velike količine podatkov v lokalnem računalniku</translation> <translation id="1997616988432401742">Vaša potrdila</translation> <translation id="1999115740519098545">Ob zagonu</translation> +<translation id="2000419248597011803">Pošilja nekatere piškotke in iskanja iz naslovne vrstice ter iskalnega polja privzetemu iskalniku</translation> <translation id="2001796770603320721">Upravljanje v Googlu Drive</translation> <translation id="2004663115385769400">Ni mogoče odpreti z aplikacijo $1</translation> <translation id="200544492091181894">To lahko pozneje spremenite v nastavitvah</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Še naprej blokiraj piškotke</translation> <translation id="204622017488417136">Naprava bo povrnjena na prej nameščeno različico Chroma. Vsi uporabniški računi in lokalni podatki bodo odstranjeni. Tega ni mogoče razveljaviti.</translation> <translation id="2048182445208425546">Dostop do vašega omrežnega prometa</translation> +<translation id="2048653237708779538">Dejanje ni na voljo</translation> <translation id="204914487372604757">Ustvari bližnjico</translation> <translation id="2050339315714019657">Pokončno</translation> <translation id="2053312383184521053">Podatki o stanju nedejavnosti</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Vtičnik <ph name="PEPPER_PLUGIN_NAME" /> v domeni <ph name="PEPPER_PLUGIN_DOMAIN" /> želi dostopati do vašega računalnika</translation> <translation id="2178614541317717477">Overitelj potrdil ni več varen</translation> <translation id="218070003709087997">Vnesite število izvodov, ki jih želite natisniti (od 1 do 999).</translation> +<translation id="2183558561014688873">Do Pomočnika lahko dostopate, kadar koli izgovorite »OK Google«, ko je zaslon vklopljen in odklenjen.</translation> <translation id="2187895286714876935">Napaka pri uvozu strežniškega potrdila</translation> <translation id="2187906491731510095">Razširitve posodobljene</translation> <translation id="2188881192257509750">Odpri aplikacijo <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Proces GPU</translation> <translation id="2282155092769082568">Spletni naslov samodejne konfiguracije:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Shranjevanje in izpolnjevanje naslovov</translation> <translation id="2286841657746966508">Naslov za obračun storitev</translation> <translation id="2288181517385084064">Preklopi na snemalnik videoposnetkov</translation> <translation id="2288735659267887385">Nastavitve funkcij za ljudi s posebnimi potrebami</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Skupna velikost datotek</translation> <translation id="2428510569851653187">Opišite, kaj ste počeli, ko se je zavihek zrušil</translation> <translation id="2431027948063157455">Pomočnika Google ni bilo mogoče naložiti. Preverite omrežno povezavo in poskusite znova.</translation> +<translation id="2432753757290432042">Zahtevana je posodobitev Linuxa (beta)</translation> <translation id="2433452467737464329">V URL dodajte parameter poizvedbe, da samodejno osvežite stran: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Videz</translation> <translation id="2433836460518180625">Samo odklepanje naprave</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Urejanje prstnih odtisov</translation> <translation id="2776441542064982094">Zdi se, da ni naprav, ki bi jih bilo mogoče registrirati v omrežju. Če je vaša naprava vklopljena in ima internetno povezavo, jo poskušajte registrirati po postopku iz priročnika z navodili za napravo.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Napaka pri nameščanju aplikacije za Linux</translation> <translation id="2783298271312924866">Preneseno</translation> <translation id="2783321960289401138">Ustvari bližnjico ...</translation> <translation id="2783829359200813069">Izberite vrste šifriranja</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Poskusite se odjaviti in znova prijaviti</translation> <translation id="2812989263793994277">Ne pokaži slik</translation> <translation id="2814489978934728345">Ustavite nalaganje te strani</translation> +<translation id="281504910091592009">Ogled in upravljanje shranjenih gesel v <ph name="BEGIN_LINK" />Google Računu<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Vrstica z zaznamki</translation> <translation id="2815693974042551705">Mapa z zaznamki</translation> <translation id="2818476747334107629">Podrobnosti tiskalnika</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Pokaži razpoložljive naprave Bluetooth</translation> <translation id="2941112035454246133">Nizka</translation> <translation id="2942560570858569904">Čakanje ...</translation> +<translation id="2942581856830209953">Prilagajanje te strani</translation> <translation id="2943400156390503548">Predstavitve</translation> <translation id="2943503720238418293">Uporabite krajše ime</translation> <translation id="2946119680249604491">Dodaj povezavo</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Geslo:</translation> <translation id="3694027410380121301">Izberi prejšnji zavihek</translation> <translation id="3699624789011381381">E-poštni naslov</translation> +<translation id="3699920817649120894">Želite izklopiti sinhronizacijo in prilagajanje?</translation> <translation id="3700888195348409686">Predstavljanje (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Začetne strani so bile spremenjene in vsebujejo <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript je blokiran</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&Celozaslonsko</translation> <translation id="3828029223314399057">Išči po zaznamkih</translation> <translation id="3830674330436234648">Predvajanje ni na voljo</translation> +<translation id="3831436149286513437">Predlogi za iskanje v Googlu Drive</translation> <translation id="3831486154586836914">Izbran je način pregleda okna</translation> <translation id="383161972796689579">Lastnik te naprave je onemogočil dodajanje novih uporabnikov</translation> <translation id="3834775135533257713">Aplikacije »<ph name="TO_INSTALL_APP_NAME" />« ni bilo mogoče dodati, ker je v sporu z aplikacijo »<ph name="INSTALLED_APP_NAME" />«.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Najnižja</translation> <translation id="3872220884670338524">Več dejanj, shranjen račun za uporabnika <ph name="USERNAME" /> v domeni <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Sprostite prostor na disku, sicer bo postala naprava neodzivna.</translation> +<translation id="3873315167136380065">Če želite to vklopiti, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" />, da odstranite geslo za sinhronizacijo</translation> <translation id="3878840326289104869">Ustvarjanje zaščitenega uporabnika</translation> <translation id="3879748587602334249">Upravitelj prenosov</translation> <translation id="3880709822663530586">Varnostni ključ deluje le, ko je v napravi vklopljen Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Shranjeni prstni odtisi</translation> <translation id="407173827865827707">Ob kliku</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: napaka pri prijavi</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Potrdilo podpisnika e-pošte</translation> <translation id="407520071244661467">Prilagajanje velikosti</translation> <translation id="4075639477629295004">Ni mogoče predvajati <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Pregled nastavitev na naslednjem zaslonu</translation> <translation id="4193154014135846272">Googlov dokument</translation> <translation id="4194570336751258953">Omogoči klik z dotikom</translation> +<translation id="4195249722193633765">Namestitev aplikacije z Linuxom (beta)</translation> <translation id="4195643157523330669">Odpri v novem zavihku</translation> <translation id="4195814663415092787">Nadaljuj prejšnjo sejo</translation> <translation id="4197674956721858839">Stisni izbor v datoteko zip</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Element na polici 8</translation> <translation id="4287502004382794929">Nimate dovolj licenc za programsko opremo za včlanitev te naprave. Obrnite se na prodajni oddelek za nakup dodatnih. Če menite, da ste to sporočilo prejeli pomotoma, se obrnite na podporo.</translation> <translation id="4289540628985791613">Pregled</translation> +<translation id="4295072614469448764">Aplikacija je na voljo v terminalu. Morda je na voljo tudi ikona v zaganjalniku.</translation> <translation id="4296575653627536209">Dodajanje zaščitenega uporabnika</translation> +<translation id="4297219207642690536">Znova zaženi in ponastavi</translation> <translation id="4297322094678649474">Spreminjanje jezikov</translation> <translation id="4300305918532693141">Če želite spremeniti to nastavitev, <ph name="BEGIN_LINK" />ponastavite sinhronizacijo<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">dolga (2 s)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">E-poštni naslov in geslo, ki ste ju vnesli, se ne ujemata.</translation> <translation id="437184764829821926">Napredne nastavitve pisave</translation> <translation id="4372884569765913867">1 x 1</translation> +<translation id="4374831787438678295">Namestitveni program za Linux</translation> <translation id="4375035964737468845">Odpiranje prenesenih slik</translation> <translation id="4377363674125277448">Težava s potrdilom strežnika.</translation> <translation id="4378154925671717803">Telefon</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Seznanitev naprave Bluetooth</translation> <translation id="4579581181964204535">Ni mogoče predvajati <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Ali ste prepričani, da želite izbrisati $1 elementov?</translation> +<translation id="4582497162516204941">Namestitev z Linuxom (beta)</translation> <translation id="4582563038311694664">Ponastavi vse nastavitve</translation> <translation id="4585793705637313973">Urejanje strani</translation> <translation id="4589268276914962177">Nov terminal</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Privzeti oranžni avatar</translation> <translation id="4955814292505481804">Letna</translation> <translation id="4957949153200969297">Omogočite samo funkcije, ki so povezane s Sinhronizacijo za <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Gesla so shranjena v Google Računu, da jih lahko uporabite v kateri koli napravi</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">V mapi, ki ste jo izbrali, so občutljive datoteke. Ali ste prepričani, da želite »$1« podeliti trajen dostop za branje za to mapo?</translation> <translation id="4964455510556214366">Razvrstitev</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Nastavitve, ki nadzirajo sinhronizacijo, prilagajanje in druge Googlove storitve v Chromu, so se spremenile. To lahko vpliva na vaše trenutne nastavitve.</translation> <translation id="5241128660650683457">Branje vseh vaših podatkov na spletnih mestih, ki jih obiščete</translation> <translation id="5242724311594467048">Ali želite omogočiti »<ph name="EXTENSION_NAME" />«?</translation> +<translation id="5243522832766285132">Poskusite znova čez nekaj trenutkov</translation> <translation id="5244474230056479698">Syncing to <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Program <ph name="APP_NAME" /> se je zrušil. Kliknite ta oblaček, da ga znova zaženete.</translation> <translation id="5247051749037287028">Prikazno ime (izbirno)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">To lahko traja kakšno minuto.</translation> <translation id="5264252276333215551">Če želite aplikacijo zagnati v načinu kioska, se povežite z internetom.</translation> <translation id="5265562206369321422">Brez povezave več kot en teden</translation> +<translation id="5265797726250773323">Napaka pri nameščanju</translation> <translation id="5266113311903163739">Napaka pri uvozu overitelja potrdil</translation> <translation id="5269977353971873915">Tiskanje ni uspelo</translation> <translation id="5271549068863921519">Shrani geslo</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Formatiraj to napravo</translation> <translation id="5292195676005197571">Pri večini ključev morate za uporabo samo pritisniti gumb</translation> <translation id="5293170712604732402">Ponastavitev nastavitev na privzete nastavitve</translation> +<translation id="5297082477358294722">Geslo je shranjeno. Shranjena gesla si lahko ogledate in jih upravljate tukaj: <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Avtor teme</translation> <translation id="5299109548848736476">Ne sledi</translation> <translation id="5299682071747318445">Vsi podatki so šifrirani z vašim geslom</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150"><ph name="URL" /> želi uporabljati lokacijo vašega računalnika</translation> <translation id="5612734644261457353">Vašega gesla še ni bilo mogoče preveriti. Opomba: Če ste v zadnjem času spremenili geslo, bo novo geslo začelo veljati, ko se odjavite. Tu uporabite starega.</translation> <translation id="5614190747811328134">Uporabniško obvestilo</translation> +<translation id="5614553682702429503">Želite shraniti geslo?</translation> <translation id="561698261642843490">Zapiranje Firefoxa</translation> <translation id="5618075537869101857">Presneto, aplikacije Kiosk ni bilo mogoče zagnati.</translation> <translation id="5618333180342767515">(to lahko traja nekaj minut)</translation> @@ -3043,6 +3071,7 @@ <translation id="5677503058916217575">Jezik strani:</translation> <translation id="5677928146339483299">Blokirano</translation> <translation id="5678550637669481956">Odobren je dostop z možnostjo branja in pisanja za to: <ph name="VOLUME_NAME" />.</translation> +<translation id="5678784840044122290">Aplikacija za Linux bo na voljo v terminalu in morda bo zanjo tudi prikazana ikona v zaganjalniku.</translation> <translation id="5678955352098267522">Branje vaših podatkov na spletnem mestu <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">ID sredstva</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Ni mogoče prekiniti povezave z arhivom ali navideznim diskom<ph name="END_BOLD" /> @@ -3138,6 +3167,7 @@ <translation id="5832805196449965646">Dodaj osebo</translation> <translation id="583281660410589416">Neznano</translation> <translation id="5832976493438355584">Zaklenjeno</translation> +<translation id="5833397272224757657">Uporablja vsebino na spletnih mestih, ki jih obiščete, ter dejavnost v brskalniku in interakcijo zaradi prilagajanja</translation> <translation id="5833610766403489739">Ta datoteka se je nekje izgubila. Preverite nastavitev mesta za prenos in poskusite znova.</translation> <translation id="5833726373896279253">Te nastavitve lahko spreminja samo lastnik:</translation> <translation id="5834581999798853053">Še približno <ph name="TIME" /> min</translation> @@ -3191,6 +3221,7 @@ <translation id="5908769186679515905">Mestom prepreči izvajanje Flasha</translation> <translation id="5910363049092958439">Sh&rani sliko kot ...</translation> <translation id="5911737117543891828">Začasne datoteke brez povezave v Googlu Drive bodo izbrisane. Datoteke, za katere ste določili, da so na voljo brez povezave, ne bodo izbrisane iz te naprave.</translation> +<translation id="5911887972742538906">Med nameščanjem aplikacije za Linux je prišlo do napake.</translation> <translation id="5912378097832178659">&Urejanje iskalnikov ...</translation> <translation id="5914724413750400082">Modul (št. bitov: <ph name="MODULUS_NUM_BITS" />): <ph name="MODULUS_HEX_DUMP" /> @@ -3377,6 +3408,7 @@ <translation id="6198102561359457428">Odjavite se in znova prijavite ...</translation> <translation id="6198252989419008588">Spremeni PIN</translation> <translation id="6199801702437275229">Čakanje na podatke o prostoru ...</translation> +<translation id="6201792273624501289">Aplikacije za Linux</translation> <translation id="6204015976622790023">Ogled ustreznih predlogov Pomočnika glede na vsebino zaslona.</translation> <translation id="6205710420833115353">Nekateri postopki trajajo dlje, kot je pričakovano. Ali jih želite opustiti?</translation> <translation id="6206311232642889873">Kop&iraj sliko</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Izberi</translation> <translation id="694592694773692225">Preusmeritev je na tej strani blokirana.</translation> <translation id="6949306908218145636">Ustvarjanje zaznamkov za odprte strani ...</translation> +<translation id="6950627417367801484">Obnovi aplikacije</translation> <translation id="6951153907720526401">Rutine za obravnavo plačil</translation> <translation id="6955446738988643816">Preglej pojavno okno</translation> <translation id="6957231940976260713">Ime storitve</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Zgodovina prenosov</translation> <translation id="7131040479572660648">Branje vaših podatkov na spletnih mestih <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> in <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Dodaj str&an ...</translation> +<translation id="7133578150266914903">Skrbnik vrača napravo na prejšnjo različico (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Pomanjšaj besedilo</translation> <translation id="7136694880210472378">Nastavi za privzeto</translation> <translation id="7136984461011502314">Dobrodošli v storitvi <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Dodaj osebo</translation> <translation id="7464490149090366184">Ustvarjanje datoteke zip ni uspelo, obstoječi element: »$1«</translation> <translation id="7465778193084373987">Spletni naslov ukinjenega Netscapeovega potrdila</translation> +<translation id="7469406957790636836">Če želite to vklopiti, najprej vklopite preverjanje črkovanja v razdelku <ph name="BEGIN_LINK" />Jeziki in vnos<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Samodejno vzpostavi povezavo s tem omrežjem</translation> <translation id="747114903913869239">Napaka: Razširitve ni bilo mogoče dekodirati</translation> <translation id="7473753388963818366">Pripravimo napravo <ph name="DEVICE_TYPE" /></translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Overitelji</translation> <translation id="7607002721634913082">Začasno ustavljeno</translation> <translation id="7607274158153386860">Zahtevaj spletno mesto za tablični računalnik</translation> +<translation id="7609148976235050828">Vzpostavite povezavo z internetom in poskusite znova.</translation> <translation id="7611008212562900400">Iščite napravo, aplikacije, v spletu ...</translation> <translation id="7616214729753637086">Včlanjevanje naprave ...</translation> <translation id="7617366389578322136">Povezovanje z napravo »<ph name="DEVICE_NAME" />«</translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Zajem vsebine zaslona</translation> <translation id="7730494089396812859">Prikaz podrobnosti varnostnega kopiranja v oblak</translation> <translation id="7732111077498238432">Omrežje je upravljano s pravilniki</translation> +<translation id="7737238973539693982">Izbris Linuxa (beta)</translation> <translation id="773905249182896430">Ščiti vas in napravo pred nevarnimi spletnimi mesti</translation> <translation id="7740996059027112821">Standardno</translation> <translation id="7748528009589593815">Prejšnji zavihek</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Upodabljanje čez rob zaslona</translation> <translation id="7977551819349545646">Posodabljanje Chromeboxa ...</translation> <translation id="7978412674231730200">Zasebni ključ</translation> +<translation id="7978450511781612192">S tem boste odjavljeni iz Google Računov. Zaznamki, zgodovina, gesla in drugi podatki ne bodo več sinhronizirani.</translation> <translation id="7979036127916589816">Sinhronizacijska napaka</translation> <translation id="7980084013673500153">ID sredstva: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Vnaprejšnje nalaganje strani zaradi hitrejšega brskanja in iskanja</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Čakalna vrsta</translation> <translation id="8226742006292257240">Spodaj je prikazano naključno ustvarjeno geslo za TPM, dodeljeno vašemu računalniku:</translation> <translation id="8227119283605456246">Prilaganje datoteke</translation> +<translation id="8230134520748321204">Želite shraniti geslo za <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Pomagajte našim tehnikom odpraviti to težavo. Opišite, kaj se je zgodilo, tik preden se je prikazalo sporočilo o napaki profila:</translation> <translation id="8234989666557591529">Izberite telefon za odklepanje naprave <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Sinhronizacija z računom uporabnika <ph name="FULL_NAME" /></translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">Preklop na pametni brskalnik</translation> <translation id="8438566539970814960">Izboljšanje iskanja in brskanja</translation> <translation id="8439506636278576865">Ponudi prevajanje strani v tem jeziku</translation> +<translation id="8440630305826533614">Aplikacije za Linux</translation> <translation id="8446884382197647889">Več o tem</translation> <translation id="8447409163267621480">Vključevati morajo ali Ctrl ali Alt</translation> <translation id="8448729345478502352">Pomanjšajte ali povečajte elemente na zaslonu.</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Orodja sistema Windows</translation> <translation id="8498214519255567734">Olajšanje gledanja na zaslon ali branja pri šibki svetlobi</translation> <translation id="8498395510292172881">Nadaljevanje branja v Chromu</translation> +<translation id="8502536196501630039">Če želite uporabljati aplikacije iz Googla Play, morate najprej obnoviti aplikacije. Nekateri podatki so bili morda izgubljeni.</translation> <translation id="8503813439785031346">Uporabniško ime</translation> <translation id="850875081535031620">Najdena ni bila nobena škodljiva programska oprema</translation> <translation id="8509646642152301857">Prenos slovarja za preverjanje črkovanja ni uspel.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Googlova risba</translation> <translation id="869884720829132584">Meni programov</translation> <translation id="869891660844655955">Datum izteka</translation> +<translation id="8699566574894671540">Če želite to vklopiti, v meniju za urejanje najprej izberite »Check Spelling While Typing« (Preverjaj črkovanje med vnašanjem)</translation> <translation id="870073306461175568">Omrežne naprave za skupno rabo datotek</translation> <translation id="8701677791353449257">Ime naprave se mora ujemati z regularnim izrazom <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Postopek traja veliko dlje kot običajno. Počakajte ali prekličete in poskusite znova pozneje.</translation> @@ -5024,6 +5066,7 @@ <p>Kljub temu ga lahko nastavite z ukazno vrstico. Glejte <code>man <ph name="PRODUCT_BINARY_NAME" /></code> za več informacij o zastavicah in spremenljivkah okolja.</p></translation> <translation id="8755376271068075440">&Povečaj</translation> +<translation id="8756969031206844760">Želite posodobiti geslo?</translation> <translation id="8757090071857742562">Namizja ni mogoče predvajati. Preverite, ali ste potrdili poziv za začetek skupne rabe zaslona.</translation> <translation id="8757640015637159332">Prijava v javno sejo</translation> <translation id="8757742102600829832">Izberite Chromebox, s katerim želite vzpostaviti povezavo</translation> @@ -5180,7 +5223,9 @@ <translation id="9009369504041480176">Prenos poteka (<ph name="PROGRESS_PERCENT" /> %)</translation> <translation id="9011163749350026987">Vedno pokaži ikono</translation> <translation id="9011178328451474963">Zadnji zavihek</translation> +<translation id="9013707997379828817">Skrbnik je povrnil napravo na prejšnjo različico. Shranite pomembne datoteke, nato napravo znova zaženite. Vsi podatki v napravi bodo izbrisani.</translation> <translation id="9014987600015527693">Prikaži drug telefon</translation> +<translation id="9018218886431812662">Namestitev je dokončana</translation> <translation id="901834265349196618">e-pošta</translation> <translation id="9019062154811256702">Branje in spreminjanje nastavitev samodejnega izpolnjevanja</translation> <translation id="9020362265352758658">4 x</translation> @@ -5204,6 +5249,7 @@ <translation id="9038649477754266430">Uporaba storitve predvidevanja za hitrejše nalaganje strani</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Izklop zvoka zavihkov</translation> +<translation id="9040661932550800571">Želite posodobiti geslo za <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Dostop do lokalnih datotek v vašem računalniku je onemogočil skrbnik</translation> <translation id="9042893549633094279">Zasebnost in varnost</translation> <translation id="904451693890288097">Vnesite geslo za napravo »<ph name="DEVICE_NAME" />«:</translation> @@ -5308,6 +5354,7 @@ <translation id="9203478404496196495">Vklop zvoka zavihka</translation> <translation id="9203904171912129171">Izberite napravo</translation> <translation id="9203962528777363226">Skrbnik te naprave je onemogočil dodajanje novih uporabnikov</translation> +<translation id="9213073329713032541">Namestitev je bila uspešno začeta.</translation> <translation id="9214520840402538427">Ojoj! Potekla je časovna omejitev inicializacije atributov časa namestitve. Obrnite se na predstavnika podpore.</translation> <translation id="9214695392875603905">Tortica</translation> <translation id="9215293857209265904">Razširitev »<ph name="EXTENSION_NAME" />« je dodana</translation> @@ -5362,6 +5409,7 @@ <translation id="988978206646512040">Prazno geslo ni dovoljeno</translation> <translation id="992032470292211616">Razširitve, programi in teme lahko škodujejo napravi. Ali ste prepričani, da želite nadaljevati?</translation> <translation id="992592832486024913">Onemogoči ChromeVox (izgovorjava povratnih informacij)</translation> +<translation id="993540765962421562">Nameščanje je v teku</translation> <translation id="994289308992179865">Ponav&ljaj</translation> <translation id="996250603853062861">Vzpostavljanje varne povezave ...</translation> <translation id="998747458861718449">Preglej</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb index 42a0e46d..700dd0e5 100644 --- a/chrome/app/resources/generated_resources_sr.xtb +++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Претраживање...</translation> <translation id="1316495628809031177">Синхронизација је паузирана</translation> <translation id="1319979322914001937">Апликација која приказује филтрирану листу додатака из Chrome веб-продавнице. Додатке са листе можете да инсталирате директно из апликације.</translation> +<translation id="1322046419516468189">Прегледајте сачуване лозинке и управљајте њима на <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Да би вам картице биле доступне на другим уређајима, пријавите се у Chrome.</translation> <translation id="1327074568633507428">Штампач у Google Cloud штампању</translation> <translation id="1327977588028644528">Мрежни пролаз</translation> @@ -415,11 +416,13 @@ <translation id="1618268899808219593">Ц&ентар за помоћ</translation> <translation id="162035744160882748">Укључите синхронизацију, персонализацију и друге Google услуге</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1623132449929929218">Слике тренутно нису доступне. Поново се повежите на интернет да бисте прегледали колекције позадина.</translation> <translation id="1624026626836496796">Ово ћете урадити само једном и нећемо сачувати акредитиве.</translation> <translation id="1627276047960621195">Дескриптори датотека</translation> <translation id="1627408615528139100">Већ је преузето</translation> <translation id="1632803087685957583">Омогућавају вам да прилагодите брзину понављања за тастатуру, предвиђање речи и још пуно тога</translation> <translation id="1635033183663317347">Инсталирао је надређени корисник.</translation> +<translation id="1635885551358739414">Google може да користи садржај на сајтовима које посећујете, активности прегледача и интеракције да би персонализовао Chrome и друге Google услуге, као што су Преводилац, Претрага и огласи. То можете да прилагодите у подешавањима.</translation> <translation id="1637224376458524414">Користите овај обележивач на iPhone-у</translation> <translation id="1637765355341780467">Дошло је до проблема при отварању профила. Неке функције ће можда бити недоступне.</translation> <translation id="1639239467298939599">Учитавање</translation> @@ -450,6 +453,7 @@ <translation id="166179487779922818">Лозинка је прекратка.</translation> <translation id="1661867754829461514">Недостаје PIN</translation> <translation id="16620462294541761">Жао нам је, нисмо успели да верификујемо лозинку. Пробајте поново.</translation> +<translation id="1662550410081243962">Чувај и уноси начине плаћања</translation> <translation id="166278006618318542">Алгоритам јавног кључа субјекта</translation> <translation id="166439687370499867">Промена конфигурације дељене мреже није дозвољена</translation> <translation id="1665611772925418501">Није могуће изменити датотеку.</translation> @@ -459,6 +463,7 @@ <translation id="1673137583248014546"><ph name="URL" /> жели да види произвођача и модел безбедносног кључа</translation> <translation id="167832068858235403">утишавање звука</translation> <translation id="1679068421605151609">Алатке за програмере</translation> +<translation id="1680849702532889074">Дошло је до грешке током инсталирања Linux апликације.</translation> <translation id="16815041330799488">Не дозвољавај сајтовима да виде текст и слике који су копирани у привремену меморију</translation> <translation id="1682548588986054654">Нови прозор без архивирања</translation> <translation id="168715261339224929">Да би вам обележивачи били доступни на свим уређајима, укључите синхронизацију.</translation> @@ -494,6 +499,7 @@ <translation id="1732215134274276513">Откачи картице</translation> <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> можда неће моћи да се ажурира</translation> <translation id="1736419249208073774">Истражи</translation> +<translation id="1736827427463982819">Искључи Linux (бета)</translation> <translation id="1737968601308870607">Пријави грешку</translation> <translation id="1741314857973421784">Настави</translation> <translation id="174173592514158117">Прикажи све Play директоријуме</translation> @@ -666,6 +672,7 @@ <translation id="1997484222658892567"><ph name="URL" /> жели да трајно складишти велику количину података на вашем локалном рачунару</translation> <translation id="1997616988432401742">Ваши сертификати</translation> <translation id="1999115740519098545">При покретању</translation> +<translation id="2000419248597011803">Подразумеваном претраживачу шаље неке колачиће и претраге из траке за адресу и оквира за претрагу</translation> <translation id="2001796770603320721">Управљајте на Диску</translation> <translation id="2004663115385769400">Отварање помоћу апликације $1 није успело</translation> <translation id="200544492091181894">То можете да промените касније у подешавањима.</translation> @@ -692,6 +699,7 @@ <translation id="2045969484888636535">Настави са блокирањем колачића</translation> <translation id="204622017488417136">Уређај ће бити враћен на претходно инсталирану верзију Chrome-а. Сви кориснички налози и локални подаци ће бити уклоњени. Ова радња не може да се опозове.</translation> <translation id="2048182445208425546">Приступ мрежном саобраћају</translation> +<translation id="2048653237708779538">Радња није доступна</translation> <translation id="204914487372604757">Направи пречицу</translation> <translation id="2050339315714019657">Вертикално</translation> <translation id="2053312383184521053">Подаци о стању мировања</translation> @@ -780,6 +788,7 @@ <translation id="2178098616815594724">Додатна компонента <ph name="PEPPER_PLUGIN_NAME" /> на домену <ph name="PEPPER_PLUGIN_DOMAIN" /> жели да приступи рачунару</translation> <translation id="2178614541317717477">CA је компромитован</translation> <translation id="218070003709087997">Наведите број примерака за штампање (1 до 999).</translation> +<translation id="2183558561014688873">Приступајте Помоћнику сваки пут када изговорите „Ок Google“ док је уређај ван стања спавања и откључан.</translation> <translation id="2187895286714876935">Грешка при увозу серверског сертификата</translation> <translation id="2187906491731510095">Додаци су ажурирани</translation> <translation id="2188881192257509750">Отвори <ph name="APPLICATION" /></translation> @@ -851,6 +860,7 @@ <translation id="2282146716419988068">GPU процес</translation> <translation id="2282155092769082568">URL за аутоматску конфигурацију:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Чувај и уноси адресе</translation> <translation id="2286841657746966508">Адреса за наплату</translation> <translation id="2288181517385084064">Пребаци на видео-рикордер</translation> <translation id="2288735659267887385">Подешавања приступачности</translation> @@ -932,6 +942,7 @@ <translation id="2425665904502185219">Укупна величина датотеке</translation> <translation id="2428510569851653187">Опишите шта сте радили када је картица отказала</translation> <translation id="2431027948063157455">Google помоћник није успео да се учита. Проверите мрежну везу, па покушајте поново.</translation> +<translation id="2432753757290432042">Потребно је ажурирање за Linux (бета)</translation> <translation id="2433452467737464329">Додајте параметар упита у URL да бисте аутоматски освежили страницу: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Изглед</translation> <translation id="2433836460518180625">Откључај само уређај</translation> @@ -1180,6 +1191,7 @@ <translation id="2775104091073479743">Измена отисака прстију</translation> <translation id="2776441542064982094">Изгледа да нема доступних уређаја за регистрацију на мрежи. Ако је уређај укључен и повезан са интернетом, покушајте да га региструјете помоћу упутстава у приручнику за употребу.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Грешка при инсталирању Linux апликације</translation> <translation id="2783298271312924866">Преузето</translation> <translation id="2783321960289401138">Направи пречицу...</translation> <translation id="2783829359200813069">Изаберите типове шифровања</translation> @@ -1204,6 +1216,7 @@ <translation id="2812944337881233323">Покушајте да се одјавите и поново пријавите</translation> <translation id="2812989263793994277">Не приказуј ниједну слику</translation> <translation id="2814489978934728345">Прекините учитавање ове странице</translation> +<translation id="281504910091592009">Прегледајте сачуване лозинке и управљајте њима на <ph name="BEGIN_LINK" />Google налогу<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Трака са обележивачима</translation> <translation id="2815693974042551705">Директоријум за обележиваче</translation> <translation id="2818476747334107629">Детаљи о штампачу</translation> @@ -1284,6 +1297,7 @@ <translation id="2939938020978911855">Приказуј доступне Bluetooth уређаје</translation> <translation id="2941112035454246133">Низак</translation> <translation id="2942560570858569904">Чека се...</translation> +<translation id="2942581856830209953">Прилагодите ову страницу</translation> <translation id="2943400156390503548">Презентације</translation> <translation id="2943503720238418293">Користите краћи назив</translation> <translation id="2946119680249604491">Додај везу</translation> @@ -1770,6 +1784,7 @@ <translation id="3693415264595406141">Лозинка:</translation> <translation id="3694027410380121301">Изабери претходну картицу</translation> <translation id="3699624789011381381">Имејл адреса</translation> +<translation id="3699920817649120894">Желите ли да искључите синхронизацију и персонализацију?</translation> <translation id="3700888195348409686">Приказује се (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Полазне странице су промењене, па сада обухватају <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript је блокиран</translation> @@ -1867,6 +1882,7 @@ <translation id="3827774300009121996">&Цео екран</translation> <translation id="3828029223314399057">Претражи обележиваче</translation> <translation id="3830674330436234648">Репродукција није доступна</translation> +<translation id="3831436149286513437">Предлози за претрагу Google диска</translation> <translation id="3831486154586836914">Ушли сте у режим прегледа прозора</translation> <translation id="383161972796689579">Власник овог уређаја је онемогућио додавање нових корисника</translation> <translation id="3834775135533257713">Додавање апликације „<ph name="TO_INSTALL_APP_NAME" />“ није успело због конфликта са апликацијом „<ph name="INSTALLED_APP_NAME" />“.</translation> @@ -1900,6 +1916,7 @@ <translation id="3871092408932389764">Најнижи</translation> <translation id="3872220884670338524">Још радњи, сачуван је налог за <ph name="USERNAME" /> на <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Ослободите простор на диску или ће уређај престати да се одазива.</translation> +<translation id="3873315167136380065">Да бисте укључили ово, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" /> да бисте уклонили приступну фразу за синхронизацију</translation> <translation id="3878840326289104869">Прављење корисника под надзором</translation> <translation id="3879748587602334249">Менаџер преузимања</translation> <translation id="3880709822663530586">Безбедносни кључ функционише када је Bluetooth уређаја укључен</translation> @@ -2023,6 +2040,7 @@ <translation id="4068776064906523561">Сачувани отисци прстију</translation> <translation id="407173827865827707">При клику</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: грешка при пријављивању</translation> +<translation id="4071828814509176232">Ок Google</translation> <translation id="4074900173531346617">Сертификат потписника е-поште</translation> <translation id="407520071244661467">Размера</translation> <translation id="4075639477629295004">Није успело пребацивање за <ph name="FILE_NAME" />.</translation> @@ -2090,6 +2108,7 @@ <translation id="4192273449750167573">Прегледајте подешавања на следећем екрану</translation> <translation id="4193154014135846272">Google документ</translation> <translation id="4194570336751258953">Омогући функцију „додирни-за-клик“</translation> +<translation id="4195249722193633765">Инсталирајте Linux апликацију (бета)</translation> <translation id="4195643157523330669">Отвори у новој картици</translation> <translation id="4195814663415092787">Настави претходну сесију</translation> <translation id="4197674956721858839">Избор за додавање у zip датотеку</translation> @@ -2150,7 +2169,9 @@ <translation id="428608937826130504">8. ставка на полици</translation> <translation id="4287502004382794929">Немате довољно лиценци за софтвер да бисте регистровали овај уређај. Контактирајте сектор продаје да бисте купили још лиценци. Ако сматрате да се ова порука приказује грешком, контактирајте подршку.</translation> <translation id="4289540628985791613">Преглед</translation> +<translation id="4295072614469448764">Апликација је доступна на терминалу. Можда имате и икону у Покретачу.</translation> <translation id="4296575653627536209">Додај корисника под надзором</translation> +<translation id="4297219207642690536">Рестартуј и ресетуј</translation> <translation id="4297322094678649474">Промените језике</translation> <translation id="4300305918532693141">Да бисте променили ово подешавање, <ph name="BEGIN_LINK" />ресетујте синхронизацију<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">Дуго (2 с)</translation> @@ -2186,6 +2207,7 @@ <translation id="4370975561335139969">Имејл и лозинка које сте унели се не подударају</translation> <translation id="437184764829821926">Напредна подешавања фонта</translation> <translation id="4372884569765913867">1×1</translation> +<translation id="4374831787438678295">Linux програм за инсталацију</translation> <translation id="4375035964737468845">Отварање преузетих датотека</translation> <translation id="4377363674125277448">Дошло је до проблема са сертификатом сервера.</translation> <translation id="4378154925671717803">Телефон</translation> @@ -2304,6 +2326,7 @@ <translation id="4576541033847873020">Упарите Bluetooth уређај</translation> <translation id="4579581181964204535">Није успело пребацивање за <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Да ли стварно желите да избришете $1 ставке(и)?</translation> +<translation id="4582497162516204941">Инсталирај за Linux (бета)</translation> <translation id="4582563038311694664">Ресетуј сва подешавања</translation> <translation id="4585793705637313973">Измени страницу</translation> <translation id="4589268276914962177">Нови терминал</translation> @@ -2547,6 +2570,7 @@ <translation id="4953808748584563296">Подразумевани наранџасти аватар</translation> <translation id="4955814292505481804">Годишња</translation> <translation id="4957949153200969297">Омогућава само функције повезане са <ph name="IDS_SHORT_PRODUCT_NAME" /> синхронизацијом</translation> +<translation id="4959262764292427323">Лозинке се чувају на Google налогу да бисте могли да их користите на било ком уређају</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">Директоријум који сте изабрали садржи осетљиве датотеке. Јесте ли сигурни да желите да одобрите апликацији „$1“ сталан приступ за читање за овај директоријум?</translation> <translation id="4964455510556214366">Распоред</translation> @@ -2726,6 +2750,7 @@ <translation id="5240817131241497236">Променила су се подешавања која контролишу синхронизацију, персонализацију и друге Google услуге у Chrome-у. То може да утиче на тренутна подешавања.</translation> <translation id="5241128660650683457">Читање свих ваших података на веб-сајтовима које посећујете</translation> <translation id="5242724311594467048">Желите ли да омогућите „<ph name="EXTENSION_NAME" />“?</translation> +<translation id="5243522832766285132">Пробајте поново за неколико тренутака</translation> <translation id="5244474230056479698">Синхронизује се са <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Апликација <ph name="APP_NAME" /> је отказала. Кликните на овај облачић да бисте је поново покренули.</translation> <translation id="5247051749037287028">Име за приказ (опционално)</translation> @@ -2748,6 +2773,7 @@ <translation id="5264148714798105376">Ово ће потрајати минут или два.</translation> <translation id="5264252276333215551">Успоставите везу са интернетом да бисте покренули апликацију у режиму киоска.</translation> <translation id="5265562206369321422">Офлајн дуже од недељу дана</translation> +<translation id="5265797726250773323">Грешка при инсталирању</translation> <translation id="5266113311903163739">Грешка при увозу ауторитета за издавање сертификата</translation> <translation id="5269977353971873915">Штампање није успело</translation> <translation id="5271549068863921519">Сачувај лозинку</translation> @@ -2770,6 +2796,7 @@ <translation id="529175790091471945">Форматирај овај уређај</translation> <translation id="5292195676005197571">Да бисте користили већину кључева, само притисните дугме</translation> <translation id="5293170712604732402">Вратите подешавања на првобитне подразумеване вредности</translation> +<translation id="5297082477358294722">Лозинка је сачувана. Прегледајте сачуване лозинке и управљајте њима на <ph name="SAVED_PASSWORDS_STORE" />.</translation> <translation id="5298219193514155779">Тему је направио/ла</translation> <translation id="5299109548848736476">Не прати</translation> <translation id="5299682071747318445">Сви подаци се шифрују помоћу приступне фразе за синхронизацију</translation> @@ -2998,6 +3025,7 @@ <translation id="5612720917913232150"><ph name="URL" /> жели да користи локацију рачунара</translation> <translation id="5612734644261457353">Жао нам је, још увек није могуће верификовати лозинку. Напомена: Ако сте недавно променили лозинку, нова лозинка биће примењена када се одјавите. Овде користите стару лозинку.</translation> <translation id="5614190747811328134">Обавештење о кориснику</translation> +<translation id="5614553682702429503">Желите ли да сачувате лозинку?</translation> <translation id="561698261642843490">Затворите Firefox</translation> <translation id="5618075537869101857">До ђавола! Није могуће покренути киоск апликацију.</translation> <translation id="5618333180342767515">(ово може да потраје неколико минута)</translation> @@ -3039,6 +3067,7 @@ <translation id="5677503058916217575">Језик странице:</translation> <translation id="5677928146339483299">Блокирано</translation> <translation id="5678550637669481956">Одобрен је приступ за <ph name="VOLUME_NAME" /> ради читања и писања.</translation> +<translation id="5678784840044122290">Linux апликација ће бити доступна на терминалу, а можда ће приказивати и икону у Покретачу.</translation> <translation id="5678955352098267522">Читање ваших података на <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Идентификатор елемента</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Није успео прекид везе са архивским или виртуелним диском<ph name="END_BOLD" /> @@ -3135,6 +3164,7 @@ <translation id="5832805196449965646">Додај особу</translation> <translation id="583281660410589416">Непознато</translation> <translation id="5832976493438355584">Закључано</translation> +<translation id="5833397272224757657">Користи садржај на сајтовима које посећујете, као и активности и интеракције у прегледачу ради персонализације</translation> <translation id="5833610766403489739">Датотека се негде изгубила. Проверите подешавање локације за преузимања и покушајте поново.</translation> <translation id="5833726373896279253">Ова подешавања може да измени само власник:</translation> <translation id="5834581999798853053">Остало је око <ph name="TIME" /> минута</translation> @@ -3188,6 +3218,7 @@ <translation id="5908769186679515905">Блокирај сајтове да не би покретали Flash</translation> <translation id="5910363049092958439">Са&чувај слику као...</translation> <translation id="5911737117543891828">Привремене офлајн датотеке Google диска ће бити избрисане. Датотеке које сте подесили да буду доступне офлајн неће бити избрисане са овог уређаја.</translation> +<translation id="5911887972742538906">Дошло је до грешке током инсталирања Linux апликације.</translation> <translation id="5912378097832178659">&Измени претраживаче...</translation> <translation id="5914724413750400082">Модул (<ph name="MODULUS_NUM_BITS" /> бит(ов)а): <ph name="MODULUS_HEX_DUMP" /> @@ -3374,6 +3405,7 @@ <translation id="6198102561359457428">Одјави ме, па ме поново пријави...</translation> <translation id="6198252989419008588">Промени PIN</translation> <translation id="6199801702437275229">Чекају се информације о простору...</translation> +<translation id="6201792273624501289">Linux апликације</translation> <translation id="6204015976622790023">Погледајте релевантне предлоге Помоћника у вези са оним што је на екрану.</translation> <translation id="6205710420833115353">Неке радње трају дуже од очекиваног. Желите ли да их прекинете?</translation> <translation id="6206311232642889873">Коп&ирај слику</translation> @@ -3849,6 +3881,7 @@ <translation id="6945221475159498467">Изабери</translation> <translation id="694592694773692225">Преусмеравање је блокирано на овој страници.</translation> <translation id="6949306908218145636">Обележи отворене странице...</translation> +<translation id="6950627417367801484">Врати апликације</translation> <translation id="6951153907720526401">Обрађивачи плаћања</translation> <translation id="6955446738988643816">Испитивање искачућег прозора</translation> <translation id="6957231940976260713">Назив услуге</translation> @@ -3974,6 +4007,7 @@ <translation id="7127980134843952133">Историја преузимања</translation> <translation id="7131040479572660648">Читање ваших података на <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> и <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Додај стра&ницу...</translation> +<translation id="7133578150266914903">Администратор враћа овај уређај на ранију верзију (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Умањи текст</translation> <translation id="7136694880210472378">Постави као подразумевано</translation> <translation id="7136984461011502314">Добро дошли у <ph name="PRODUCT_NAME" /></translation> @@ -4174,6 +4208,7 @@ <translation id="7463006580194749499">Додај особу</translation> <translation id="7464490149090366184">Додавање у zip датотеку није успело, ставка постоји: „$1“</translation> <translation id="7465778193084373987">URL за опозив Netscape сертификата</translation> +<translation id="7469406957790636836">Да бисте укључили ово, прво укључите проверу правописа у одељку <ph name="BEGIN_LINK" />Језици и унос<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Аутоматски се повезуј са овом мрежом</translation> <translation id="747114903913869239">Грешка: Није могуће дешифровати додатак</translation> <translation id="7473753388963818366">Хајде да подесимо <ph name="DEVICE_TYPE" /> за вас</translation> @@ -4271,6 +4306,7 @@ <translation id="7606992457248886637">Ауторитети за сертификате</translation> <translation id="7607002721634913082">Паузирано</translation> <translation id="7607274158153386860">Захтевај сајт таблета</translation> +<translation id="7609148976235050828">Повежите се на интернет и пробајте поново.</translation> <translation id="7611008212562900400">Претражите уређај, апликације, веб...</translation> <translation id="7616214729753637086">Уређај се региструје...</translation> <translation id="7617366389578322136">Повезује се са уређајем „<ph name="DEVICE_NAME" />“</translation> @@ -4339,6 +4375,7 @@ <translation id="7730449930968088409">Снимање садржаја екрана</translation> <translation id="7730494089396812859">Прикажите детаље о прављењу резервних копија у клауду</translation> <translation id="7732111077498238432">Мрежу контролишу смернице</translation> +<translation id="7737238973539693982">Избришите Linux (бета)</translation> <translation id="773905249182896430">Штити вас и уређај од опасних сајтова</translation> <translation id="7740996059027112821">Стандардно</translation> <translation id="7748528009589593815">Претходна картица</translation> @@ -4527,6 +4564,7 @@ <translation id="7974936243149753750">Ивично подручје екрана</translation> <translation id="7977551819349545646">Ажурира се Chromebox...</translation> <translation id="7978412674231730200">Приватни кључ</translation> +<translation id="7978450511781612192">Овим ћете се одјавити са Google налога. Обележивачи, историја, лозинке и додатни садржај се више неће синхронизовати.</translation> <translation id="7979036127916589816">Грешка у синхронизацији</translation> <translation id="7980084013673500153">ИД елемента: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Странице се учитавају унапред ради бржег прегледања и претраживања</translation> @@ -4691,6 +4729,7 @@ <translation id="8226619461731305576">Ред</translation> <translation id="8226742006292257240">У наставку је насумично генерисана TPM лозинка која је додељена рачунару:</translation> <translation id="8227119283605456246">Приложи датотеку</translation> +<translation id="8230134520748321204">Желите ли да сачувате лозинку за <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Помозите нашим инжењерима да реше проблем. Реците нам шта се догодило непосредно пре него што сте добили поруку о грешци на профилу:</translation> <translation id="8234989666557591529">Одаберите телефон да бисте откључали <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Синхронизуј као <ph name="FULL_NAME" /></translation> @@ -4809,6 +4848,7 @@ <translation id="8438328416656800239">Пређите на паметан прегледач</translation> <translation id="8438566539970814960">Побољшај претраге и прегледање</translation> <translation id="8439506636278576865">Понуди превод страница на овом језику</translation> +<translation id="8440630305826533614">Linux апликације</translation> <translation id="8446884382197647889">Сазнајте више</translation> <translation id="8447409163267621480">Користите или Ctrl или Alt</translation> <translation id="8448729345478502352">Увећајте или умањите ставке на екрану</translation> @@ -4853,6 +4893,7 @@ <translation id="8497219075884839166">Windows услужни програми</translation> <translation id="8498214519255567734">Омогућава да лакше прегледате садржај екрана или да читате при пригушеном светлу</translation> <translation id="8498395510292172881">Наставите да читате у Chrome-у</translation> +<translation id="8502536196501630039">Да бисте користили апликације са Google Play-а, прво морате да вратите апликације. Неки подаци су можда изгубљени.</translation> <translation id="8503813439785031346">Корисничко име</translation> <translation id="850875081535031620">Није пронађен никакав штетан софтвер</translation> <translation id="8509646642152301857">Преузимање речника за проверу правописа није успело.</translation> @@ -4982,6 +5023,7 @@ <translation id="8698464937041809063">Google цртеж</translation> <translation id="869884720829132584">Мени апликација</translation> <translation id="869891660844655955">Датум истека</translation> +<translation id="8699566574894671540">Да бисте укључили ово, прво изаберите Check Spelling While Typing (Проверавај правопис током куцања) у менију Edit (Измена)</translation> <translation id="870073306461175568">Дељења датотека на мрежи</translation> <translation id="8701677791353449257">Име уређаја мора да се подудара са регуларним изразом <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Ово траје много дуже него што би требало. Можете да наставите да чекате или да откажете радњу и покушате поново.</translation> @@ -5021,6 +5063,7 @@ <p>Али и даље можете да конфигуришете преко командне линије. Погледајте <code>man <ph name="PRODUCT_BINARY_NAME" /></code> за више информација о обележјима и променљивама окружења.</p></translation> <translation id="8755376271068075440">&Веће</translation> +<translation id="8756969031206844760">Желите ли да ажурирате лозинку?</translation> <translation id="8757090071857742562">Није успело пребацивање радне површине. Проверите да ли сте потврдили упит за почетак дељења екрана.</translation> <translation id="8757640015637159332">Уђите у јавну сесију</translation> <translation id="8757742102600829832">Изаберите Chromebox са којим желите да се повежете</translation> @@ -5177,7 +5220,9 @@ <translation id="9009369504041480176">Отпремање (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Увек приказуј икону</translation> <translation id="9011178328451474963">Последња картица</translation> +<translation id="9013707997379828817">Администратор је вратио овај уређај на ранију верзију. Сачувајте важне датотеке, па рестартујте. Сви подаци на уређају ће бити избрисани.</translation> <translation id="9014987600015527693">Прикажи други телефон</translation> +<translation id="9018218886431812662">Инсталација је завршена</translation> <translation id="901834265349196618">имејл</translation> <translation id="9019062154811256702">Читање и мењање подешавања Аутоматског попуњавања</translation> <translation id="9020362265352758658">4x</translation> @@ -5201,6 +5246,7 @@ <translation id="9038649477754266430">Користите услугу предвиђања да бисте брже учитавали странице</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Искључи звук картица</translation> +<translation id="9040661932550800571">Желите ли да ажурирате лозинку за <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Администратор је онемогућио приступ локалним датотекама на рачунару</translation> <translation id="9042893549633094279">Приватност и безбедност</translation> <translation id="904451693890288097">Унесите приступни кôд за „<ph name="DEVICE_NAME" />“:</translation> @@ -5305,6 +5351,7 @@ <translation id="9203478404496196495">Укључи звук картице</translation> <translation id="9203904171912129171">Изаберите уређај</translation> <translation id="9203962528777363226">Администратор овог уређаја је онемогућио додавање нових корисника</translation> +<translation id="9213073329713032541">Инсталација је започета.</translation> <translation id="9214520840402538427">Упс! Време покретања атрибута за време инсталације је истекло. Контактирајте представника подршке.</translation> <translation id="9214695392875603905">Мафин</translation> <translation id="9215293857209265904">Додат је „<ph name="EXTENSION_NAME" />“</translation> @@ -5359,6 +5406,7 @@ <translation id="988978206646512040">Поље за приступну фразу не може да буде празно</translation> <translation id="992032470292211616">Додаци, апликације и теме могу да нашкоде уређају. Желите ли стварно да наставите?</translation> <translation id="992592832486024913">Онемогући ChromeVox (говорне повратне информације)</translation> +<translation id="993540765962421562">Инсталација је у току</translation> <translation id="994289308992179865">&Понављај</translation> <translation id="996250603853062861">Успостављање безбедне везе...</translation> <translation id="998747458861718449">П&регледај</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb index 92d64741..03dbfa5 100644 --- a/chrome/app/resources/generated_resources_te.xtb +++ b/chrome/app/resources/generated_resources_te.xtb
@@ -296,6 +296,7 @@ <translation id="1433811987160647649">ప్రాప్యత చేసే ముందు అడగాలి</translation> <translation id="1434696352799406980">దీని వలన మీ ప్రారంభ పేజీ, కొత్త ట్యాబ్ పేజీ, శోధన ఇంజిన్ మరియు పిన్ చేసిన ట్యాబ్లు రీసెట్ చేయబడతాయి. ఇది అన్ని పొడిగింపులను కూడా నిలిపివేస్తుంది మరియు కుక్కీల వంటి తాత్కాలిక డేటాను తీసివేస్తుంది. మీ బుక్మార్క్లు, చరిత్ర మరియు సేవ్ చేసిన పాస్వర్డ్లు తీసివేయబడవు.</translation> <translation id="1434886155212424586">హోమ్పేజీ అనేది కొత్త ట్యాబ్ పేజీ</translation> +<translation id="1436671784520050284">సెటప్ని కొనసాగించు</translation> <translation id="1436784010935106834">తీసివేయబడింది</translation> <translation id="1438632560381091872">ట్యాబ్లను అన్మ్యూట్ చేయి</translation> <translation id="1442392616396121389">రూటింగ్ ఆదిప్రత్యయం</translation> @@ -315,6 +316,7 @@ <translation id="1465827627707997754">పిజ్జా ముక్క</translation> <translation id="1467432559032391204">ఎడమ</translation> <translation id="1468571364034902819">ఈ ప్రొఫైల్ను ఉపయోగించలేరు</translation> +<translation id="1470533772306424441">మేము మీ కోసం ఆ యాప్లను ఇన్స్టాల్ చేస్తాము. మీ పరికరం కోసం Play స్టోర్కి వెళ్లి మరిన్ని యాప్లను కనుగొనవచ్చు.</translation> <translation id="1470811252759861213">మీ అన్ని కంప్యూటర్ల్లో మీ పొడిగింపులను పొందడానికి, <ph name="SIGN_IN_LINK" />.</translation> <translation id="1474339897586437869">"<ph name="FILENAME" />" అప్లోడ్ కాలేదు. మీ Google డిస్క్లో తగినంత ఖాళీ స్థలం లేదు.</translation> <translation id="1475502736924165259">మీకు ఫైల్లో మరే ఇతర వర్గంలోనూ సరిపోని ప్రమాణపత్రాలు ఉన్నాయి</translation> @@ -786,6 +788,7 @@ <translation id="2192505247865591433">నుండి:</translation> <translation id="2193365732679659387">విశ్వసనీయత సెట్టింగ్లు</translation> <translation id="2195729137168608510">ఇమెయిల్ రక్షణ</translation> +<translation id="2199298570273670671">ఎర్రర్</translation> <translation id="2200356397587687044">కొనసాగడానికి Chromeకి అనుమతి అవసరం</translation> <translation id="220138918934036434">బటన్ని దాచిపెట్టు</translation> <translation id="2202898655984161076">ముద్రణలను జాబితా చెయ్యడంలో సమస్య ఉంది. <ph name="CLOUD_PRINT_NAME" />తో మీ ముద్రణలలో కొన్ని విజయవంతంగా నమోదు చెయ్యబడకపోయి ఉండవచ్చు.</translation> @@ -936,6 +939,7 @@ <translation id="2440604414813129000">&సోర్స్ను చూడండి</translation> <translation id="2445081178310039857">పొడిగింపు మూలం డైరెక్టరీ అవసరం.</translation> <translation id="2445484935443597917">కొత్త ప్రొఫైల్ని సృష్టించు</translation> +<translation id="2446585455334014596">మీ గుర్తింపుని ధృవీకరించాలని <ph name="APP_NAME" /> కోరుతోంది</translation> <translation id="2448312741937722512">రకం</translation> <translation id="2450223707519584812">Google API కీలు లేనందున మీరు వినియోగదారులను జోడించలేరు. వివరాల కోసం <ph name="DETAILS_URL" /> చూడండి.</translation> <translation id="2450310832094867474">సమకాలీకరణను ఆఫ్ చేసి, సైన్ అవుట్ చేయాలా?</translation> @@ -945,6 +949,7 @@ <translation id="2453576648990281505">ఫైల్ ఇప్పటికే ఉంది</translation> <translation id="2453860139492968684">ముగించు</translation> <translation id="2454247629720664989">కీలకపదం</translation> +<translation id="245661998428026871">చిత్రంలో చిత్రం మోడ్లో ఉన్న వీడియో ప్లే అవ్వడం ఆగిపోతుంది.</translation> <translation id="2457246892030921239"><ph name="APP_NAME" /> <ph name="VOLUME_NAME" /> నుండి ఫైల్లను కాపీ చేయాలనుకుంటోంది.</translation> <translation id="2462724976360937186">ప్రమాణపత్రం అధికార కీ ID</translation> <translation id="2462752602710430187"><ph name="PRINTER_NAME" /> జోడించబడింది</translation> @@ -1347,6 +1352,7 @@ <translation id="304826556400666995">ట్యాబ్లను అన్మ్యూట్ చేయండి</translation> <translation id="3053013834507634016">సర్టిఫికెట్ కీ ఉపయోగం</translation> <translation id="3057861065630527966">మీ ఫోటోలను మరియు వీడియోలను బ్యాకప్ చేయండి</translation> +<translation id="3059313675706898490">Android సందేశాలు</translation> <translation id="3060379269883947824">వినడానికి-ఎంచుకోండిని ప్రారంభించు</translation> <translation id="3061707000357573562">ప్యాచ్ సేవ</translation> <translation id="3064410671692449875">తగినంత డేటా లేదు</translation> @@ -1394,6 +1400,7 @@ <translation id="313205617302240621">పాస్వర్డ్ను మర్చిపోయారా?</translation> <translation id="3132996321662585180">ప్రతిరోజూ రిఫ్రెష్ చేయండి</translation> <translation id="3135204511829026971">స్క్రీన్ను భ్రమింపజేయండి</translation> +<translation id="313638818480447860">ఈ పరికరానికి అనుకూలీకరించి మీ ఖాతాకు కనెక్ట్ చేసిన <ph name="NUMBER_OF_APPS" /> యాప్లను మేము కనుగొన్నాము.</translation> <translation id="313963229645891001">డౌన్లోడ్ చేస్తోంది, <ph name="STATUS" /></translation> <translation id="3139925690611372679">డిఫాల్ట్ పసుపు రంగు అవతార్</translation> <translation id="3140353188828248647">ఫోకస్ చిరునామా బార్</translation> @@ -1424,6 +1431,7 @@ <translation id="3182749001423093222">అక్షరక్రమ తనిఖీ</translation> <translation id="3183139917765991655">ప్రొఫైల్ ఇంపోర్టర్</translation> <translation id="3184560914950696195">$1కు సేవ్ చేయడం సాధ్యపడదు. సవరించిన చిత్రాలు డౌన్లోడ్ల ఫోల్డర్లో సేవ్ చేయబడతాయి.</translation> +<translation id="3188257591659621405">నా ఫైల్లు</translation> <translation id="3188465121994729530">తరలించే సగటు</translation> <translation id="3190558889382726167">పాస్వర్డ్ సేవ్ చేయబడింది</translation> <translation id="3192947282887913208">ఆడియో ఫైళ్ళు</translation> @@ -1511,6 +1519,7 @@ <translation id="3326821416087822643"><ph name="FILE_NAME" />ను జిప్ చేస్తోంది...</translation> <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation> <translation id="3331974543021145906">అనువర్తన సమాచారం</translation> +<translation id="3334632933872291866"><ph name="WINDOW_TITLE" /> - చిత్రంలో చిత్రం మోడ్లో వీడియో ప్లే అవుతోంది</translation> <translation id="3335337277364016868">రికార్డ్ చేసిన సంవత్సరం</translation> <translation id="3335947283844343239">మూసిన ట్యాబ్ను మళ్ళీ తెరువు</translation> <translation id="3336664756920573711">మీ <ph name="DEVICE_TYPE" />ను Android ఫోన్తో అన్లాక్ చేయండి</translation> @@ -1530,6 +1539,7 @@ <translation id="3360297538363969800">ముద్రణ విఫలమైంది. దయచేసి మీ ప్రింటర్ను తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.</translation> <translation id="3364721542077212959">స్టైలస్ సాధనాలు</translation> <translation id="3365598184818502391">Ctrl లేదా Altను ఉపయోగించండి</translation> +<translation id="3367047597842238025">మీ <ph name="DEVICE_TYPE" />ను మీకు నచ్చిన విధంగా సెటప్ చేసుకొని కోరుకున్న నైపుణ్యాలను క్షణాలలో చేజిక్కించుకోవచ్చు</translation> <translation id="3368922792935385530">కనెక్ట్ అయింది</translation> <translation id="3369624026883419694">హోస్ట్ను పరిష్కరిస్తోంది...</translation> <translation id="337286756654493126">మీరు అనువర్తనంలో తెరిచే ఫోల్డర్లను చదవండి</translation> @@ -1543,6 +1553,7 @@ <translation id="3389312115541230716">విధి పట్టీలో <ph name="SMALL_PRODUCT_LOGO" /> చిహ్నాన్ని కుడి క్లిక్ చేయండి</translation> <translation id="3391716558283801616">ట్యాబ్ 7</translation> <translation id="3396331542604645348">ఎంచుకున్న ముద్రకం అందుబాటులో లేదు లేదా సరిగ్గా వ్యవస్థాపించబడలేదు. మీ ముద్రకాన్ని తనిఖీ చేయండి లేదా మరొక ముద్రకాన్ని ఎంచుకోవడానికి ప్రయత్నించండి.</translation> +<translation id="3396800784455899911">"నేను అంగీకరిస్తున్నాను" బటన్ని క్లిక్ చేయడం ద్వారా, ఈ Google సేవల కోసం ఎగువ పేర్కొన్న వాటిని ప్రాసెస్ చేయడానికి మీరు అంగీకరిస్తున్నారు.</translation> <translation id="3399432415385675819">నోటిఫికేషన్లు నిలిపివేయబడతాయి</translation> <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation> <translation id="3404065873681873169">ఈ సైట్ కోసం పాస్వర్డ్లు సేవ్ చేయబడలేదు</translation> @@ -1771,10 +1782,13 @@ <translation id="3726463242007121105">పరికరం తెరవడం సాధ్యం కాదు ఎందుకంటే దాని ఫైల్సిస్టమ్కు మద్దతు లేదు.</translation> <translation id="3727148787322499904">ఈ సెట్టింగ్ను మార్చడం వలన అన్ని భాగస్వామ్య నెట్వర్క్లు ప్రభావితం అవుతాయి</translation> <translation id="3727187387656390258">పాప్అప్ను పర్యవేక్షించు</translation> +<translation id="3729506734996624908">అనుమతించబడిన సైట్లు</translation> <translation id="3732078975418297900">పంక్తి <ph name="ERROR_LINE" />లో ఎర్రర్ ఉంది</translation> <translation id="3733127536501031542">దశ-పైకితో SSL సర్వర్</translation> +<translation id="3735740477244556633">ఇలా క్రమబద్ధీకరించండి</translation> <translation id="3737274407993947948">Linuxను ఇన్స్టాల్ చేయడంలో ఎర్రర్...</translation> <translation id="3737536731758327622">మీ డౌన్లోడ్లు ఇక్కడ కనిపిస్తాయి</translation> +<translation id="3738671331307774213">మీ గుర్తింపును ధృవీకరించడం ద్వారా మీ వ్యక్తిగత సమాచారాన్ని భద్రంగా కాపాడుకోవచ్చు</translation> <translation id="3738924763801731196"><ph name="OID" />:</translation> <translation id="3739254215541673094"><ph name="APPLICATION" />ని తెరవాలా?</translation> <translation id="3741158646617793859"><ph name="DEVICE_NAME" /> ఇప్పుడు నిర్వాహక కన్సోల్లో కనిపిస్తుంది</translation> @@ -1858,6 +1872,7 @@ <translation id="3842552989725514455">Serif ఫాంట్</translation> <translation id="385051799172605136">వెనుకకు</translation> <translation id="3851428669031642514">అసురక్షిత స్క్రిప్ట్లను లోడ్ చేయి</translation> +<translation id="3854599674806204102">ఒక ఎంపికను ఎంచుకోండి</translation> <translation id="3855441664322950881">ప్యాక్ పొడిగింపు</translation> <translation id="3855676282923585394">బుక్మార్క్లు మరియు సెట్టింగ్లను దిగుమతి చెయ్యి...</translation> <translation id="3856800405688283469">సమయ మండలిని ఎంచుకోండి</translation> @@ -2568,6 +2583,7 @@ <translation id="5027562294707732951">పొడిగింపుని జోడించు</translation> <translation id="5029568752722684782">కాపీని తీసివేయి</translation> <translation id="5030338702439866405">వీరిచే జారీచేయబడింది</translation> +<translation id="503155457707535043">యాప్లు డౌన్లోడ్ చేయబడుతున్నాయి</translation> <translation id="503498442187459473"><ph name="HOST" /> మీ కెమెరాను మరియు మైక్రోఫోన్ను ఉపయోగించాలనుకుంటోంది</translation> <translation id="5036662165765606524">బహుళ ఫైల్లను స్వయంచాలకంగా డౌన్లోడ్ చేయడానికి ఏ సైట్ను అనుమతించవద్దు</translation> <translation id="5037676449506322593">అన్నీ ఎంచుకోండి</translation> @@ -3080,6 +3096,7 @@ <translation id="57838592816432529">మ్యూట్ చేయి</translation> <translation id="5785583009707899920">Chrome ఫైల్ వినియోగాలు</translation> <translation id="5787146423283493983">కీ ఒప్పందాలు</translation> +<translation id="5788127256798019331">Play ఫైల్లు</translation> <translation id="5788367137662787332">క్షమించండి, పరికరం <ph name="DEVICE_LABEL" /> లో కనీసం ఒక విభజన కూడా ఉంచబడదు.</translation> <translation id="5794414402486823030">ఎల్లప్పుడూ సిస్టమ్ వ్యూయర్తో తెరువు</translation> <translation id="5794786537412027208">అన్ని Chrome అనువర్తనాల నుండి నిష్క్రమించు</translation> @@ -3328,6 +3345,7 @@ <translation id="6178664161104547336">ఒక సర్టిఫికెట్ని ఎంచుకోండి</translation> <translation id="6181431612547969857">డౌన్లోడ్ బ్లాక్ చేయబడింది</translation> <translation id="6185132558746749656">పరికర స్థానం</translation> +<translation id="6185617499004995178">CUPS IPP వాలిడేటర్</translation> <translation id="6185696379715117369">ఎగువ పేజీకి వెళ్లుతుంది</translation> <translation id="6189273858858366896">నెట్వర్క్ ఫైల్ షేర్లను సెటప్ చేయండి లేదా నిర్వహించండి.</translation> <translation id="6189412234224385711"><ph name="EXTENSION_NAME" />తో తెరవండి</translation> @@ -3360,6 +3378,7 @@ <translation id="6231881193380278751">పేజీని స్వయంచాలకంగా రిఫ్రెష్ చేయడానికి URLలో ప్రశ్న పరామితిని జోడించండి: chrome://device-log/?refresh=<sec></translation> <translation id="6232017090690406397">బ్యాటరీ</translation> <translation id="6232116551750539448"><ph name="NAME" />కి కనెక్షన్ కోల్పోయింది</translation> +<translation id="6235700927623181151">ఈ టాబ్ మీ డెస్క్టాప్ కంటెంట్ను షేర్ చేస్తోంది.</translation> <translation id="6237816943013845465">మీ స్క్రీన్ రిజల్యూషన్ను సర్దుబాటు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation> <translation id="6238923052227198598">లాక్ స్క్రీన్పై తాజా గమనికను ఉంచండి</translation> <translation id="6239558157302047471">&ఫ్రేమ్ మళ్లీ లోడ్ చేయి</translation> @@ -3503,6 +3522,7 @@ <translation id="6451180435462401570">క్లౌడ్ ముద్రణ పరికరాలను నిర్వహించు</translation> <translation id="6451689256222386810">మీరు మీ రహస్య పదబంధాన్ని మర్చిపోతే లేదా ఈ సెట్టింగ్ను మార్చాలనుకుంటే, <ph name="BEGIN_LINK" />సమకాలీకరణను రీసెట్ చేయండి<ph name="END_LINK" />.</translation> <translation id="6452181791372256707">తిరస్కరించు</translation> +<translation id="6455264371803474013">కొన్ని ముఖ్యమైన సైట్లలో మాత్రమే</translation> <translation id="6455894534188563617">&కొత్త ఫోల్డర్</translation> <translation id="6456394469623773452">శ్రేష్టమైనది</translation> <translation id="6456631036739229488">Smart Lock ఫోన్ మారింది. Smart Lockను అప్డేట్ చేయడానికి మీ పాస్వర్డ్ను నమోదు చేయండి. తదుపరిసారి, మీ ఫోన్ మీ <ph name="DEVICE_TYPE" />ను అన్లాక్ చేస్తుంది. సెట్టింగ్లలో Smart Lockని ఆఫ్ చేయండి.</translation> @@ -3580,6 +3600,7 @@ <translation id="657402800789773160">ఈ పేజీని &రీలోడ్ చెయ్యి</translation> <translation id="6577284282025554716">డౌన్లోడ్ రద్దు చేయబడింది: <ph name="FILE_NAME" /></translation> <translation id="6578664922716508575">మీ Google వినియోగదారు పేరు మరియు పాస్వర్డ్తో సమకాలీకరించిన పాస్వర్డ్లను గుప్తీకరించండి</translation> +<translation id="6579705087617859690"><ph name="WINDOW_TITLE" /> - డెస్క్టాప్ కంటెంట్ షేర్ చేయబడింది</translation> <translation id="6580151766480067746">ARC సంస్కరణ</translation> <translation id="6581162200855843583">Google డిస్క్ లింక్</translation> <translation id="6582421931165117398">మీ వ్యక్తిగత సమాచారాన్ని రక్షించుకోవడానికి, ఇప్పుడే మీ పాస్వర్డ్ను మార్చండి. మీరు మీ పాస్వర్డ్ను మార్చబోయే ముందు, మీరు సైన్ ఇన్ చేయాల్సిందిగా ఆదేశించబడతారు.</translation> @@ -4045,6 +4066,7 @@ <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Chrome సరిగ్గా పని చేయకుండా ఈ అప్లికేషన్ నివారించవచ్చు.}other{Chrome సరిగ్గా పని చేయకుండా ఈ అప్లికేషన్లు నివారించవచ్చు.}}</translation> <translation id="7303900363563182677">క్లిప్బోర్డ్కు కాపీ చేసిన వచనం మరియు చిత్రాలను చూడనీయకుండా ఈ సైట్ బ్లాక్ చేయబడింది</translation> <translation id="730515362922783851">స్థానిక నెట్వర్క్ లేదా ఇంటర్నెట్లో ఏ పరికరంతోనైనా డేటాను ఇచ్చిపుచ్చుకోవడానికి అనుమతి</translation> +<translation id="7307129035224081534">పాజ్ చేయబడింది</translation> <translation id="7308002049209013926">కొత్త యాప్లు మరియు కార్యకలాపాలకు త్వరగా వెళ్లడం కోసం లాంచర్ని ఉపయోగించండి. కీబోర్డ్ ద్వారా ఇక్కడికి రావాలాంటే, Alt + Shift + Lని నొక్కండి.</translation> <translation id="7309257895202129721">&నియంత్రణలను చూపించు</translation> <translation id="7310598146671372464">లాగిన్ చేయడం విఫలమైంది. పేర్కొనబడిన Kerberos ఎన్క్రిప్షన్ రకాలకు ఈ సర్వర్ మద్దతు ఇవ్వదు. దయచేసి మీ నిర్వాహకుడిని సంప్రదించండి.</translation> @@ -4133,6 +4155,7 @@ <translation id="7465778193084373987">Netscape సర్టిఫికెట్ రద్దు URL</translation> <translation id="7469894403370665791">స్వయంచాలకంగా ఈ నెట్వర్క్కి కనెక్ట్ చెయ్యి</translation> <translation id="747114903913869239">లోపం: పొడిగింపులను డీకోడ్ చేయడం సాధ్యం కాదు</translation> +<translation id="7473753388963818366">మీ కోసం సిద్ధంగా ఉన్న మీ <ph name="DEVICE_TYPE" />ని పొందండి</translation> <translation id="7473891865547856676">వద్దు, ధన్యవాదాలు</translation> <translation id="747459581954555080">అన్నీ పునరుద్ధరించు</translation> <translation id="7475671414023905704">Netscape తప్పిపోయిన పాస్వర్డ్ URL</translation> @@ -4257,6 +4280,7 @@ <translation id="7665369617277396874">ఖాతాను జోడించండి</translation> <translation id="7671130400130574146">సిస్టమ్ శీర్షిక బార్ మరియు హద్దులను ఉపయోగించు</translation> <translation id="7672520070349703697"><ph name="HUNG_IFRAME_URL" />, <ph name="PAGE_TITLE" />లో.</translation> +<translation id="7676867886086876795">మీరు రాయాలనుకునేది Googleకి చెబితే చాలు వెంటనే వచన రూపంలోకి మారుస్తుంది.</translation> <translation id="7681095912841365527">సైట్ బ్లూటూత్ని ఉపయోగించవచ్చు</translation> <translation id="7683373461016844951">కొనసాగించాలంటే, సరే క్లిక్ చేసి, ఆపై మీ <ph name="DOMAIN" /> ఇమెయిల్ చిరునామా కోసం కొత్త ప్రొఫైల్ను సృష్టించడానికి వ్యక్తిని జోడించు క్లిక్ చేయండి.</translation> <translation id="7684212569183643648">మీ నిర్వాహకుడు ఇన్స్టాల్ చేసారు</translation> @@ -4297,6 +4321,7 @@ <translation id="7740996059027112821">ప్రామాణికం</translation> <translation id="7748528009589593815">మునుపటి ట్యాబ్</translation> <translation id="7748626145866214022">చర్య బార్లో మరిన్ని ఎంపికలు అందుబాటులో ఉంటాయి. చర్య బార్పై దృష్టి పెట్టడం కోసం Alt + A నొక్కండి.</translation> +<translation id="7750228210027921155">చిత్రంలో చిత్రం</translation> <translation id="7751260505918304024">అన్నీ చూపించు</translation> <translation id="7754704193130578113">ప్రతి ఫైల్ను డౌన్లోడ్ చేసే ముందు ఎక్కడ సేవ్ చెయ్యాలో అడుగు</translation> <translation id="7758143121000533418">Family Link</translation> @@ -4403,6 +4428,7 @@ <translation id="7857949311770343000">మీరు ఆశిస్తున్న కొత్త ట్యాబ్ పేజీ ఇదేనా?</translation> <translation id="786073089922909430">సేవ: <ph name="ARC_PROCESS_NAME" /></translation> <translation id="7861215335140947162">&డౌన్లోడ్లు</translation> +<translation id="7868378670806575181">{NUM_COOKIES,plural, =1{1 కుక్కీ}other{# కుక్కీలు}}</translation> <translation id="786957569166715433"><ph name="DEVICE_NAME" /> - జత చేయబడింది</translation> <translation id="7870730066603611552">సెటప్ చేసిన తర్వాత సమకాలీకరణ ఎంపికలను సమీక్షించండి</translation> <translation id="7870790288828963061">సరికొత్త సంస్కరణ అందుబాటులో ఉన్న కియోస్క్ అనువర్తనాలేవీ కనుగొనబడలేదు. నవీకరించడానికి ఏదీ లేదు. దయచేసి USB స్టిక్ను తీసివేయండి.</translation> @@ -4718,6 +4744,7 @@ <translation id="8373553483208508744">ట్యాబ్లను మ్యూట్ చేయి</translation> <translation id="8382913212082956454">&ఇమెయిల్ చిరునామాను కాపీ చెయ్యి</translation> <translation id="8386903983509584791">స్కాన్ పూర్తయింది</translation> +<translation id="8389492867173948260">మీరు సందర్శించే వెబ్సైట్లలో ఉన్న మీ డేటా మొత్తాన్ని చదవడం లేదా మార్చడం కోసం ఈ ఎక్స్టెన్షన్ను అనుమతించండి:</translation> <translation id="8390449457866780408">సర్వర్ అందుబాటులో లేదు.</translation> <translation id="8391712576156218334">చిత్రం అందుబాటులో లేదు. తర్వాత మళ్లీ ప్రయత్నించండి.</translation> <translation id="8392234662362215700">కీబోర్డ్ లేఅవుట్ను మార్చడానికి Control-Shift-Space నొక్కండి.</translation> @@ -4749,6 +4776,7 @@ <translation id="84297032718407999">మీరు <ph name="LOGOUT_TIME_LEFT" />లో సైన్ అవుట్ అవుతారు</translation> <translation id="8431909052837336408">SIM PINను మార్చండి</translation> <translation id="8434480141477525001">NaCl డీబగ్ పోర్ట్</translation> +<translation id="8435395510592618362"><ph name="APP_NAME" /> ద్వారా మీ గుర్తింపుని ధృవీకరించండి</translation> <translation id="843760761634048214">క్రెడిట్ కార్డ్ను సేవ్ చేయి</translation> <translation id="8438328416656800239">స్మార్ట్ బ్రౌజర్కు మారండి</translation> <translation id="8439506636278576865">ఈ భాషలో పేజీలకు అనువాదం అందించు</translation> @@ -4774,6 +4802,7 @@ <translation id="8465252176946159372">చెల్లదు</translation> <translation id="8465444703385715657">అమలు చేయడానికి <ph name="PLUGIN_NAME" />కి మీ అనుమతి అవసరం</translation> <translation id="8466234950814670489">Tar ఆర్కైవ్</translation> +<translation id="8466417995783206254">ఈ ట్యాబ్ వీడియోను చిత్రంలో చిత్రం మోడ్లో ప్లే చేస్తోంది.</translation> <translation id="8468750959626135884">మీ Android ఫోన్తో మీ <ph name="DEVICE_TYPE" />ని అన్లాక్ చేయండి.</translation> <translation id="8470028084415844044">మీ పరికరాలన్నింటిలో మీ అన్ని పాస్వర్డ్లను పొందడానికి, సింక్ను ఆన్ చేయండి.</translation> <translation id="8470513973197838199"><ph name="ORIGIN" /> కోసం సేవ్ చేసిన పాస్వర్డ్లు</translation> @@ -4794,6 +4823,7 @@ <translation id="8496717697661868878">ఈ ప్లగ్ఇన్ని అమలు చెయ్యి</translation> <translation id="8497219075884839166">Windows వినియోగాలు</translation> <translation id="8498214519255567734">కాంతి తక్కువగా ఉన్నప్పుడు మీ స్క్రీన్ని చూడటం లేదా చదవడాన్ని సులభతరం చేస్తుంది</translation> +<translation id="8498395510292172881">Chromeలో చదవడం కొనసాగించండి</translation> <translation id="8503813439785031346">యూజర్పేరు</translation> <translation id="850875081535031620">హానికరమైన సాఫ్ట్వేర్ కనుగొనబడలేదు</translation> <translation id="8509646642152301857">అక్షరక్రమ తనిఖీ నిఘంటువును డౌన్లోడ్ చేయడం విఫలమైంది.</translation> @@ -5133,6 +5163,7 @@ <translation id="9027459031423301635">లింక్ను క్రొత్త &టాబ్లో తెరువు</translation> <translation id="9030515284705930323">మీ సంస్థ మీ ఖాతా కోసం Google Play స్టోర్ని ప్రారంభించలేదు. మరింత సమాచారం కోసం మీ నిర్వాహకులను సంప్రదించండి.</translation> <translation id="9033857511263905942">&అతికించు</translation> +<translation id="9034924485347205037">Linux ఫైల్లు</translation> <translation id="9035012421917565900">ఈ అంశాలను '<ph name="DESTINATION_NAME" />'లోకి తిరిగి తరలించడం సాధ్యపడదు, కనుక మీరు ఈ చర్యను రద్దు చేయలేరు.</translation> <translation id="9037008143807155145">https://www.google.com/calendar/render?cid=%s</translation> <translation id="9037965129289936994">అసలైనది చూపు</translation> @@ -5233,6 +5264,7 @@ <translation id="9173995187295789444">బ్లూటూత్ పరికరాల కోసం స్కాన్ చేస్తోంది...</translation> <translation id="9176611096776448349"><ph name="WINDOW_TITLE" /> - బ్లూటూత్ పరికరం కనెక్ట్ చేయబడింది</translation> <translation id="9177499212658576372">మీరు ప్రస్తుతానికి <ph name="NETWORK_TYPE" /> నెట్వర్క్కు కనెక్ట్ చేయబడ్డారు.</translation> +<translation id="9179734824669616955">మీ <ph name="DEVICE_TYPE" />లో Linux (బీటా)ను సెటప్ చేయండి</translation> <translation id="9180281769944411366">ఈ ప్రాసెస్కు కొన్ని నిమిషాలు పట్టవచ్చు. Linux కంటైనర్ ప్రారంభం అవుతోంది.</translation> <translation id="9180380851667544951">సైట్ మీ స్క్రీన్ని షేర్ చేయవచ్చు</translation> <translation id="9188441292293901223">దయచేసి ఈ <ph name="DEVICE_TYPE" />ని అన్లాక్ చేయడానికి మీ ఫోన్ను Android తాజా సంస్కరణకు నవీకరించండి.</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb index 6550d41..cb31973d 100644 --- a/chrome/app/resources/generated_resources_tr.xtb +++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -96,7 +96,7 @@ <translation id="1145292499998999162">Eklenti engellendi</translation> <translation id="1145532888383813076">Cihazınızda, uygulamalarda, web'de arama yapın.</translation> <translation id="1146204723345436916">Yeri işaretlerini HTML dosyasından içe aktar...</translation> -<translation id="114721135501989771">Chrome'da Google'ın akıllı yaklaşımını elde edin</translation> +<translation id="114721135501989771">Google zekası Chrome'da</translation> <translation id="1148097584170732637"><ph name="FILE_COUNT" /> bulundu. <ph name="LINE_BREAK1" /> Yerel depolama alanında yeterli boş alan yok. İlave <ph name="FILE_SIZE" /> boş alan gerek.
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb index 8b33cec..8d60d30 100644 --- a/chrome/app/resources/generated_resources_uk.xtb +++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -222,6 +222,7 @@ <translation id="1316136264406804862">Пошук...</translation> <translation id="1316495628809031177">Синхронізацію призупинено</translation> <translation id="1319979322914001937">Додаток, який показує відфільтрований список розширень із Веб-магазину Chrome. Розширення в цьому списку може встановлювати прямо з додатка.</translation> +<translation id="1322046419516468189">Переглядайте збережені паролі й керуйте ними на сторінці <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="1326317727527857210">Щоб мати доступ до вкладок з інших пристроїв, увійдіть в обліковий запис Chrome.</translation> <translation id="1327074568633507428">Принтер у Google Cloud Print</translation> <translation id="1327977588028644528">Шлюз</translation> @@ -418,11 +419,13 @@ <translation id="1618268899808219593">Довідковий центр</translation> <translation id="162035744160882748">Увімкнути синхронізацію, персоналізацію й інші служби Google</translation> <translation id="1620510694547887537">Камера</translation> +<translation id="1623132449929929218">Зображення наразі недоступні. Щоб переглянути колекції фонових малюнків, підключіться до Інтернету знову.</translation> <translation id="1624026626836496796">Це потрібно зробити лише раз. Ваші облікові дані не буде збережено.</translation> <translation id="1627276047960621195">Опис файлу</translation> <translation id="1627408615528139100">Уже завантажено</translation> <translation id="1632803087685957583">Дає змогу налаштувати швидкість повтору клавіатури, передбачення слів тощо</translation> <translation id="1635033183663317347">Установив опікун.</translation> +<translation id="1635885551358739414">Google може використовувати вміст відвіданих сайтів, дані веб-перегляду й взаємодії, щоб персоналізувати Chrome та інші служби Google, як-от Перекладач, Пошук і оголошення. Ви можете змінити це в налаштуваннях.</translation> <translation id="1637224376458524414">Додайте цю закладку на iPhone</translation> <translation id="1637765355341780467">Не вдалося відкрити профіль. Деякі функції можуть бути недоступні.</translation> <translation id="1639239467298939599">Завантаження</translation> @@ -453,6 +456,7 @@ <translation id="166179487779922818">Пароль закороткий.</translation> <translation id="1661867754829461514">Відсутній PIN-код</translation> <translation id="16620462294541761">На жаль, не вдалося підтвердити ваш пароль. Повторіть спробу.</translation> +<translation id="1662550410081243962">Зберігати й заповнювати способи оплати</translation> <translation id="166278006618318542">Алгоритм відкритого ключа суб'єкта</translation> <translation id="166439687370499867">Заборонено змінювати налаштування спільної мережі</translation> <translation id="1665611772925418501">Файл неможливо змінити.</translation> @@ -462,6 +466,7 @@ <translation id="1673137583248014546">Сайт <ph name="URL" /> хоче бачити марку й модель вашого ключа безпеки</translation> <translation id="167832068858235403">зменшити гучність</translation> <translation id="1679068421605151609">Інструменти для розробників</translation> +<translation id="1680849702532889074">Під час встановлення додатка Linux сталася помилка.</translation> <translation id="16815041330799488">Не дозволяти сайтам переглядати тексти й зображення в буфері обміну</translation> <translation id="1682548588986054654">Нове анонімне вікно</translation> <translation id="168715261339224929">Щоб мати доступ до закладок на всіх своїх пристроях, увімкніть синхронізацію.</translation> @@ -497,6 +502,7 @@ <translation id="1732215134274276513">Відкріпити вкладки</translation> <translation id="1734824808160898225">Можливо, <ph name="PRODUCT_NAME" /> не зможе оновлюватись</translation> <translation id="1736419249208073774">Огляд</translation> +<translation id="1736827427463982819">Вимкнути Linux (бета-версія)</translation> <translation id="1737968601308870607">Помилка файлу</translation> <translation id="1741314857973421784">Продовжити</translation> <translation id="174173592514158117">Показати всі папки Play</translation> @@ -669,6 +675,7 @@ <translation id="1997484222658892567">Сайт <ph name="URL" /> хоче постійно зберігати великий обсяг даних на вашому локальному комп’ютері</translation> <translation id="1997616988432401742">Ваші сертифікати</translation> <translation id="1999115740519098545">Після запуску</translation> +<translation id="2000419248597011803">Надсилає деякі файли cookie й пошукові запити з адресного рядка та вікна пошуку в пошукову систему за умовчанням</translation> <translation id="2001796770603320721">Керувати на Диску</translation> <translation id="2004663115385769400">Не вдається відкрити за допомогою додатка $1</translation> <translation id="200544492091181894">Це можна змінити пізніше в налаштуваннях</translation> @@ -695,6 +702,7 @@ <translation id="2045969484888636535">Продовжити блокування файлів cookie</translation> <translation id="204622017488417136">Ваш пристрій повернеться до попередньо встановленої версії Chrome. Усі облікові записи користувачів і локальні дані буде видалено. Цю дію не можна відмінити.</translation> <translation id="2048182445208425546">Отримувати доступ до трафіку мережі</translation> +<translation id="2048653237708779538">Дія недоступна</translation> <translation id="204914487372604757">Створити ярлик</translation> <translation id="2050339315714019657">Портретна</translation> <translation id="2053312383184521053">Дані про неактивний стан</translation> @@ -783,6 +791,7 @@ <translation id="2178098616815594724">Плагін <ph name="PEPPER_PLUGIN_NAME" /> із сайту <ph name="PEPPER_PLUGIN_DOMAIN" /> хоче отримати доступ до вашого комп’ютера</translation> <translation id="2178614541317717477">Дискредитація ЦС</translation> <translation id="218070003709087997">Використовуйте число, щоб указати кількість копій для друку (від 1 до 999).</translation> +<translation id="2183558561014688873">Відкривайте Асистент командою "Ok Google", коли пристрій активовано й розблоковано.</translation> <translation id="2187895286714876935">Помилка імпортування сертифіката сервера</translation> <translation id="2187906491731510095">Розширення оновлено</translation> <translation id="2188881192257509750">Відкрити <ph name="APPLICATION" /></translation> @@ -854,6 +863,7 @@ <translation id="2282146716419988068">Процес GPU</translation> <translation id="2282155092769082568">URL-адреса автоконфігурації:</translation> <translation id="2283117145434822734">F6</translation> +<translation id="2283340219607151381">Зберігати й заповнювати адреси</translation> <translation id="2286841657746966508">Розрахункова адреса</translation> <translation id="2288181517385084064">Перейти до запису відео</translation> <translation id="2288735659267887385">Налаштування спеціальних можливостей</translation> @@ -935,6 +945,7 @@ <translation id="2425665904502185219">Загальний розмір файлу</translation> <translation id="2428510569851653187">Опишіть, що ви робили, коли вкладка аварійно завершила роботу</translation> <translation id="2431027948063157455">Не вдалося завантажити Google Асистент. Перевірте з’єднання з мережею та повторіть спробу.</translation> +<translation id="2432753757290432042">Потрібно оновити Linux (бета-версія)</translation> <translation id="2433452467737464329">Додайте в URL-адресу параметр запиту для автоматичного оновлення сторінки: chrome://network/?refresh=<sec></translation> <translation id="2433507940547922241">Зовнішній вигляд</translation> <translation id="2433836460518180625">Розблокувати лише пристрій</translation> @@ -1184,6 +1195,7 @@ <translation id="2775104091073479743">Редагувати відбитки пальців</translation> <translation id="2776441542064982094">Схоже, немає пристроїв для реєстрації в мережі. Якщо ваш пристрій увімкнено й під’єднано до Інтернету, спробуйте зареєструвати його, дотримуючись інструкцій у посібнику з експлуатації.</translation> <translation id="2781692009645368755">Google Pay</translation> +<translation id="2782104745158847185">Не вдалося встановити додаток Linux</translation> <translation id="2783298271312924866">Завантажено</translation> <translation id="2783321960289401138">Створити ярлик…</translation> <translation id="2783829359200813069">Виберіть тип шифрування</translation> @@ -1208,6 +1220,7 @@ <translation id="2812944337881233323">Вийдіть зі свого облікового запису та ввійдіть у нього знову</translation> <translation id="2812989263793994277">Не показувати жодних зображень</translation> <translation id="2814489978934728345">Припинити завантаження цієї сторінки</translation> +<translation id="281504910091592009">Переглядайте збережені паролі й керуйте ними в <ph name="BEGIN_LINK" />обліковому записі Google<ph name="END_LINK" /></translation> <translation id="2815500128677761940">Панель закладок</translation> <translation id="2815693974042551705">Папка із закладками</translation> <translation id="2818476747334107629">Дані принтера</translation> @@ -1288,6 +1301,7 @@ <translation id="2939938020978911855">Показати доступні пристрої Bluetooth</translation> <translation id="2941112035454246133">Низький</translation> <translation id="2942560570858569904">Очікується…</translation> +<translation id="2942581856830209953">Налаштувати цю сторінку</translation> <translation id="2943400156390503548">Презентації</translation> <translation id="2943503720238418293">Введіть коротшу назву</translation> <translation id="2946119680249604491">Додати з’єднання</translation> @@ -1774,6 +1788,7 @@ <translation id="3693415264595406141">Пароль:</translation> <translation id="3694027410380121301">Вибрати попередню вкладку</translation> <translation id="3699624789011381381">Електронна адреса</translation> +<translation id="3699920817649120894">Вимкнути синхронізацію та персоналізацію?</translation> <translation id="3700888195348409686">Транслюється (<ph name="PAGE_ORIGIN" />)</translation> <translation id="3702500414347826004">Стартові сторінки змінено на <ph name="URL" />.</translation> <translation id="370415077757856453">JavaScript заблоковано</translation> @@ -1871,6 +1886,7 @@ <translation id="3827774300009121996">&На весь екран</translation> <translation id="3828029223314399057">Пошук закладок</translation> <translation id="3830674330436234648">Немає даних для відтворення</translation> +<translation id="3831436149286513437">Пропозиції щодо пошуку на Google Диску</translation> <translation id="3831486154586836914">Ви ввійшли в режим огляду вікна</translation> <translation id="383161972796689579">Власник цього пристрою вимкнув можливість додавати нових користувачів</translation> <translation id="3834775135533257713">Не вдалося додати додаток <ph name="TO_INSTALL_APP_NAME" /> через конфлікт із додатком <ph name="INSTALLED_APP_NAME" />.</translation> @@ -1904,6 +1920,7 @@ <translation id="3871092408932389764">Найнижчий</translation> <translation id="3872220884670338524">Додаткові дії, збережено обліковий запис користувача <ph name="USERNAME" /> у домені <ph name="DOMAIN" /></translation> <translation id="3872991219937722530">Звільніть місце на диску. Інакше пристрій перестане відповідати.</translation> +<translation id="3873315167136380065">Щоб увімкнути цю функцію, видаліть парольну фразу синхронізації, <ph name="BEGIN_LINK" />скинувши синхронізацію<ph name="END_LINK" />.</translation> <translation id="3878840326289104869">Створення користувача, яким керує адміністратор</translation> <translation id="3879748587602334249">Диспетчер завантажень</translation> <translation id="3880709822663530586">Ключ безпеки працює, лише коли на пристрої ввімкнено Bluetooth</translation> @@ -2027,6 +2044,7 @@ <translation id="4068776064906523561">Збережені відбитки пальців</translation> <translation id="407173827865827707">Після натискання</translation> <translation id="4071770069230198275"><ph name="PROFILE_NAME" />: помилка входу</translation> +<translation id="4071828814509176232">Ok Google</translation> <translation id="4074900173531346617">Сертифікат підписувача електронної пошти</translation> <translation id="407520071244661467">Масштаб</translation> <translation id="4075639477629295004">Не вдається транслювати файл <ph name="FILE_NAME" />.</translation> @@ -2094,6 +2112,7 @@ <translation id="4192273449750167573">Перегляньте налаштування на наступному екрані</translation> <translation id="4193154014135846272">Документ Google</translation> <translation id="4194570336751258953">Увімкнути функцію "торкнутися, щоб натиснути"</translation> +<translation id="4195249722193633765">Встановлення додатка з Linux (бета-версія)</translation> <translation id="4195643157523330669">Відкрити в новій вкладці</translation> <translation id="4195814663415092787">Продовжити з місця зупинки</translation> <translation id="4197674956721858839">Вибір файлів для архівування</translation> @@ -2154,7 +2173,9 @@ <translation id="428608937826130504">Елемент полиці 8</translation> <translation id="4287502004382794929">У вас недостатньо ліцензій на використання програмного забезпечення для реєстрації цього пристрою. Зв’яжіться з продавцем, щоб придбати додаткові ліцензії. Якщо ви вважаєте, що це повідомлення з’явилося помилково, зв’яжіться зі службою підтримки.</translation> <translation id="4289540628985791613">Огляд</translation> +<translation id="4295072614469448764">Додаток доступний у терміналі. Також може бути значок на панелі запуску.</translation> <translation id="4296575653627536209">Додати контрольованого користувача</translation> +<translation id="4297219207642690536">Перезапустити й скинути</translation> <translation id="4297322094678649474">Змінити мови</translation> <translation id="4300305918532693141">Щоб змінити це налаштування, <ph name="BEGIN_LINK" />скиньте синхронізацію<ph name="END_LINK" />.</translation> <translation id="4305227814872083840">довга затримка (2 с)</translation> @@ -2190,6 +2211,7 @@ <translation id="4370975561335139969">Введені електронна адреса та пароль не збігаються</translation> <translation id="437184764829821926">Розширені налаштування шрифтів</translation> <translation id="4372884569765913867">1x1</translation> +<translation id="4374831787438678295">Файл встановлення Linux</translation> <translation id="4375035964737468845">Відкривати завантажені файли</translation> <translation id="4377363674125277448">Виникла проблема із сертифікатом сервера.</translation> <translation id="4378154925671717803">Телефон</translation> @@ -2308,6 +2330,7 @@ <translation id="4576541033847873020">Підключити пристрій Bluetooth</translation> <translation id="4579581181964204535">Не вдається транслювати з <ph name="HOST_NAME" />.</translation> <translation id="4580526846085481512">Дійсно видалити елементи $1?</translation> +<translation id="4582497162516204941">Установити з Linux (бета-версія)</translation> <translation id="4582563038311694664">Скинути всі налаштування</translation> <translation id="4585793705637313973">Редагувати сторінку</translation> <translation id="4589268276914962177">Новий термінал</translation> @@ -2551,6 +2574,7 @@ <translation id="4953808748584563296">Стандартний оранжевий аватар</translation> <translation id="4955814292505481804">Річна ліцензія</translation> <translation id="4957949153200969297">Вмикає лише функції, пов’язані із синхронізацією <ph name="IDS_SHORT_PRODUCT_NAME" /></translation> +<translation id="4959262764292427323">Паролі збережено в обліковому записі Google, щоб ви могли користуватися ними на будь-якому пристрої</translation> <translation id="4960294539892203357"><ph name="WINDOW_TITLE" /> – <ph name="PROFILE_NAME" /></translation> <translation id="496226124210045887">У вибраній папці містяться файли з приватною інформацією. Справді надати програмі "$1" постійний доступ для читання з цієї папки?</translation> <translation id="4964455510556214366">Упорядкування</translation> @@ -2730,6 +2754,7 @@ <translation id="5240817131241497236">Змінилися налаштування, які керують синхронізацією, персоналізацією й іншими службами Google у Chrome. Це може вплинути на поточні налаштування.</translation> <translation id="5241128660650683457">Переглядати всі ваші дані на веб-сайтах, які ви відвідуєте</translation> <translation id="5242724311594467048">Увімкнути розширення "<ph name="EXTENSION_NAME" />"?</translation> +<translation id="5243522832766285132">Повторіть спробу через кілька хвилин</translation> <translation id="5244474230056479698">Синхронізація з обліковим записом <ph name="EMAIL" /></translation> <translation id="5246282308050205996">Відбулося аварійне завершення роботи програми <ph name="APP_NAME" />. Натисніть цю спливаючу підказку, щоб перезапустити програму.</translation> <translation id="5247051749037287028">Відображувана назва (необов’язково)</translation> @@ -2752,6 +2777,7 @@ <translation id="5264148714798105376">Це може зайняти близько хвилини.</translation> <translation id="5264252276333215551">Щоб запустити програму в режимі термінала, під’єднайтеся до Інтернету.</translation> <translation id="5265562206369321422">Офлайн понад тиждень</translation> +<translation id="5265797726250773323">Помилка під час встановлення</translation> <translation id="5266113311903163739">Помилка імпортування центру сертифікації</translation> <translation id="5269977353971873915">Помилка друку</translation> <translation id="5271549068863921519">Зберегти пароль</translation> @@ -2774,6 +2800,7 @@ <translation id="529175790091471945">Форматувати цей пристрій</translation> <translation id="5292195676005197571">Просто натисніть кнопку (для більшості ключів)</translation> <translation id="5293170712604732402">Відновити початкові налаштування за умовчанням</translation> +<translation id="5297082477358294722">Пароль збережено. Переглядайте збережені паролі й керуйте ними на сторінці <ph name="SAVED_PASSWORDS_STORE" /></translation> <translation id="5298219193514155779">Автор теми:</translation> <translation id="5299109548848736476">Не відстежувати</translation> <translation id="5299682071747318445">Усі дані шифруються за допомогою вашої парольної фрази для синхронізації</translation> @@ -3002,6 +3029,7 @@ <translation id="5612720917913232150">Сайт <ph name="URL" /> хоче отримати доступ до геоданих вашого комп’ютера</translation> <translation id="5612734644261457353">На жаль, поки не вдалося підтвердити ваш пароль. Зверніть увагу: якщо ви нещодавно змінили пароль, новий пароль буде застосовано, щойно ви вийдете з облікового запису. Скористайтеся тут старим паролем.</translation> <translation id="5614190747811328134">Примітка для користувача</translation> +<translation id="5614553682702429503">Зберегти пароль?</translation> <translation id="561698261642843490">Закрити Firefox</translation> <translation id="5618075537869101857">На жаль, не вдалося запустити програму для терміналів.</translation> <translation id="5618333180342767515">(може тривати декілька хвилин)</translation> @@ -3042,6 +3070,7 @@ <translation id="5677503058916217575">Мова сторінки:</translation> <translation id="5677928146339483299">Заблоковано</translation> <translation id="5678550637669481956"><ph name="VOLUME_NAME" />: надано доступ для перегляду й редагування.</translation> +<translation id="5678784840044122290">Додаток Linux буде доступний в терміналі, а його значок може відображатися на панелі запуску.</translation> <translation id="5678955352098267522">Переглядати ваші дані на веб-сайті <ph name="WEBSITE_1" /></translation> <translation id="5684661240348539843">Ідентифікатор об’єкта</translation> <translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Не вдається від’єднатися від архіву чи віртуального диска<ph name="END_BOLD" /> @@ -3137,6 +3166,7 @@ <translation id="5832805196449965646">Додати користувача</translation> <translation id="583281660410589416">Невідомий</translation> <translation id="5832976493438355584">Заблоковано</translation> +<translation id="5833397272224757657">Використовує вміст відвіданих сайтів, активність у веб-переглядачі та взаємодії для персоналізації</translation> <translation id="5833610766403489739">Файл загубився. Перевірте налаштування папки завантаження та повторіть спробу.</translation> <translation id="5833726373896279253">Лише власник може змінювати ці налаштування:</translation> <translation id="5834581999798853053">Залишилося приблизно <ph name="TIME" /> хв.</translation> @@ -3190,6 +3220,7 @@ <translation id="5908769186679515905">Не дозволяти сайтам запускати Flash</translation> <translation id="5910363049092958439">Збер&егти зображення як...</translation> <translation id="5911737117543891828">Буде видалено тимчасові офлайн-файли на Google Диску. Файли, збережені для доступу офлайн, не видалятимуться з цього пристрою.</translation> +<translation id="5911887972742538906">Сталася помилка під час встановлення додатка Linux.</translation> <translation id="5912378097832178659">&Змінити пошукові системи...</translation> <translation id="5914724413750400082">Модуль (<ph name="MODULUS_NUM_BITS" /> біт.): <ph name="MODULUS_HEX_DUMP" /> @@ -3376,6 +3407,7 @@ <translation id="6198102561359457428">Вийти, а потім увійти знову...</translation> <translation id="6198252989419008588">Змінити PIN-код</translation> <translation id="6199801702437275229">Очікування даних про вільне місце...</translation> +<translation id="6201792273624501289">Додатки Linux</translation> <translation id="6204015976622790023">Отримуйте доречні пропозиції Асистента щодо вмісту на екрані.</translation> <translation id="6205710420833115353">Деякі операції тривають довше, ніж очікувалось. Скасувати їх?</translation> <translation id="6206311232642889873">Копіюват&и зображення</translation> @@ -3852,6 +3884,7 @@ <translation id="6945221475159498467">Вибрати</translation> <translation id="694592694773692225">Переспрямування заблоковано на цій сторінці.</translation> <translation id="6949306908218145636">Створити закладки для відкритих сторінок…</translation> +<translation id="6950627417367801484">Відновити додатки</translation> <translation id="6951153907720526401">Обробники платежів</translation> <translation id="6955446738988643816">Перевірити спливаюче вікно</translation> <translation id="6957231940976260713">Назва служби</translation> @@ -3977,6 +4010,7 @@ <translation id="7127980134843952133">Історія завантажень</translation> <translation id="7131040479572660648">Переглядати ваші дані на веб-сайтах <ph name="WEBSITE_1" />, <ph name="WEBSITE_2" /> і <ph name="WEBSITE_3" /></translation> <translation id="713122686776214250">Додати стор&інку...</translation> +<translation id="7133578150266914903">Адміністратор відновлює цей пристрій до попереднього стану (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="7134098520442464001">Зменшити розмір тексту</translation> <translation id="7136694880210472378">Установити за умовчанням</translation> <translation id="7136984461011502314">Вас вітає <ph name="PRODUCT_NAME" /></translation> @@ -4177,6 +4211,7 @@ <translation id="7463006580194749499">Додати користувача</translation> <translation id="7464490149090366184">Помилка архівування, елемент існує: "$1"</translation> <translation id="7465778193084373987">URL-адреса відкликання сертифіката Netscape</translation> +<translation id="7469406957790636836">Щоб увімкнути цю функцію, спершу ввімкніть перевірку орфографії в розділі <ph name="BEGIN_LINK" />Мови та способи введення<ph name="END_LINK" /></translation> <translation id="7469894403370665791">Автоматично з'єднувати з цією мережею</translation> <translation id="747114903913869239">Помилка: не вдається розшифрувати розширення</translation> <translation id="7473753388963818366">Налаштуйте свій <ph name="DEVICE_TYPE" /></translation> @@ -4274,6 +4309,7 @@ <translation id="7606992457248886637">Центри сертифікації</translation> <translation id="7607002721634913082">Призупинено</translation> <translation id="7607274158153386860">Запитувати сайт планшетного ПК</translation> +<translation id="7609148976235050828">Підключіться до Інтернету та повторіть спробу.</translation> <translation id="7611008212562900400">Шукайте на пристрої, в додатках і в Інтернеті…</translation> <translation id="7616214729753637086">Реєстрація пристрою…</translation> <translation id="7617366389578322136">Під’єднання до пристрою <ph name="DEVICE_NAME" /></translation> @@ -4342,6 +4378,7 @@ <translation id="7730449930968088409">Робити знімки вмісту екрана</translation> <translation id="7730494089396812859">Показати деталі резервного копіювання в хмару</translation> <translation id="7732111077498238432">Мережа контролюється правилами</translation> +<translation id="7737238973539693982">Видалення Linux (бета-версія)</translation> <translation id="773905249182896430">Захищає вас і ваш пристрій від небезпечних сайтів</translation> <translation id="7740996059027112821">Стандартно</translation> <translation id="7748528009589593815">Попередня вкладка</translation> @@ -4530,6 +4567,7 @@ <translation id="7974936243149753750">Облямівка екрана</translation> <translation id="7977551819349545646">Оновлення Chromebox…</translation> <translation id="7978412674231730200">Секретний ключ</translation> +<translation id="7978450511781612192">Ви вийдете з облікових записів Google. Закладки, історія, паролі тощо більше не синхронізуватимуться.</translation> <translation id="7979036127916589816">Помилка синхронізації</translation> <translation id="7980084013673500153">Ідентифікатор об’єкта: <ph name="ASSET_ID" /></translation> <translation id="7981313251711023384">Попередньо завантажувати сторінки, щоб швидше переглядати та шукати</translation> @@ -4694,6 +4732,7 @@ <translation id="8226619461731305576">Черга</translation> <translation id="8226742006292257240">Нижче наведено навмання створений пароль для модуля TPM, присвоєний вашому комп'ютеру:</translation> <translation id="8227119283605456246">Вкласти файл</translation> +<translation id="8230134520748321204">Зберегти пароль для <ph name="ORIGIN" />?</translation> <translation id="8234795456569844941">Допоможіть нашим розробникам вирішити цю проблему. Опишіть, що сталося перед тим, як з’явилося повідомлення про помилку профілю.</translation> <translation id="8234989666557591529">Виберіть телефон, щоб розблокувати пристрій <ph name="DEVICE_TYPE" /></translation> <translation id="8239020549147958415">Синхронізувати як <ph name="FULL_NAME" /></translation> @@ -4812,6 +4851,7 @@ <translation id="8438328416656800239">Виберіть розумний веб-переглядач</translation> <translation id="8438566539970814960">Покращувати пошук і веб-перегляд</translation> <translation id="8439506636278576865">Пропонувати переклад сторінок цією мовою</translation> +<translation id="8440630305826533614">Додатки Linux</translation> <translation id="8446884382197647889">Докладніше</translation> <translation id="8447409163267621480">Натискайте Ctrl або Alt</translation> <translation id="8448729345478502352">Зменшуйте або збільшуйте елементи на екрані</translation> @@ -4856,6 +4896,7 @@ <translation id="8497219075884839166">Службові програми Windows</translation> <translation id="8498214519255567734">У цьому режимі зручніше переглядати або читати вміст на екрані в умовах тьмяного освітлення</translation> <translation id="8498395510292172881">Продовжити читати в Chrome</translation> +<translation id="8502536196501630039">Щоб використовувати додатки з Google Play, спершу потрібно відновити свої додатки. Деякі дані могло бути втрачено.</translation> <translation id="8503813439785031346">Ім’я користувача</translation> <translation id="850875081535031620">Шкідливих програм не виявлено</translation> <translation id="8509646642152301857">Помилка завантаження словника перевірки орфографії.</translation> @@ -4985,6 +5026,7 @@ <translation id="8698464937041809063">Малюнок Google</translation> <translation id="869884720829132584">Меню програм</translation> <translation id="869891660844655955">Діє до</translation> +<translation id="8699566574894671540">Щоб увімкнути цю функцію, спершу виберіть опцію "Перевіряти правопис під час введення" в меню "Редагування"</translation> <translation id="870073306461175568">Спільні мережеві файли</translation> <translation id="8701677791353449257">Назва пристрою має відповідати регулярному виразу <ph name="REGEX" />.</translation> <translation id="8704521619148782536">Це триває довше, ніж зазвичай. Можна зачекати або скасувати дію та спробувати пізніше.</translation> @@ -5024,6 +5066,7 @@ <p>Проте ви можете виконати конфігурацію за допомогою командного рядка. Щоб отримати докладнішу інформацію про прапорці та змінні середовища, відвідайте <code>man <ph name="PRODUCT_BINARY_NAME" /></code>.</p></translation> <translation id="8755376271068075440">&Великий</translation> +<translation id="8756969031206844760">Оновити пароль?</translation> <translation id="8757090071857742562">Не вдається транслювати робочий стіл. Перевірте, чи ви підтвердили запит на трансляцію екрана.</translation> <translation id="8757640015637159332">Розпочати загальнодоступний сеанс</translation> <translation id="8757742102600829832">Виберіть Chromebox, до якого потрібно підключитися</translation> @@ -5180,7 +5223,9 @@ <translation id="9009369504041480176">Завантаження (<ph name="PROGRESS_PERCENT" />%)...</translation> <translation id="9011163749350026987">Завжди показувати значок</translation> <translation id="9011178328451474963">Остання вкладка</translation> +<translation id="9013707997379828817">Адміністратор відновив цей пристрій до попереднього стану. Збережіть важливі файли, а потім перезапустіть пристрій. Усі дані на пристрої буде видалено.</translation> <translation id="9014987600015527693">Показати інший телефон</translation> +<translation id="9018218886431812662">Встановлення завершено</translation> <translation id="901834265349196618">електронна адреса</translation> <translation id="9019062154811256702">Переглядати та змінювати параметри автозаповнення</translation> <translation id="9020362265352758658">4x</translation> @@ -5204,6 +5249,7 @@ <translation id="9038649477754266430">Користуйтеся службою передбачення, щоб сторінки завантажувалися швидше</translation> <translation id="9039663905644212491">PEAP</translation> <translation id="9039890312082871605">Вимкнути звук на вкладках</translation> +<translation id="9040661932550800571">Оновити пароль для <ph name="ORIGIN" />?</translation> <translation id="9041692268811217999">Адміністратор вимкнув доступ до локальних файлів на вашому комп’ютері</translation> <translation id="9042893549633094279">Конфіденційність і безпека</translation> <translation id="904451693890288097">Введіть ключ для пристрою "<ph name="DEVICE_NAME" />":</translation> @@ -5308,6 +5354,7 @@ <translation id="9203478404496196495">Увімкнути звук на вкладці</translation> <translation id="9203904171912129171">Виберіть пристрій</translation> <translation id="9203962528777363226">Адміністратор цього пристрою вимкнув можливість додавати нових користувачів</translation> +<translation id="9213073329713032541">Встановлення розпочато.</translation> <translation id="9214520840402538427">На жаль, ініціалізація атрибутів часу встановлення минула. Зв’яжіться з представником служби підтримки.</translation> <translation id="9214695392875603905">Кекс</translation> <translation id="9215293857209265904">Додано розширення "<ph name="EXTENSION_NAME" />"</translation> @@ -5362,6 +5409,7 @@ <translation id="988978206646512040">Потрібно вказати парольну фразу</translation> <translation id="992032470292211616">Розширення, служби й теми можуть зашкодити вашому пристрою. Справді продовжити?</translation> <translation id="992592832486024913">Вимкнути ChromeVox (голосові підказки)</translation> +<translation id="993540765962421562">Триває встановлення</translation> <translation id="994289308992179865">&Безперервно</translation> <translation id="996250603853062861">Встановлення безпечного з'єднання...</translation> <translation id="998747458861718449">Перевірити</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb index 6cf6cfa..0177c6bf 100644 --- a/chrome/app/resources/google_chrome_strings_am.xtb +++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -290,7 +290,7 @@ <translation id="9026991721384951619">የመለያዎ መግቢያ ዝርዝሮች ጊዜያቸው ያለፈባቸው ስለሆኑ Chrome OS ውሂብዎን ማመሳሰል አልቻለም።</translation> <translation id="9067395829937117663">Google Chrome Windows 7 ወይም ከዚያ በላይ ያስፈልገዋል።</translation> <translation id="9084668267983921457">የማረጋገጫ ዕውቅና ማረጋገጫ አልተሳካም። እባክዎ እንደ እንደገና ወደ Google Chrome ይግቡ ወይም ለተጨማሪ መረጃ አስተዳዳሪዎን ያነጋግሩ። <ph name="ADDITIONAL_EXPLANATION" /></translation> -<translation id="909149346112452267">{0,plural, =1{Chrome OS በአንድ ሰዓት ውስጥ ዳግም ይጀምራል}one{Chrome OS በ# ሰዓቶች ውስጥ ዳግም ይጀምራል}other{Chrome OS በ# ሰዓቶች ውስጥ ዳግም ይጀምራል}}</translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS በአንድ ሰዓት ውስጥ ዳግም ይጀምራልx}one{Chrome OS በ# ሰዓቶች ውስጥ ዳግም ይጀምራል}other{Chrome OS በ# ሰዓቶች ውስጥ ዳግም ይጀምራል}}</translation> <translation id="911206726377975832">የአሰሳ ውሂብዎም ይሰረዝ?</translation> <translation id="919706545465235479">ስምረትን ለመጀመር Chromeን ያዘምኑ</translation> <translation id="924447568950697217">Chromeን የእርስዎ ነባሪ አሳሽ ያድርጉት</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb index 35f3c66..718656d 100644 --- a/chrome/app/resources/google_chrome_strings_ar.xtb +++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">تعذر على نظام التشغيل Chrome مزامنة البيانات. يُرجى تحديث عبارة مرور المزامنة.</translation> <translation id="127345590676626841">يجري تحديث Chrome تلقائيًا بحيث يكون لديك أحدث إصدار. عند اكتمال هذا التحميل، ستتم إعادة تشغيل Chrome وستبدأ العمل.</translation> <translation id="1302523850133262269">يُرجى الانتظار لحين تثبيت Chrome لآخر تحديثات النظام.</translation> +<translation id="1312676208694947750">{0,plural, =0{هناك تحديث متاح لنظام التشغيل Chrome}=1{هناك تحديث واحد متاح لنظام التشغيل Chrome}two{هناك تحديث متاح لنظام التشغيل Chrome منذ يومين (#)}few{هناك تحديث متاح لنظام التشغيل Chrome منذ # أيام}many{هناك تحديث متاح لنظام التشغيل Chrome منذ # يومًا}other{هناك تحديث متاح لنظام التشغيل Chrome منذ # يوم}}</translation> <translation id="137466361146087520">الإصدار التجريبي من Google Chrome</translation> <translation id="1393853151966637042">الحصول على مساعدة بشأن استخدام Chrome</translation> <translation id="1399397803214730675">يحتوي جهاز الكمبيوتر هذا على نسخة أحدث من Google Chrome. إذا كان برنامج Google Chrome لا يعمل، فالرجاء إزالة Google Chrome وإعادة المحاولة.</translation> @@ -31,6 +32,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">إن Google Chrome هو متصفح ويب يشغّل صفحات الويب والتطبيقات بسرعة خاطفة. فهذا المتصفح سريع ويتميز بالثبات وسهولة الاستخدام، ويمكنك من خلاله تصفح الويب بقدر أكبر من الأمان من خلال وجود حماية مضمنة داخله ضد البرامج الضارة والتصيّد.</translation> <translation id="1718131156967340976">تحديد <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">سيحفظ Chrome كلمة المرور هذه في حسابك على Google. ولن تحتاج إلى تذكُّرها.</translation> <translation id="174539241580958092">تعذر على Google Chrome مزامنة البيانات نظرًا لوجود خطأ في تسجيل الدخول.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">الحصول على مساعدة بشأن استخدام نظام التشغيل Chrome</translation> @@ -48,6 +50,7 @@ <translation id="216054706567564023">بادِر بتثبيت Chrome على هاتفك. سنرسل رسالة قصيرة SMS إلى رقم هاتف استرداد حسابك.</translation> <translation id="2246246234298806438">لا يمكن لـ Google Chrome عرض معاينة الطباعة عندما يكون عارض PDF المضمّن مفقودًا.</translation> <translation id="2252923619938421629">ساعد في تحسين Google Chrome بالإبلاغ عن الإعدادات الحالية</translation> +<translation id="225363235161345695">{0,plural, =1{ستتم إعادة تشغيل Chrome خلال ساعة واحدة}zero{ستتم إعادة تشغيل Chrome خلال # ساعة}two{ستتم إعادة تشغيل Chrome خلال ساعتين (#)}few{ستتم إعادة تشغيل Chrome خلال # ساعات}many{ستتم إعادة تشغيل Chrome خلال # ساعةً}other{ستتم إعادة تشغيل Chrome خلال # ساعة}}</translation> <translation id="2286950485307333924">تم تسجيل دخولك الآن إلى Chrome</translation> <translation id="2290014774651636340">مفاتيح واجهة برمجة تطبيقات Google مفقودة. وسيترتب على ذلك توقف بعض وظائف Google Chrome عن العمل.</translation> <translation id="2290095356545025170">هل تريد فعلًا إزالة Google Chrome؟</translation> @@ -147,10 +150,13 @@ <translation id="4891791193823137474">دع Google Chrome يعمل في الخلفية</translation> <translation id="4895437082222824641">فتح الرابط في علامة تبويب جديدة في Chrome</translation> <translation id="4921569541910214635">هل تشارك جهاز كمبيوتر؟ يمكنك الآن إعداد Chrome بالطريقة التي تعجبك تمامًا.</translation> +<translation id="4945319281866068441">{0,plural, =1{إعادة تشغيل نظام التشغيل Chrome خلال يوم واحد}zero{إعادة تشغيل نظام التشغيل Chrome خلال # يوم}two{إعادة تشغيل نظام التشغيل Chrome خلال يومين (#)}few{إعادة تشغيل نظام التشغيل Chrome خلال # أيام}many{إعادة تشغيل نظام التشغيل Chrome خلال # يومًا}other{إعادة تشغيل نظام التشغيل Chrome خلال # يوم}}</translation> <translation id="4953650215774548573">تعيين Google Chrome المتصفح التلقائي</translation> <translation id="495931528404527476">في Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">تعذر على Google Chrome مزامنة البيانات. يُرجى تحديث عبارة مرور المزامنة.</translation> +<translation id="5062123544085870375">إعادة تشغيل نظام التشغيل Chrome</translation> +<translation id="5090044601776247154">لن تصبح الملفات الشخصية للمستخدمين تحت الإشراف متاحة بعد الآن بدءًا من إصدار Google Chrome 70.</translation> <translation id="5132929315877954718">يمكنك اكتشاف تطبيقات، وألعاب، وإضافات، ومظاهر رائعة لمتصفح Google Chrome.</translation> <translation id="5166975452760862670">يتم عرض Google Chrome بهذه اللغة</translation> <translation id="5170938038195470297">لا يمكن استخدام ملفك الشخصي نظرًا لأنه من إصدار أحدث من Google Chrome. @@ -162,6 +168,8 @@ <translation id="532046782124376502">تحذير: يتعذّر على Google Chrome منع الإضافات من تسجيل سجل تصفحك. لإيقاف هذه الإضافة في وضع التصفح المتخفي، ألغِ تحديد هذا الخيار.</translation> <translation id="5386244825306882791">كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chrome أو إجراء بحث من المربع متعدد الاستخدامات.</translation> <translation id="5430073640787465221">ملف التفضيلات تالف أو غير صالح. يتعذر على Google Chrome استرداد إعداداتك.</translation> +<translation id="5483595757826856374">{0,plural, =0{ستتم إعادة تشغيل Chrome الآن}=1{ستتم إعادة تشغيل Chrome خلال ثانية واحدة}two{ستتم إعادة تشغيل Chrome خلال ثانيتين (#)}few{ستتم إعادة تشغيل Chrome خلال # ثوانٍ}many{ستتم إعادة تشغيل Chrome خلال # ثانيةً}other{ستتم إعادة تشغيل Chrome خلال # ثانية}}</translation> +<translation id="5514308096618405748">أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" /> إضافي، كما في نظام التشغيل Linux (إصدار تجريبي).</translation> <translation id="556024056938947818">يحاول Google Chrome إظهار كلمات المرور.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">قد يكون ملف <ph name="FILE_NAME" /> ضارًا، لذلك فقد حظره Chrome.</translation> @@ -187,6 +195,7 @@ <translation id="6291549208091401781">تم تثبيت Google Chrome من قبل لجميع المستخدمين على الكمبيوتر.</translation> <translation id="6338556085225130112">تحديث Google Chrome</translation> <translation id="6368958679917195344">أصبح نظام التشغيل Chrome متاحًا من خلال <ph name="BEGIN_LINK_CROS_OSS" />برنامج مفتوح المصدر<ph name="END_LINK_CROS_OSS" /> إضافي.</translation> +<translation id="6468844726266617801">{0,plural, =1{إعادة تشغيل Chrome خلال يوم واحد}zero{إعادة تشغيل Chrome خلال # يوم}two{إعادة تشغيل Chrome خلال يومين (#)}few{إعادة تشغيل Chrome خلال # أيام}many{إعادة تشغيل Chrome خلال # يومًا}other{إعادة تشغيل Chrome خلال # يوم}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - إصدار قناة مطوري البرامج من Google Chrome</translation> <translation id="6566149418543181476">جارٍ تحديث Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">أنت تستخدم <ph name="PROFILE_EMAIL" /> لمزامنة عناصرك في Chrome. لتحديث تفضيل المزامنة أو استخدام Chrome بدون حساب Google، يمكنك الانتقال إلى <ph name="SETTINGS_LINK" />.</translation> @@ -198,10 +207,12 @@ <translation id="683440813066116847">قاعدة الوارد إلى Google Chrome Canary للسماح بحركة مرور mDNS.</translation> <translation id="686561893457936865">إمكانية استخدام Chrome في كل مكان</translation> <translation id="6885412569789873916">تطبيقات الإصدار التجريبي من Chrome</translation> +<translation id="6964107240822114422">{0,plural, =0{هناك تحديث متاح لـ Chrome}=1{هناك تحديث واحد متاح لـ Chrome}two{هناك تحديث متاح لـ Chrome منذ يومين (#)}few{هناك تحديث متاح لـ Chrome منذ # أيام}many{هناك تحديث متاح لـ Chrome منذ # يومًا}other{هناك تحديث متاح لـ Chrome منذ # يوم}}</translation> <translation id="6967962315388095737">قاعدة الوارد إلى الإصدار التجريبي من Google Chrome للسماح بحركة مرور mDNS.</translation> <translation id="6970811910055250180">جارٍ تحديث الجهاز...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> يتطلب قراءة وقبول بنود الخدمة التالية قبل استخدام هذا الجهاز. وهذه البنود لا توسع أو تعدّل أو تقيّد بنود نظام التشغيل Google Chrome.</translation> <translation id="6989339256997917931">تم تحديث متصفح Google Chrome، ولكنك لم تستخدمه منذ أكثر من 30 يومًا.</translation> +<translation id="7023651421574588884">يطلب المُشرِف إعادة تشغيل نظام التشغيل Chrome لتطبيق تحديث.</translation> <translation id="7098166902387133879">يستخدم Google Chrome الميكروفون.</translation> <translation id="7106741999175697885">مدير المهام - Google Chrome</translation> <translation id="7164397146364144019">يمكنك المساعدة في جعل Chrome أكثر أمانًا وأسهل استخدامًا بإبلاغ Google تلقائيًا بتفاصيل أي مخاطر أمنية محتملة.</translation> @@ -214,8 +225,10 @@ <translation id="7419046106786626209">تعذر على نظام التشغيل Chrome مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation> <translation id="7459554271817304652">يمكنك إعداد المزامنة لحفظ ميزات المتصفح المخصصة على الويب والدخول إليها من Google Chrome على أي كمبيوتر.</translation> <translation id="7473136999113284234">يجري تحديث Chrome تلقائيًا بحيث يكون لديك أحدث إصدار.</translation> +<translation id="7486227612705979895">سيصل Chrome إلى Drive لإنشاء الاقتراحات في شريط العناوين.</translation> <translation id="7535429826459677826">إصدار مطوري البرامج من Google Chrome</translation> <translation id="7552219221109926349">عرض نظام تشغيل Chrome بهذه اللغة</translation> +<translation id="7561940363513215021">{0,plural, =1{ستتم إعادة تشغيل Chrome خلال دقيقة واحدة}zero{ستتم إعادة تشغيل Chrome خلال # دقيقة}two{ستتم إعادة تشغيل Chrome خلال دقيقتين (#)}few{ستتم إعادة تشغيل Chrome خلال # دقائق}many{ستتم إعادة تشغيل Chrome خلال # دقيقةً}other{ستتم إعادة تشغيل Chrome خلال # دقيقة}}</translation> <translation id="7589360514048265910">لن يتلقى هذا الكمبيوتر تحديثات Google Chrome بعد الآن لأن نظام التشغيل Mac OS X 10.9 لم يعُد متاحًا.</translation> <translation id="7592736734348559088">تعذر على Google Chrome مزامنة البيانات نظرًا لأن تفاصيل تسجيل الدخول إلى حسابك قديمة.</translation> <translation id="7626032353295482388">مرحبًا بك في Chrome</translation> @@ -237,9 +250,11 @@ <translation id="8008534537613507642">إعادة تثبيت Chrome</translation> <translation id="8030318113982266900">جارٍ تحديث جهازك إلى قناة <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">بعد إزالة حسابك من Chrome، قد تحتاج إلى إعادة تحميل علامات التبويب المفتوحة لتفعيلها.</translation> +<translation id="8077352834923175128">يطلب المُشرِف إعادة تشغيل Chrome لتطبيق هذا التحديث.</translation> <translation id="8129812357326543296">&حول Google Chrome</translation> <translation id="8179874765710681175">بادِر بتثبيت Chrome على هاتفك. سنرسل رسالة قصيرة إلى هاتفك.</translation> <translation id="8183957050892517584">سيخزّن Chrome معلوماتك الشخصية بشكلٍ آمن لكي لا تُضطر إلى كتابتها مرة أخرى.</translation> +<translation id="8226081633851087288">{0,plural, =0{ستتم إعادة تشغيل نظام التشغيل Chrome الآن}=1{ستتم إعادة تشغيل نظام التشغيل Chrome خلال ثانية واحدة}two{ستتم إعادة تشغيل نظام التشغيل Chrome خلال ثانيتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ثوانٍ}many{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ثانيةً}other{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ثانيةً}}</translation> <translation id="8255190535488645436">يستخدم Google Chrome الكاميرا والميكروفون.</translation> <translation id="8286862437124483331">يحاول Google Chrome عرض كلمات المرور. اكتب كلمة مرور Windows للسماح بذلك.</translation> <translation id="8290100596633877290">للأسف! تعطل Google Chrome. هل تريد إعادة التشغيل الآن؟</translation> @@ -262,6 +277,7 @@ <translation id="870251953148363156">&تحديث Google Chrome</translation> <translation id="873133009373065397">يتعذَّر على Google Chrome تحديد المتصفح التلقائي أو تعيينه</translation> <translation id="8736674169840206667">يطلب المُشرِف إعادة تشغيل Chrome لتطبيق تحديث.</translation> +<translation id="8791470158600044404">{0,plural, =1{ستتم إعادة تشغيل نظام التشغيل Chrome خلال دقيقة واحدة}zero{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # دقيقة}two{ستتم إعادة تشغيل نظام التشغيل Chrome خلال دقيقتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # دقائق}many{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # دقيقةً}other{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # دقيقة}}</translation> <translation id="8796108026289707191">يجب عليك إعادة تشغيل Google Chrome الآن.</translation> <translation id="8823341990149967727">إصدار Chrome قديم</translation> <translation id="884296878221830158">كما أنها تتحكم في الصفحة التي تظهر عند تشغيل Chrome أو النقر على زر الصفحة الرئيسية.</translation> @@ -270,6 +286,7 @@ <translation id="9026991721384951619">تعذر على نظام التشغيل Chrome مزامنة البيانات نظرًا لأن تفاصيل تسجيل الدخول إلى حسابك قديمة.</translation> <translation id="9067395829937117663">يتطلب متصفح Google Chrome نظام التشغيل Windows 7 أو إصدارًا أحدث.</translation> <translation id="9084668267983921457">تعذّرت شهادة المصادقة. يُرجى تسجيل الدخول إلى Google Chrome مرة أخرى أو الاتصال بمشرفك لمزيد من المعلومات. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{ستتم إعادة تشغيل نظام التشغيل Chrome خلال ساعة واحدة}zero{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ساعة}two{ستتم إعادة تشغيل نظام التشغيل Chrome خلال ساعتين (#)}few{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ساعات}many{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ساعةً}other{ستتم إعادة تشغيل نظام التشغيل Chrome خلال # ساعة}}</translation> <translation id="911206726377975832">هل تريد أيضًا حذف بيانات التصفح؟</translation> <translation id="919706545465235479">تحديث Chrome لبدء المزامنة</translation> <translation id="924447568950697217">جعل Chrome المتصفح التلقائي</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb index c1f1218d..65bad61 100644 --- a/chrome/app/resources/google_chrome_strings_bn.xtb +++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -132,7 +132,7 @@ <translation id="4561051373932531560">Google Chrome আপনাকে ওয়েবে কোনো ফোন নম্বরে ক্লিক করতে এবং Skype-এর মাধ্যমে সেটিতে কল করতে দেয়!</translation> <translation id="4567424176335768812">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে প্রবেশ করেছেন৷ এখন আপনি আপনার সমস্ত প্রবেশ করা ডিভাইসে আপনার বুকমার্ক, ইতিহাস এবং অন্যান্য সেটিংস অ্যাক্সেস করতে পারেন৷</translation> <translation id="4571503333518166079">Chrome বিজ্ঞপ্তি সেটিংসে যান</translation> -<translation id="459622048091363950">একবার Chrome অ্যাক্সেস করার পরে, ওয়েবসাইটগুলি অ্যাক্সেস চাইতে পারে।</translation> +<translation id="459622048091363950">Chrome অ্যাক্সেস পেলেই, ওয়েবসাইটগুলি আপনাকে অ্যাক্সেসের অনুরোধ করতে পারবে।</translation> <translation id="4600710005438004015">Chrom লেটেস্ট ভার্সনে আপডেট করা যাচ্ছে না, তাই আপনি নতুন বৈশিষ্ট্য এবং সুরক্ষা সমাধানগুলি পাচ্ছেন না।</translation> <translation id="4631713731678262610">Chromium মেনুর মধ্যে লুকান</translation> <translation id="4633000520311261472">Chrome কে আরও নিরাপদ করতে, আমরা কিছু এক্সটেনশান অক্ষম করেছি যা <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> এ তালিকাবদ্ধ করা হয়নি এবং হয়ত আপনাকে না জানিয়ে যোগ করা হয়েছে৷</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb index 2a41fe34..21e8812 100644 --- a/chrome/app/resources/google_chrome_strings_cs.xtb +++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Chrome OS vaše data nemohl synchronizovat. Aktualizujte prosím heslovou frázi pro synchronizaci.</translation> <translation id="127345590676626841">Chrome se automaticky aktualizuje, abyste měli vždy nejaktuálnější verzi. Až toto stahování skončí, Chrome se restartuje a budete moci pokračovat.</translation> <translation id="1302523850133262269">Počkejte prosím, než Chrome nainstaluje nejnovější aktualizace systému.</translation> +<translation id="1312676208694947750">{0,plural, =0{Je k dispozici aktualizace systému Chrome OS}=1{Je k dispozici aktualizace systému Chrome OS}few{Již # dny je k dispozici aktualizace systému Chrome OS}many{Již # dne je k dispozici aktualizace systému Chrome OS}other{Již # dní je k dispozici aktualizace systému Chrome OS}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Pomoc s používáním Chromu</translation> <translation id="1399397803214730675">V tomto počítači je již nainstalována novější verze prohlížeče Google Chrome. Jestliže software nefunguje, odinstalujte prosím prohlížeč Google Chrome a zkuste to znovu.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Webový prohlížeč Google Chrome spouští stránky a aplikace rychlostí blesku. Je rychlý, stabilní a snadno použitelný. S ochranou proti malwaru a phishingu integrovanou do prohlížeče Google Chrome můžete procházet web bezpečněji.</translation> <translation id="1718131156967340976">Vyberte <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome heslo uloží do vašeho účtu Google. Nebudete si ho muset pamatovat.</translation> <translation id="174539241580958092">Google Chrome vaše data nemohl synchronizovat z důvodu chyby při přihlášení.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Pomoc s používáním systému Chrome OS</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">Nainstalujte si Chrome do telefonu. Zašleme vám SMS na telefonní číslo pro obnovení účtu.</translation> <translation id="2246246234298806438">Pokud chybí integrovaný program k zobrazení souborů PDF, nemůže Google Chrome zobrazit náhled tisku.</translation> <translation id="2252923619938421629">Pomoci s vylepšováním prohlížeče Google Chrome prostřednictvím nahlášení aktuálního nastavení</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome se za hodinu restartuje}few{Chrome se za # hodiny restartuje}many{Chrome se za # hodiny restartuje}other{Chrome se za # hodin restartuje}}</translation> <translation id="2286950485307333924">Nyní jste do Chromu přihlášeni</translation> <translation id="2290014774651636340">Chybí klíče rozhraní Google API. Některé funkce Google Chrome nebudou k dispozici.</translation> <translation id="2290095356545025170">Opravdu chcete odinstalovat Google Chrome?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">Nechat aplikaci Google Chrome spuštěnou na pozadí</translation> <translation id="4895437082222824641">Otevřít odkaz na nové kar&tě Chrome</translation> <translation id="4921569541910214635">Sdílíte počítač s dalšími uživateli? Nyní si Chrome můžete nastavit podle svých představ.</translation> +<translation id="4945319281866068441">{0,plural, =1{Do jednoho dne Chrome OS restartujte}few{Do # dnů Chrome OS restartujte}many{Do # dne Chrome OS restartujte}other{Do # dnů Chrome OS restartujte}}</translation> <translation id="4953650215774548573">Nastavit Google Chrome jako výchozí prohlížeč</translation> <translation id="495931528404527476">V Chromu</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome vaše data nemohl synchronizovat. Aktualizujte prosím heslovou frázi pro synchronizaci.</translation> +<translation id="5062123544085870375">Restartujte systém Chrome OS</translation> +<translation id="5090044601776247154">Profily dozorovaných uživatelů již od verze Google Chrome 70 nebudou k dispozici.</translation> <translation id="5132929315877954718">Objevte skvělé aplikace, hry, rozšíření a motivy prohlížeče Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome se zobrazuje v tomto jazyce</translation> <translation id="5170938038195470297">Nelze použít váš profil, protože byl vytvořen v novější verzi aplikace Google Chrome. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">Soubor nastavení je poškozený nebo neplatný. Aplikace Google Chrome nemůže vaše nastavení obnovit.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome se nyní restartuje}=1{Chrome se za 1 sekundu restartuje}few{Chrome se za # sekundy restartuje}many{Chrome se za # sekundy restartuje}other{Chrome se za # sekund restartuje}}</translation> +<translation id="5514308096618405748">Chrome OS by nemohl existovat bez dalšího <ph name="BEGIN_LINK_CROS_OSS" />softwaru s otevřeným zdrojovým kódem<ph name="END_LINK_CROS_OSS" />, jako je Linux (beta).</translation> <translation id="556024056938947818">Google Chrome se pokouší zobrazit hesla.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Soubor <ph name="FILE_NAME" /> může být nebezpečný, proto jej Chrome zablokoval.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">Prohlížeč Google Chrome je na tomto počítači již nainstalován pro všechny uživatele.</translation> <translation id="6338556085225130112">Aktualizace prohlížeče Google Chrome</translation> <translation id="6368958679917195344">Chrome OS by nemohl existovat bez dalšího <ph name="BEGIN_LINK_CROS_OSS" />softwaru s otevřeným zdrojovým kódem<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Do jednoho dne Chrome restartujte}few{Do # dnů Chrome restartujte}many{Do # dne Chrome restartujte}other{Do # dnů Chrome restartujte}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Aktualizace prohlížeče Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Synchronizujete obsah a nastavení Chrome s účtem <ph name="PROFILE_EMAIL" />. Chcete-li možnosti synchronizace upravit nebo Chrome používat bez účtu Google, navštivte <ph name="SETTINGS_LINK" />.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">Pravidlo příchozího provozu pro aplikaci Google Chrome Canary, které povolí provoz mDNS.</translation> <translation id="686561893457936865">Vezměte si Chrome všude s sebou</translation> <translation id="6885412569789873916">Chrome Beta – aplikace</translation> +<translation id="6964107240822114422">{0,plural, =0{Je k dispozici aktualizace Chromu}=1{Je k dispozici aktualizace Chromu}few{Již # dny je k dispozici aktualizace Chromu}many{Již # dne je k dispozici aktualizace Chromu}other{Již # dní je k dispozici aktualizace Chromu}}</translation> <translation id="6967962315388095737">Pravidlo příchozího provozu pro aplikaci Google Chrome Beta, které povolí provoz mDNS.</translation> <translation id="6970811910055250180">Aktualizace zařízení...</translation> <translation id="6982337800632491844">Doména <ph name="DOMAIN" /> vyžaduje, abyste si před použitím tohoto zařízení přečetli a odsouhlasili následující smluvní podmínky. Tyto smluvní podmínky nerozšiřují, neupravují ani neomezují smluvní podmínky systému Google Chrome OS.</translation> <translation id="6989339256997917931">Prohlížeč Google Chrome byl aktualizován, ale minimálně po 30 dnů jste jej nepoužili.</translation> +<translation id="7023651421574588884">Váš administrátor vyžaduje, abyste kvůli použití této aktualizace restartovali systém Chrome OS</translation> <translation id="7098166902387133879">Google Chrome používá váš mikrofon.</translation> <translation id="7106741999175697885">Správce úloh - Google Chrome</translation> <translation id="7164397146364144019">Automatickým hlášením podrobností o možných bezpečnostních incidentech do Googlu můžete pomoci zrychlit prohlížeč Chrome a usnadnit jeho používání.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">Chrome OS nemohl synchronizovat vaše data, protože Synchronizace ve vaší doméně není k dispozici.</translation> <translation id="7459554271817304652">Chcete-li uložit personalizované funkce prohlížeče na web a získat k nim přístup z prohlížeče Google Chrome v libovolném prohlížeči, nastavte synchronizaci.</translation> <translation id="7473136999113284234">Chrome se automaticky aktualizuje, abyste měli vždy nejaktuálnější verzi.</translation> +<translation id="7486227612705979895">Chrome bude za účelem zobrazování návrhů v adresním řádku číst váš obsah na Disku</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Zobrazit Chrome OS v tomto jazyce</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome se za 1 minutu restartuje}few{Chrome se za # minuty restartuje}many{Chrome se za # minuty restartuje}other{Chrome se za # minut restartuje}}</translation> <translation id="7589360514048265910">Tento počítač již nebude dostávat aktualizace Google Chrome, protože systém Mac OS X 10.9 již není podporován.</translation> <translation id="7592736734348559088">Google Chrome vaše data nemohl synchronizovat, protože vaše přihlašovací údaje nejsou aktuální.</translation> <translation id="7626032353295482388">Vítá vás Chrome</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Přeinstalovat Chrome</translation> <translation id="8030318113982266900">Aktualizace zařízení na verzi <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Odebrání účtu z Chromu se může projevit až po opětovném načtení otevřených karet.</translation> +<translation id="8077352834923175128">Váš administrátor vás žádá, abyste kvůli použití této aktualizace restartovali systém Chrome OS</translation> <translation id="8129812357326543296">O aplikaci &Google Chrome</translation> <translation id="8179874765710681175">Nainstalujte si Chrome do telefonu. Zašleme vám na telefon SMS.</translation> <translation id="8183957050892517584">Chrome vaše osobní údaje bezpečně uloží, abyste je nemuseli zadávat znovu.</translation> +<translation id="8226081633851087288">{0,plural, =0{Systém Chrome OS se teď restartuje}=1{Systém Chrome OS se za 1 sekundu restartuje}few{Systém Chrome OS se za # sekundy restartuje}many{Systém Chrome OS se za # sekundy restartuje}other{Systém Chrome OS se za # sekund restartuje}}</translation> <translation id="8255190535488645436">Google Chrome používá vaši kameru a mikrofon.</translation> <translation id="8286862437124483331">Aplikace Google Chrome se pokouší zobrazit hesla. Tato akce vyžaduje zadání hesla systému Windows.</translation> <translation id="8290100596633877290">Ouha! Prohlížeč Google Chrome spadl. Restartovat?</translation> @@ -266,6 +281,7 @@ <translation id="870251953148363156">Aktualizace aplikace &Google Chrome</translation> <translation id="873133009373065397">Google Chrome nemůže určit ani nastavit výchozí prohlížeč</translation> <translation id="8736674169840206667">Váš administrátor vyžaduje, abyste kvůli použití této aktualizace Chrome restartovali</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS se za 1 minutu restartuje}few{Chrome OS se za # minuty restartuje}many{Chrome OS se za # minuty restartuje}other{Chrome OS se za # minut restartuje}}</translation> <translation id="8796108026289707191">Nyní byste Google Chrome měli restartovat.</translation> <translation id="8823341990149967727">Chrome je zastaralý</translation> <translation id="884296878221830158">Také řídí, která stránka se zobrazí při spuštění Chromu nebo po kliknutí na tlačítko Domovská stránka.</translation> @@ -274,6 +290,7 @@ <translation id="9026991721384951619">Chrome OS vaše data nemohl synchronizovat, protože vaše přihlašovací údaje nejsou aktuální.</translation> <translation id="9067395829937117663">Google Chrome vyžaduje systém Windows 7 nebo vyšší.</translation> <translation id="9084668267983921457">Ověřovací certifikát selhal. Přihlaste se do Google Chrome znovu nebo svého administrátora požádejte o další informace. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS se za hodinu restartuje}few{Chrome OS se za # hodiny restartuje}many{Chrome OS se za # hodiny restartuje}other{Chrome OS se za # hodin restartuje}}</translation> <translation id="911206726377975832">Vymazat také všechna data procházení?</translation> <translation id="919706545465235479">Chcete-li zahájit synchronizaci, aktualizujte Chrome</translation> <translation id="924447568950697217">Nastavte si Chrome jako výchozí prohlížeč</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb index c434a29..7f72a80 100644 --- a/chrome/app/resources/google_chrome_strings_da.xtb +++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">Chrome OS kunne ikke synkronisere dine data. Opdater din adgangssætning til synkronisering.</translation> <translation id="127345590676626841">Chrome opdateres automatisk, så du altid har den nyeste version. Når downloaden er fuldført, genstartes Chrome, og så er du godt på vej.</translation> <translation id="1302523850133262269">Vent, mens Chrome installerer de nyeste systemopdateringer.</translation> +<translation id="1312676208694947750">{0,plural, =0{Der er en tilgængelig Chrome OS-opdatering}=1{Der er en tilgængelig Chrome OS-opdatering}one{En Chrome OS-opdatering har været tilgængelig i # dag}other{En Chrome OS-opdatering har været tilgængelig i # dage}}</translation> <translation id="137466361146087520">Google Chrome beta</translation> <translation id="1393853151966637042">Få hjælp til at bruge Chrome</translation> <translation id="1399397803214730675">Denne computer har allerede en nyere version af Google Chrome. Hvis programmet ikke virker, skal du afinstallere Google Chrome og prøve igen.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome kan ikke læse og skrive i sin egen datamappe: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome er en webbrowser, som kører websider og apps med lynets hast. Den er hurtig, stabil og nem at bruge. Surf mere sikkert med indbygget beskyttelse mod malware og phishing i Google Chrome.</translation> <translation id="1718131156967340976">Vælg <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome gemmer denne adgangskode på din Google-konto. Du behøver ikke at huske den.</translation> <translation id="174539241580958092">Google Chrome kunne ikke synkronisere dine data på grund af en loginfejl.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Få hjælp til at bruge Chrome OS</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Installer Chrome på din telefon. Vi sender en sms til telefonnummeret til gendannelse for din konto.</translation> <translation id="2246246234298806438">Google Chrome kan ikke vise udskrifter, når den indbyggede PDF-fremviser mangler.</translation> <translation id="2252923619938421629">Hjælp med at gøre Google Chrome bedre ved at rapportere de aktuelle indstillinger</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome genstarter om en time}one{Chrome genstarter om # time}other{Chrome genstarter om # timer}}</translation> <translation id="2286950485307333924">Du er nu logget ind i Chrome</translation> <translation id="2290014774651636340">Google API-nøgler mangler. Nogle funktioner i Google Chrome deaktiveres.</translation> <translation id="2290095356545025170">Er du sikker på, at du vil afinstallere Google Chrome?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Lad Google Chrome køre i baggrunden</translation> <translation id="4895437082222824641">Åbn linket i en ny Chrome-&fane</translation> <translation id="4921569541910214635">Deler du computer med andre? Nu kan du konfigurere Chrome, præcist som du vil.</translation> +<translation id="4945319281866068441">{0,plural, =1{Genstart Chrome OS inden for en dag}one{Genstart Chrome OS inden for # dag}other{Genstart Chrome OS inden for # dage}}</translation> <translation id="4953650215774548573">Angiv Google Chrome som din standardbrowser</translation> <translation id="495931528404527476">I Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome kunne ikke synkronisere dine data. Opdater din adgangssætning til synkronisering.</translation> +<translation id="5062123544085870375">Genstart Chrome OS</translation> +<translation id="5090044601776247154">Administrerede brugerprofiler vil ikke længere være tilgængelige fra og med Goolge Chrome 70.</translation> <translation id="5132929315877954718">Find fantastiske apps, spil, udvidelser og temaer til Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome vises på dette sprog</translation> <translation id="5170938038195470297">Din profil kan ikke bruges, fordi den stammer fra en nyere version af Google Chrome. Nogle funktioner er muligvis ikke tilgængelige. Angiv en anden profilmappe, eller brug en nyere version af Chrome.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">Advarsel! Google Chrome kan ikke forhindre udvidelser i at registrere din browserhistorik. Fravælg denne indstilling for at deaktivere udvidelsen i inkognitotilstand.</translation> <translation id="5386244825306882791">Den styrer også, hvilken side der vises, når du åbner Chrome eller søger via omnifeltet.</translation> <translation id="5430073640787465221">Din præferencefil er beskadiget eller ugyldig. Google Chrome kan ikke gendanne dine præferencer.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome genstarter nu}=1{Chrome genstarter om 1 sekund}one{Chrome genstarter om # sekund}other{Chrome genstarter om # sekunder}}</translation> +<translation id="5514308096618405748">Chrome OS realiseres ved hjælp af yderligere <ph name="BEGIN_LINK_CROS_OSS" />open source-software<ph name="END_LINK_CROS_OSS" />, og det samme gælder for Linux (beta).</translation> <translation id="556024056938947818">Google Chrome forsøger at vise adgangskoder.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> kan være skadelig, så Chrome har blokeret den.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome er allerede installeret for alle brugere på computeren.</translation> <translation id="6338556085225130112">Opdaterer Google Chrome</translation> <translation id="6368958679917195344">Chrome OS er lavet ved hjælp af <ph name="BEGIN_LINK_CROS_OSS" />open source-software<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Genstart Chrome inden for en dag}one{Genstart Chrome inden for # dag}other{Genstart Chrome inden for # dage}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome for udviklere</translation> <translation id="6566149418543181476">Opdaterer Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Du bruger <ph name="PROFILE_EMAIL" /> til at synkronisere dine Chrome-ting med. Gå til <ph name="SETTINGS_LINK" />, hvis du vil opdatere dine synkroniseringspræference, eller hvis du vil bruge Chrome uden en Google-konto.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">Indgående regel for Google Chrome Canary om at tillade mDNS-trafik.</translation> <translation id="686561893457936865">Tag Chrome med overalt</translation> <translation id="6885412569789873916">Apps i Chrome beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Der er en tilgængelig Chrome-opdatering}=1{Der er en tilgængelig Chrome-opdatering}one{En Chrome-opdatering har været tilgængelig i # dag}other{En Chrome-opdatering har været tilgængelig i # dage}}</translation> <translation id="6967962315388095737">Indgående regel for Google Chrome beta om at tillade mDNS-trafik.</translation> <translation id="6970811910055250180">Opdaterer din enhed...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> kræver, at du læser og accepterer følgende servicevilkår, inden du bruger denne enhed. Disse vilkår udvider, ændrer eller begrænser på ingen måde vilkårene for Google Chrome OS.</translation> <translation id="6989339256997917931">Google Chrome er blevet opdateret, men du har ikke brugt den i 30 dage.</translation> +<translation id="7023651421574588884">Din administrator kræver, at du genstarter Chrome OS for at anvende en opdatering</translation> <translation id="7098166902387133879">Google Chrome bruger din mikrofon.</translation> <translation id="7106741999175697885">Jobliste – Google Chrome</translation> <translation id="7164397146364144019">Du kan hjælpe med at gøre Chrome sikrere og nemmere at bruge ved automatisk at rapportere oplysninger om mulige sikkerhedsproblemer til Google.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">Chrome OS kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængelig for dit domæne.</translation> <translation id="7459554271817304652">Konfigurer synkroniseringen til at gemme dine personlige browserfunktioner på nettet, og få adgang til dem i Google Chrome på en hvilken som helst computer.</translation> <translation id="7473136999113284234">Chrome opdateres automatisk, så du altid har den nyeste version.</translation> +<translation id="7486227612705979895">Chrome har adgang til Drev, så der kan vises forslag i adresselinjen</translation> <translation id="7535429826459677826">Udviklerversionen af Chrome</translation> <translation id="7552219221109926349">Vis Chrome OS på dette sprog</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome genstarter om 1 minut}one{Chrome genstarter om # minut}other{Chrome genstarter om # minutter}}</translation> <translation id="7589360514048265910">Denne computer vil ikke længere modtage Google Chrome-opdateringer, da Mac OS X 10.9 ikke længere understøttes.</translation> <translation id="7592736734348559088">Google Chrome kunne ikke synkronisere dine data, fordi loginoplysningerne til din konto er forældede.</translation> <translation id="7626032353295482388">Velkommen til Chrome</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">Geninstaller Chrome</translation> <translation id="8030318113982266900">Opdaterer din enhed til kanalen <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Når du har fjernet din konto fra Chrome, skal du muligvis indlæse dine åbne faner, før ændringen træder i kraft.</translation> +<translation id="8077352834923175128">Din administrator anmoder om, at du genstarter Chrome OS for at anvende denne opdatering</translation> <translation id="8129812357326543296">Om &Google Chrome</translation> <translation id="8179874765710681175">Installer Chrome på din telefon. Vi sender en sms til din telefon.</translation> <translation id="8183957050892517584">Chrome gemmer dine personlige oplysninger på sikker vis, så du ikke behøver at angive dem igen.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS genstarter nu}=1{Chrome OS genstarter om 1 sekund}one{Chrome OS genstarter om # sekund}other{Chrome OS genstarter om # sekunder}}</translation> <translation id="8255190535488645436">Google Chrome bruger dit kamera og din mikrofon.</translation> <translation id="8286862437124483331">Google Chrome forsøger at vise adgangskoder. Angiv din Windows-adgangskode for at tillade dette.</translation> <translation id="8290100596633877290">Hovsa! Google Chrome er gået ned. Vil du genstarte nu?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">Opdater &Google Chrome</translation> <translation id="873133009373065397">Google Chrome kan ikke fastlægge eller angive standardbrowseren</translation> <translation id="8736674169840206667">Din administrator kræver, at du genstarter Chrome for at anvende en opdatering</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS genstarter om 1 minut}one{Chrome OS genstarter om # minut}other{Chrome OS genstarter om # minutter}}</translation> <translation id="8796108026289707191">Du bør genstarte Google Chrome nu.</translation> <translation id="8823341990149967727">Chrome er forældet</translation> <translation id="884296878221830158">Den styrer også, hvilken side der vises, når du åbner Chrome eller klikker på knappen Startside.</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">Chrome OS kunne ikke synkronisere dine data, fordi loginoplysningerne til din konto er forældede.</translation> <translation id="9067395829937117663">Google Chrome kræver Windows 7 eller nyere.</translation> <translation id="9084668267983921457">Godkendelsescertifikatet slog fejl. Log ind på Google Chrome igen, eller kontakt din administrator for at få flere oplysninger. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS genstarter om en time}one{Chrome OS genstarter om # time}other{Chrome OS genstarter om # timer}}</translation> <translation id="911206726377975832">Slet også dine browserdata?</translation> <translation id="919706545465235479">Opdater Chrome for at starte synkroniseringen</translation> <translation id="924447568950697217">Gør Chrome til din standardbrowser</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb index 379aff9..4e7877c 100644 --- a/chrome/app/resources/google_chrome_strings_de.xtb +++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">Chrome OS konnte Ihre Daten nicht synchronisieren. Bitte aktualisieren Sie Ihre Passphrase für die Synchronisierung.</translation> <translation id="127345590676626841">Chrome wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen. Nach Abschluss des Downloads wird Chrome neu gestartet und Sie können fortfahren.</translation> <translation id="1302523850133262269">Bitte warten Sie, bis die aktuellen Systemupdates von Chrome installiert wurden.</translation> +<translation id="1312676208694947750">{0,plural, =0{Ein Chrome OS-Update ist verfügbar}=1{Ein Chrome OS-Update ist verfügbar}other{Ein Chrome OS-Update steht seit # Tagen zur Verfügung}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Hilfe für Chrome aufrufen</translation> <translation id="1399397803214730675">Auf diesem Computer befindet sich bereits eine neuere Version von Google Chrome. Falls die Software nicht funktioniert, deinstallieren Sie Google Chrome und versuchen Sie es erneut.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome kann im folgenden Datenverzeichnis weder lesen noch schreiben: <ph name="USER_DATA_DIRECTORY" />.</translation> <translation id="1698376642261615901">Google Chrome ist ein Webbrowser, der Webseiten und Apps in Sekundenschnelle lädt und dabei äußerst stabil und nutzerfreundlich ist. Dank des integrierten Malware- und Phishing-Schutzes können Sie bedenkenlos im Internet surfen.</translation> <translation id="1718131156967340976">Wählen Sie <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> aus</translation> +<translation id="1734234790201236882">Chrome speichert dieses Passwort in Ihrem Google-Konto. Sie müssen es sich also nicht merken.</translation> <translation id="174539241580958092">Google Chrome konnte Ihre Daten aufgrund eines Fehlers bei der Anmeldung nicht synchronisieren.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Hilfe für Chrome OS aufrufen</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Installieren Sie Chrome auf Ihrem Smartphone. Wir senden Ihnen eine SMS an die Telefonnummer zur Kontowiederherstellung.</translation> <translation id="2246246234298806438">Google Chrome kann ohne den integrierten PDF-Viewer keine Druckvorschau anzeigen.</translation> <translation id="2252923619938421629">Tragen Sie zur Verbesserung von Google Chrome bei, indem Sie die aktuellen Einstellungen melden.</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome wird in einer Stunde neu gestartet}other{Chrome wird in # Stunden neu gestartet}}</translation> <translation id="2286950485307333924">Sie sind jetzt in Chrome angemeldet.</translation> <translation id="2290014774651636340">Google API-Schlüssel fehlen. Einige Funktionen von Google Chrome sind deaktiviert.</translation> <translation id="2290095356545025170">Möchten Sie Google Chrome wirklich deinstallieren?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Google Chrome im Hintergrund ausführen</translation> <translation id="4895437082222824641">Link in neuem Chrome-Tab öffnen</translation> <translation id="4921569541910214635">Sie nutzen einen Computer gemeinsam mit anderen? Jetzt können Sie Chrome nach Ihren Wünschen einrichten.</translation> +<translation id="4945319281866068441">{0,plural, =1{Chrome OS innerhalb eines Tages neu starten}other{Chrome OS innerhalb von # Tagen neu starten}}</translation> <translation id="4953650215774548573">Google Chrome als Standardbrowser festlegen</translation> <translation id="495931528404527476">In Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome konnte Ihre Daten nicht synchronisieren. Bitte aktualisieren Sie Ihre Passphrase für die Synchronisierung.</translation> +<translation id="5062123544085870375">Chrome OS neu starten</translation> +<translation id="5090044601776247154">Die betreuten Nutzerprofile sind ab Google Chrome 70 nicht mehr verfügbar.</translation> <translation id="5132929315877954718">Entdecken Sie tolle Apps, Spiele, Erweiterungen und Designs für Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome wird in dieser Sprache angezeigt</translation> <translation id="5170938038195470297">Ihr Profil kann nicht verwendet werden, da es von einer neueren Version von Google Chrome stammt. Einige Funktionen stehen möglicherweise nicht zur Verfügung. Geben Sie bitte ein anderes Profilverzeichnis an oder verwenden Sie eine neuere Version von Google Chrome.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">Warnung: Google Chrome kann nicht verhindern, dass Ihr Suchverlauf von Erweiterungen protokolliert wird. Sie können diese Erweiterung für den Inkognitomodus deaktivieren, indem Sie das Häkchen aus dem Kästchen entfernen.</translation> <translation id="5386244825306882791">Die Erweiterung legt auch fest, welche Seite beim Start von Chrome oder bei der Suche über die Omnibox angezeigt wird.</translation> <translation id="5430073640787465221">Ihre Einstellungsdatei ist beschädigt oder ungültig. Google Chrome kann Ihre Einstellungen nicht wiederherstellen.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome wird jetzt neu gestartet}=1{Chrome wird in 1 Sekunde neu gestartet}other{Chrome wird in # Sekunden neu gestartet}}</translation> +<translation id="5514308096618405748">Chrome OS wird durch zusätzliche <ph name="BEGIN_LINK_CROS_OSS" />Open-Source-Software<ph name="END_LINK_CROS_OSS" /> möglich gemacht, ebenso wie Linux (Beta).</translation> <translation id="556024056938947818">Google Chrome versucht, Passwörter anzuzeigen.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ist möglicherweise schädlich und wurde daher von Chrome blockiert.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome ist bereits für alle Nutzer auf Ihrem Computer installiert.</translation> <translation id="6338556085225130112">Google Chrome wird aktualisiert</translation> <translation id="6368958679917195344">Chrome OS wird durch zusätzliche <ph name="BEGIN_LINK_CROS_OSS" />Open-Source-Software<ph name="END_LINK_CROS_OSS" /> möglich gemacht.</translation> +<translation id="6468844726266617801">{0,plural, =1{Chrome innerhalb eines Tages neu starten}other{Chrome innerhalb von # Tagen neu starten}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome wird aktualisiert (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Ihre E-Mail-Adresse <ph name="PROFILE_EMAIL" /> wird zurzeit für die Synchronisierung Ihrer Chrome-Inhalte verwendet. Wenn Sie Ihre Synchronisierungseinstellungen ändern oder Chrome ohne Google-Konto verwenden möchten, rufen Sie <ph name="SETTINGS_LINK" /> auf.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">Eingangsregel für die Zulassung von mDNS-Verkehr in Google Chrome Canary</translation> <translation id="686561893457936865">Chrome überall mitnehmen</translation> <translation id="6885412569789873916">Chrome Beta-Apps</translation> +<translation id="6964107240822114422">{0,plural, =0{Ein Chrome-Update ist verfügbar}=1{Ein Chrome-Update ist verfügbar}other{Ein Chrome-Update steht seit # Tagen zur Verfügung}}</translation> <translation id="6967962315388095737">Eingangsregel für die Zulassung von mDNS-Verkehr in Google Chrome Beta.</translation> <translation id="6970811910055250180">Ihr Gerät wird aktualisiert...</translation> <translation id="6982337800632491844">Vor der Verwendung dieses Geräts ist es erforderlich, dass Sie die folgenden Nutzungsbedingungen von <ph name="DOMAIN" /> akzeptieren. Durch diese Nutzungsbedingungen werden die Google Chrome OS-Nutzungsbedingungen nicht erweitert, geändert oder eingeschränkt.</translation> <translation id="6989339256997917931">Google Chrome wurde aktualisiert, Sie haben den Browser jedoch mindestens 30 Tage nicht verwendet.</translation> +<translation id="7023651421574588884">Laut Ihrem Administrator müssen Sie Chrome OS neu starten, um ein Update durchzuführen</translation> <translation id="7098166902387133879">Google Chrome verwendet Ihr Mikrofon.</translation> <translation id="7106741999175697885">Taskmanager - Google Chrome</translation> <translation id="7164397146364144019">Helfen Sie mit, Chrome sicherer und nutzerfreundlicher zu machen, indem Sie Details zu möglichen sicherheitsrelevanten Zwischenfällen automatisch an Google senden.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">Chrome OS konnte Ihre Daten nicht synchronisieren, da die Synchronisierung für Ihre Domain nicht verfügbar ist.</translation> <translation id="7459554271817304652">Richten Sie die Synchronisierung ein, um Ihre personalisierten Browserfunktionen online zu speichern und über Google Chrome auf jedem Computer darauf zuzugreifen.</translation> <translation id="7473136999113284234">Chrome wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen.</translation> +<translation id="7486227612705979895">Chrome greift auf Google Drive zu, um in der Adressleiste Vorschläge zu machen</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Chrome OS in dieser Sprache anzeigen</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome wird in 1 Minute neu gestartet}other{Chrome wird in # Minuten neu gestartet}}</translation> <translation id="7589360514048265910">Für diesen Computer wird es keine weiteren Google Chrome-Updates mehr geben, da Mac OS X 10.9 nicht mehr unterstützt wird.</translation> <translation id="7592736734348559088">Google Chrome konnte Ihre Daten nicht synchronisieren, da die Anmeldedaten Ihres Kontos nicht mehr aktuell sind.</translation> <translation id="7626032353295482388">Willkommen bei Chrome</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">Chrome erneut installieren</translation> <translation id="8030318113982266900">Ihr Gerät wird auf Kanal <ph name="CHANNEL_NAME" /> aktualisiert...</translation> <translation id="8032142183999901390">Nachdem Sie Ihr Konto aus Chrome entfernt haben, müssen Sie Ihre geöffneten Tabs möglicherweise neu laden, damit die Änderung wirksam wird.</translation> +<translation id="8077352834923175128">Laut Ihrem Administrator müssen Sie Chrome OS neu starten, um dieses Update durchzuführen</translation> <translation id="8129812357326543296">Über &Google Chrome</translation> <translation id="8179874765710681175">Installieren Sie Chrome auf Ihrem Smartphone. Wir senden Ihnen eine SMS.</translation> <translation id="8183957050892517584">Ihre personenbezogenen Daten werden von Chrome sicher gespeichert. Dadurch brauchen Sie sie nicht noch einmal einzugeben.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS wird jetzt neu gestartet}=1{Chrome OS wird in 1 Sekunde neu gestartet}other{Chrome OS wird in # Sekunden neu gestartet}}</translation> <translation id="8255190535488645436">Google Chrome verwendet Ihre Kamera und Ihr Mikrofon.</translation> <translation id="8286862437124483331">Google Chrome möchte Passwörter anzeigen. Geben Sie Ihr Windows-Passwort ein, um dies zuzulassen.</translation> <translation id="8290100596633877290">Google Chrome ist abgestürzt. Jetzt neu starten?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">&Google Chrome aktualisieren</translation> <translation id="873133009373065397">Google Chrome kann den Standardbrowser nicht bestimmen oder festlegen</translation> <translation id="8736674169840206667">Laut Ihrem Administrator müssen Sie Chrome neu starten, um ein Update durchzuführen</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS wird in 1 Minute neu gestartet}other{Chrome OS wird in # Minuten neu gestartet}}</translation> <translation id="8796108026289707191">Google Chrome jetzt neu starten.</translation> <translation id="8823341990149967727">Chrome ist veraltet.</translation> <translation id="884296878221830158">Die Erweiterung legt auch fest, welche Seite beim Start von Chrome angezeigt wird oder wenn Sie auf die Schaltfläche "Startseite" klicken.</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">Chrome OS konnte Ihre Daten nicht synchronisieren, da die Anmeldedaten Ihres Kontos veraltet sind.</translation> <translation id="9067395829937117663">Für Google Chrome ist Windows 7 oder höher erforderlich.</translation> <translation id="9084668267983921457">Authentifizierungszertifikat fehlgeschlagen. Bitte melden Sie sich wieder bei Google Chrome an oder wenden Sie sich an Ihren Administrator, um weitere Informationen zu erhalten. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS wird in einer Stunde neu gestartet}other{Chrome OS wird in # Stunden neu gestartet}}</translation> <translation id="911206726377975832">Auch die Browserdaten löschen?</translation> <translation id="919706545465235479">Aktualisieren Sie Chrome, um die Synchronisierung zu starten</translation> <translation id="924447568950697217">Chrome als Standardbrowser festlegen</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb index 5ff7679..83e4708 100644 --- a/chrome/app/resources/google_chrome_strings_fil.xtb +++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Hindi ma-sync ng Chrome OS ang iyong data. Paki-update ang iyong Passphrase sa pag-sync.</translation> <translation id="127345590676626841">Awtomatikong nag-a-update ang Chrome upang palagi kang may pinakabagong bersyon. Kapag nakumpleto ang pag-download na ito, magre-restart ang Chrome at makakapagpatuloy ka na.</translation> <translation id="1302523850133262269">Mangyaring maghintay habang ini-install ng Chrome ang mga pinakabagong update sa system.</translation> +<translation id="1312676208694947750">{0,plural, =0{May available na update sa Chrome OS}=1{May available na update sa Chrome OS}one{# araw nang may available na update sa Chrome OS}other{# na araw nang may available na update sa Chrome OS}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Humingi ng tulong sa paggamit ng Chrome</translation> <translation id="1399397803214730675">Mayroon nang mas bagong bersyon ng Google Chrome ang computer na ito. Kung hindi gumagana ang software, mangyaring i-uninstall ang Google Chrome at subukang muli.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Ang Google Chrome ay isang web browser na nagpapatakbo ng mga webpage at application nang kasingbilis ng kidlat. Mabilis ito, matatag, at madaling gamitin. I-browse ang web nang mas ligtas na may proteksyon sa malware at phishing na isinama sa Google Chrome.</translation> <translation id="1718131156967340976">Piliin ang <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Ise-save ng Chrome ang password na ito sa iyong Google Account. Hindi mo na ito kailangang tandaan.</translation> <translation id="174539241580958092">Hindi mai-sync ng Google Chrome ang iyong data dahil sa isang error sa pagsa-sign in.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Kumuha ng tulong sa paggamit ng Chrome OS</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">I-install ang Chrome sa telepono mo. Magpapadala kami ng SMS sa iyong numero ng telepono para sa pag-recover ng account.</translation> <translation id="2246246234298806438">Hindi maipapakita ng Google Chrome ang preview sa pag-print kapag nawawala ang built-in na PDF viewer.</translation> <translation id="2252923619938421629">Tumulong na mapahusay ang Google Chrome sa pamamagitan ng pag-uulat ng mga kasalukuyang setting</translation> +<translation id="225363235161345695">{0,plural, =1{Malulunsad muli ang Chrome sa loob ng isang oras}one{Malulunsad muli ang Chrome sa loob ng # oras}other{Malulunsad muli ang Chrome sa loob ng # na oras}}</translation> <translation id="2286950485307333924">Naka-sign in ka ngayon sa Chrome</translation> <translation id="2290014774651636340">Nawawala ang mga Google API key. Madi-disable ang ilang pagpapagana ng Google Chrome.</translation> <translation id="2290095356545025170">Sigurado ka bang nais mong i-uninstall ang Google Chrome?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">Hayaan ang Google Chrome na tumakbo sa background</translation> <translation id="4895437082222824641">Buksan ang link sa bagong &tab ng Chrome</translation> <translation id="4921569541910214635">Magbabahagi ng computer? Ngayon, maaari mong i-set up ang Chrome sa paraang gusto mo.</translation> +<translation id="4945319281866068441">{0,plural, =1{I-restart ang Chrome OS sa loob ng isang araw}one{I-restart ang Chrome OS sa loob ng # araw}other{I-restart ang Chrome OS sa loob ng # na araw}}</translation> <translation id="4953650215774548573">Itakda ang Google Chrome bilang iyong default na browser</translation> <translation id="495931528404527476">Sa Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Hindi mai-sync ng Google Chrome ang iyong data. Paki-update ang iyong passphrase sa Pag-sync.</translation> +<translation id="5062123544085870375">I-restart ang Chrome OS</translation> +<translation id="5090044601776247154">Mawawala na ang mga profile ng pinangangasiwaang user simula sa Google Chrome 70.</translation> <translation id="5132929315877954718">Tumuklas ng mahuhusay na app, laro, extension at tema para sa Google Chrome.</translation> <translation id="5166975452760862670">Ipinapakita ang Google Chrome sa wikang ito</translation> <translation id="5170938038195470297">Hindi magagamit ang iyong profile dahil mula ito sa isang mas bagong bersyon ng Google Chrome. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">Sira o di-wasto ang iyong file ng mga kagustuhan. Hindi magawang bawiin ng Google Chrome ang iyong mga setting.</translation> +<translation id="5483595757826856374">{0,plural, =0{Muli nang ilulunsad ang Chrome}=1{Muling ilulunsad ang Chrome sa loob ng 1 segundo}one{Muling ilulunsad ang Chrome sa loob ng # segundo}other{Muling ilulunsad ang Chrome sa loob ng # na segundo}}</translation> +<translation id="5514308096618405748">Naging posible ang Chrome OS, gaya ng Linux (Beta), dahil sa karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />.</translation> <translation id="556024056938947818">Sinusubukan ng Google Chrome na magpakita ng mga password.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Maaaring mapanganib ang <ph name="FILE_NAME" />, kaya na-block ito ng Chrome.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">Naka-install na ang Google Chrome para sa lahat ng user sa iyong computer.</translation> <translation id="6338556085225130112">Ina-update ang Google Chrome</translation> <translation id="6368958679917195344">Ginagawang posible ang Chrome OS ng karagdagang <ph name="BEGIN_LINK_CROS_OSS" />open source na software<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Ilunsad muli ang Chrome sa loob ng isang araw}one{Ilunsad muli ang Chrome sa loob ng # araw}other{Ilunsad muli ang Chrome sa loob ng # na araw}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Ina-update ang Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Ginagamit mo ang <ph name="PROFILE_EMAIL" /> upang i-sync ang iyong bagay sa Chrome. Upang ma-update ang iyong kagustuhan sa pag-sync o upang magamit ang Chrome nang walang Google account, bisitahin ang <ph name="SETTINGS_LINK" />.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">Inbound na panuntunan para sa Google Chrome Canary upang payagan ang trapiko ng mDNS.</translation> <translation id="686561893457936865">Dalhin ang Chrome kahit saan</translation> <translation id="6885412569789873916">Mga Chrome Beta App</translation> +<translation id="6964107240822114422">{0,plural, =0{May available na update sa Chrome}=1{May available na update sa Chrome}one{# araw nang may available na update sa Chrome}other{# na araw nang may available na update sa Chrome}}</translation> <translation id="6967962315388095737">Inbound na panuntunan para sa Google Chrome Beta upang payagan ang trapiko ng mDNS.</translation> <translation id="6970811910055250180">Ina-update ang iyong device...</translation> <translation id="6982337800632491844">Kinakailangan ng <ph name="DOMAIN" /> na basahin mo at tanggapin ang sumusunod na Mga Tuntunin ng Serbisyo bago gamitin ang device na ito. Hindi pinapalawak, binabago o nililimitahan ng mga tuntuning ito ang Mga Tuntunin ng Google Chrome OS.</translation> <translation id="6989339256997917931">Na-update na ang Google Chrome, ngunit hindi mo pa ito ginamit sa huling 30 araw.</translation> +<translation id="7023651421574588884">Inaatasan ka ng iyong administrator na i-restart ang Chrome OS para maglapat ng update</translation> <translation id="7098166902387133879">Ginagamit ng Google Chrome ang iyong mikropono.</translation> <translation id="7106741999175697885">Task Manager - Google Chrome</translation> <translation id="7164397146364144019">Makakatulong ka na gawing mas ligtas at mas madaling gamitin ang Chrome sa pamamagitan ng awtomatikong pag-uulat ng mga detalye ng mga posibleng isyu sa seguridad sa Google.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">Hindi ma-sync ng Chrome OS ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation> <translation id="7459554271817304652">I-set up ang Pag-sync upang i-save ang iyong personalized na mga tampok sa browser sa web at i-access ang mga iyon mula sa Google Chrome sa anumang computer.</translation> <translation id="7473136999113284234">Awtomatikong nag-a-update ang Chrome upang palagi kang may pinakabagong bersyon.</translation> +<translation id="7486227612705979895">Ia-access ng Chrome ang iyong Drive para makapagmungkahi sa address bar</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Ipakita ang Chrome OS sa wikang ito</translation> +<translation id="7561940363513215021">{0,plural, =1{Muling ilulunsad ang Chrome sa loob ng 1 minuto}one{Muling ilulunsad ang Chrome sa loob ng # minuto}other{Muling ilulunsad ang Chrome sa loob ng # na minuto}}</translation> <translation id="7589360514048265910">Hindi na makakatanggap ng mga update sa Google Chrome ang computer na ito dahil hindi na sinusuportahan ang Mac OS X 10.9.</translation> <translation id="7592736734348559088">Hindi mai-sync ng Google Chrome ang iyong data dahil hindi napapanahon ang mga detalye sa pag-sign in ng iyong account.</translation> <translation id="7626032353295482388">Maligayang pagdating sa Chrome</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Muling i-install ang Chrome</translation> <translation id="8030318113982266900">Ina-update ang iyong device sa <ph name="CHANNEL_NAME" /> na channel...</translation> <translation id="8032142183999901390">Pagkatapos alisin ang iyong account sa Chrome, maaaring kailangan mong i-reload ang mga nakabukas mong tab upang magkabisa.</translation> +<translation id="8077352834923175128">Hinihiling sa iyo ng administrator mo na i-restart ang Chrome OS para mailapat ang update na ito</translation> <translation id="8129812357326543296">Tungkol sa &Google Chrome</translation> <translation id="8179874765710681175">I-install ang Chrome sa iyong telepono. Magpapadala kami ng SMS sa telepono mo.</translation> <translation id="8183957050892517584">Secure na iiimbak ng Chrome ang iyong mga personal na detalye nang sa gayon ay hindi mo na kailangang i-type muli ang mga ito.</translation> +<translation id="8226081633851087288">{0,plural, =0{Magre-restart na ang Chrome OS}=1{Magre-restart ang Chrome OS sa loob ng 1 segundo}one{Magre-restart ang Chrome OS sa loob ng # segundo}other{Magre-restart ang Chrome OS sa loob ng # na segundo}}</translation> <translation id="8255190535488645436">Ginagamit ng Google Chrome ang iyong camera at mikropono.</translation> <translation id="8286862437124483331">Sinusubukan ng Google Chrome na ipakita ang mga password. I-type ang iyong password sa Windows upang payagan ito.</translation> <translation id="8290100596633877290">Whoa! Nag-crash ang Google Chrome. Ilunsad muli ngayon?</translation> @@ -266,6 +281,7 @@ <translation id="870251953148363156">I-update ang &Google Chrome</translation> <translation id="873133009373065397">Hindi matukoy o maitakda ng Google Chrome ang default na browser</translation> <translation id="8736674169840206667">Inaatasan ka ng iyong administrator na muling ilunsad ang Chrome para malapat ang update</translation> +<translation id="8791470158600044404">{0,plural, =1{Magre-restart ang Chrome OS sa loob ng 1 minuto}one{Magre-restart ang Chrome OS sa loob ng # minuto}other{Magre-restart ang Chrome OS sa loob ng # na minuto}}</translation> <translation id="8796108026289707191">Dapat mo nang i-restart ngayon ang Google Chrome.</translation> <translation id="8823341990149967727">Luma na ang Chrome</translation> <translation id="884296878221830158">Kinokontrol din nito kung anong pahina ang ipinapakita kapag sinimulan mo ang Chrome o na-click ang button ng Home.</translation> @@ -274,6 +290,7 @@ <translation id="9026991721384951619">Hindi ma-sync ng Chrome OS ang iyong data dahil hindi napapanahon ang mga detalye sa pag-sign in sa iyong account.</translation> <translation id="9067395829937117663">Kailangan ng Google Chrome ng Windows 7 o mas bago.</translation> <translation id="9084668267983921457">Hindi nagtagumpay ang certificate ng pag-authenticate. Mag-sign in muli sa Google Chrome o makipag-ugnayan sa iyong administrator para sa higit pang impormasyon. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Magre-restart ang Chrome OS sa loob ng isang oras}one{Magre-restart ang Chrome OS sa loob ng # oras}other{Magre-restart ang Chrome OS sa loob ng # na oras}}</translation> <translation id="911206726377975832">Tatanggalin din ang iyong data sa pag-browse?</translation> <translation id="919706545465235479">I-update ang Chrome upang simulan ang pag-sync</translation> <translation id="924447568950697217">Gawing default mong browser ang Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb index 2e9480b..4efc5db 100644 --- a/chrome/app/resources/google_chrome_strings_gu.xtb +++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Chrome OS તમારા ડેટાને સમન્વયિત કરી શક્યું નથી. કૃપા કરીને તમારા સમન્વયન પાસફ્રેઝને અપડેટ કરો.</translation> <translation id="127345590676626841">Chrome આપમેળે અપડેટ થાય છે જેથી કરીને તમારી પાસે હંમેશા તાજું સંસ્કરણ રહે છે. જ્યારે આ ડાઉનલોડ પૂર્ણ થાય છે, ત્યારે Chrome પુનઃપ્રારંભ થશે અને તમે તમારા માર્ગે હશો.</translation> <translation id="1302523850133262269">કૃપા કરીને Chrome નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation> +<translation id="1312676208694947750">{0,plural, =0{Chrome OS અપડેટ ઉપલબ્ધ છે}=1{Chrome OS અપડેટ ઉપલબ્ધ છે}one{Chrome OS અપડેટ # દિવસ માટે ઉપલબ્ધ છે}other{Chrome OS અપડેટ # દિવસ માટે ઉપલબ્ધ છે}}</translation> <translation id="137466361146087520">Google Chrome બીટા</translation> <translation id="1393853151966637042">Chrome નો ઉપયોગ કરવા સહાય મેળવો</translation> <translation id="1399397803214730675">આ કમ્પ્યુટર પર પહેલેથી જ Google Chrome નું વધુ તાજેતરનું સંસ્કરણ છે. જો સૉફ્ટવેર કામ ન કરતું હોય, તો કૃપા કરીને Google Chrome ને અનઇન્સ્ટોલ કરો અને ફરી પ્રયાસ કરો.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome એ એક એવું વેબ બ્રાઉઝર છે જે પ્રકાશની ગતિએ વેબપૃષ્ઠો અને એપ્લિકેશંસને ચલાવે છે. તે ઝડપી, સ્થિર અને ઉપયોગમાં સરળ છે. Google Chrome માં નિર્મિત મૉલવેર અને ફિશીંગ સુરક્ષા સાથે વેબને વધુ સુરક્ષિત રૂપે બ્રાઉઝ કરો.</translation> <translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> પસંદ કરો</translation> +<translation id="1734234790201236882">Chrome આ પાસવર્ડ તમારા Google એકાઉન્ટમાં સાચવશે. તમારે તેને યાદ રાખવો જરૂરી નથી.</translation> <translation id="174539241580958092">સાઇન ઇનમાં ભૂલ આવવાને કારણે Google Chrome તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Chrome OS નો ઉપયોગ કરવા સહાય મેળવો</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">તમારા ફોન પર Chrome ઇન્સ્ટૉલ કરો. અમે તમારા એકાઉન્ટ પુનઃપ્રાપ્તિ ફોન નંબર પર એક SMS મોકલીશું.</translation> <translation id="2246246234298806438">જ્યારે બિલ્ટ-ઇન PDF વ્યૂઅર ગૂમ હોય ત્યારે Google Chrome પ્રિંટ પૂર્વાવલોકન બતાવી શકતું નથી.</translation> <translation id="2252923619938421629">વર્તમાન સેટિંગ્સની જાણ કરીને Google Chrome ને વધુ સારું બનાવવામાં સહાય કરો</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome એક કલાકમાં ફરીથી લૉન્ચ થશે}one{Chrome # કલાકમાં ફરીથી લૉન્ચ થશે}other{Chrome # કલાકમાં ફરીથી લૉન્ચ થશે}}</translation> <translation id="2286950485307333924">તમે હમણાં Chrome માં સાઇન ઇન કર્યું છે</translation> <translation id="2290014774651636340">Google API કીઝ ખૂટે છે. Google Chrome ની કેટલીક કાર્યક્ષમતા અક્ષમ થશે.</translation> <translation id="2290095356545025170">શું તમને ખાતરી છે કે તમારે Google Chromeને અનઇન્સ્ટોલ કરવું છે?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">Google Chrome ને પૃષ્ટભૂમિમાં ચાલવા દો</translation> <translation id="4895437082222824641">નવા Chrome &ટૅબમાં લિંક ખોલો</translation> <translation id="4921569541910214635">કમ્પ્યુટર શેર કરીએ? હવે તમે તમને ગમે તે રીતે Chrome ને સેટ કરી શકો છો.</translation> +<translation id="4945319281866068441">{0,plural, =1{એક દિવસની અંદર Chrome OS ફરી શરૂ કરો}one{# દિવસની અંદર Chrome OS ફરી શરૂ કરો}other{# દિવસની અંદર Chrome OS ફરી શરૂ કરો}}</translation> <translation id="4953650215774548573">Google Chrome ને તમારા ડિફોલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation> <translation id="495931528404527476">Chrome માં</translation> <translation id="4990567037958725628">Google Chrome કૅનેરી</translation> <translation id="5028489144783860647">Google Chrome તમારા ડેટાને સમન્વયિત કરી શક્યું નથી. કૃપા કરીને તમારા સમન્વયન પાસફ્રેઝને અપડેટ કરો.</translation> +<translation id="5062123544085870375">Chrome OS ફરી શરૂ કરો</translation> +<translation id="5090044601776247154">Google Chrome 70 શરૂ થવાથી, નિરીક્ષિત વપરાશકર્તા પ્રોફાઇલો હવેથી ઉપલબ્ધ નહીં રહે.</translation> <translation id="5132929315877954718">Google Chrome માટે શ્રેષ્ઠ ઍપ્લિકેશનો, રમતો, એક્સટેન્શન્સ અને થીમ્સ શોધો</translation> <translation id="5166975452760862670">આ ભાષામાં Google Chrome પ્રદર્શિત થાય છે</translation> <translation id="5170938038195470297">તમારી પ્રોફાઇલનો ઉપયોગ કરી શકાતો નથી કારણ કે તે Google Chrome ના નવા સંસ્કરણ તરફથી છે. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">તમારી પસંદગીઓ ફાઇલ દૂષિત અથવા અમાન્ય છે. Google Chrome તમારી સેટિંગ્સને પુનઃપ્રાપ્ત કરવામાં અક્ષમ છે.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome હમણાં ફરીથી લૉન્ચ થશે}=1{Chrome 1 સેકન્ડમાં ફરીથી લૉન્ચ થશે}one{Chrome # સેકન્ડમાં ફરીથી લૉન્ચ થશે}other{Chrome # સેકન્ડમાં ફરીથી લૉન્ચ થશે}}</translation> +<translation id="5514308096618405748">Linux (બીટા)ની જેમ, Chrome OS વધારાના <ph name="BEGIN_LINK_CROS_OSS" />ઓપન સૉર્સ સૉફ્ટવેર<ph name="END_LINK_CROS_OSS" /> દ્વારા શક્ય બનાવવામાં આવ્યું છે.</translation> <translation id="556024056938947818">Google Chrome પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> જોખમી હોઈ શકે છે, તેથી Chrome એ તેને અવરોધિત કરેલ છે.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">Google Chrome, તમારા કમ્પ્યુટર પર પહેલાંથી તમામ વપરાશકર્તાઓ માટે ઇન્સ્ટૉલ કરેલ છે.</translation> <translation id="6338556085225130112">Google Chrome અપડેટ થઈ રહ્યું છે</translation> <translation id="6368958679917195344">Chrome OS એ વધારાના <ph name="BEGIN_LINK_CROS_OSS" />ખુલ્લા સ્ત્રોત સૉફ્ટવેર<ph name="END_LINK_CROS_OSS" /> દ્વારા શક્ય બને છે.</translation> +<translation id="6468844726266617801">{0,plural, =1{એક દિવસની અંદર Chromeને ફરીથી લૉન્ચ કરો}one{# દિવસની અંદર Chromeને ફરીથી લૉન્ચ કરો}other{# દિવસની અંદર Chromeને ફરીથી લૉન્ચ કરો}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome અપડેટ થઈ રહ્યું છે (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">તમે તમારી Chrome સામગ્રીનું સમન્વયન કરવા માટે <ph name="PROFILE_EMAIL" /> નો ઉપયોગ કરી રહ્યાં છો. તમારી સમન્વયન પસંદગીને અપડેટ કરવા માટે અથવા Chrome ને Google એકાઉન્ટ વગર ઉપયોગ કરવા માટે, <ph name="SETTINGS_LINK" /> ની મુલાકાત લો.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">mDNS ટ્રાફિકને મંજૂરી આપવા માટે Google Chrome કૅનેરી માટે ઇનબાઉન્ડ નિયમ.</translation> <translation id="686561893457936865">Chrome ને સર્વત્ર લઈ જાઓ</translation> <translation id="6885412569789873916">Chrome બીટા ઍપ્લિકેશનો</translation> +<translation id="6964107240822114422">{0,plural, =0{Chrome અપડેટ ઉપલબ્ધ છે}=1{Chrome અપડેટ ઉપલબ્ધ છે}one{Chrome અપડેટ # દિવસ માટે ઉપલબ્ધ છે}other{Chrome અપડેટ # દિવસ માટે ઉપલબ્ધ છે}}</translation> <translation id="6967962315388095737">mDNS ટ્રાફિકને મંજૂરી આપવા માટે Google Chrome બીટા માટે ઇનબાઉન્ડ નિયમ.</translation> <translation id="6970811910055250180">તમારા ઉપકરણને અપડેટ કરી રહ્યાં છે...</translation> <translation id="6982337800632491844">આ ઉપકરણનો ઉપયોગ કર્યાં પહેલાં <ph name="DOMAIN" /> ને નીચે સેવાની શરતોને વાંચવાની અને સ્વીકારવાની જરૂર છે. આ શરતો Google Chrome OS શરતોને વિસ્તૃત, સંશોધિત, અથવા મર્યાદિત કરતી નથી. </translation> <translation id="6989339256997917931">Google Chrome અપડેટ કરવામાં આવ્યું હતું, પણ તમે તેનો 30 દિવસ સુધી ઉપયોગ કર્યો નથી.</translation> +<translation id="7023651421574588884">અપડેટ લાગુ કરવા માટે તમે Chrome OS ફરી શરૂ કરો તે તમારા વ્યવસ્થાપક માટે જરૂરી છે</translation> <translation id="7098166902387133879">Google Chrome તમારા માઇક્રોફોનનો ઉપયોગ કરી રહ્યું છે.</translation> <translation id="7106741999175697885">કાર્ય વ્યવસ્થાપક - Google Chrome</translation> <translation id="7164397146364144019">તમે Google ને સંભવિત સુરક્ષા ઘટનાઓની વિગતોની જાણ આપમેળે કરીને Chrome ને વધુ સલામત અને ઉપયોગમાં વધુ સરળ બનાવવામાં સહાય કરી શકો છો.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">Chrome OS તમારા ડેટાને સમન્વયિત કરી શક્યું નથી કારણ કે તમારા ડોમેન માટે સમન્વયન ઉપલબ્ધ નથી.</translation> <translation id="7459554271817304652">તમારી વેબ પરની વ્યક્તિગત કરેલી બ્રાઉઝર સુવિધાઓને સાચવવા અને તેમને કોઈપણ કમ્પ્યુટર પર Google Chrome માંથી ઍક્સેસ કરવા માટે સમન્વયન સેટ કરો.</translation> <translation id="7473136999113284234">Chrome આપમેળે અપડેટ થાય છે જેથી કરીને તમારી પાસે હંમેશા સૌથી તાજું સંસ્કરણ રહે છે.</translation> +<translation id="7486227612705979895">ઍડ્રેસ બારમાં સૂચનો કરવા માટે, Chrome તમારી ડ્રાઇવને ઍક્સેસ કરશે</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">આ ભાષામાં Chrome OS પ્રદર્શિત કરો</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome એક મિનિટમાં ફરીથી લૉન્ચ થશે}one{Chrome # મિનિટમાં ફરીથી લૉન્ચ થશે}other{Chrome # મિનિટમાં ફરીથી લૉન્ચ થશે}}</translation> <translation id="7589360514048265910">આ કમ્પ્યુટર હવેથી Google Chrome અપડેટ મેળવી શકશે નહીં કારણ કે હવેથી Mac OS X 10.9 સમર્થિત નથી.</translation> <translation id="7592736734348559088">સાઇન ઇન વિગતો જૂની હોવાને કારણે Google Chrome તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation> <translation id="7626032353295482388">Chrome પર આપનું સ્વાગત છે</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Chrome ફરીથી ઇન્સ્ટોલ કરો</translation> <translation id="8030318113982266900">તમારા ઉપકરણને <ph name="CHANNEL_NAME" /> ચેનલ પર અપડેટ કરી રહ્યાં છે...</translation> <translation id="8032142183999901390">તમારા એકાઉન્ટને Chrome માંથી દૂર કર્યાં પછી, અમલમાં લાવવા માટે તમારે તમારા ખુલ્લા ટેબ્સને ફરીથી લોડ કરવાની જરૂર પડી શકે છે.</translation> +<translation id="8077352834923175128">તમારા વ્યવસ્થાપક કહે છે કે આ અપડેટ લાગુ કરવા માટે Chrome OS ફરી શરૂ કરો</translation> <translation id="8129812357326543296">&Google Chrome વિશે</translation> <translation id="8179874765710681175">તમારા ફોન પર Chrome ઇન્સ્ટૉલ કરો. અમે તમારા ફોન પર એક SMS મોકલીશું.</translation> <translation id="8183957050892517584">Chrome તમારી વ્યક્તિગત માહિતીને સુરક્ષિત રીતે સંગ્રહિત કરશે જેથી તમારે તેમને ફરીથી ટાઇપ કરવાની જરૂર નથી.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS હવે ફરી શરૂ થશે}=1{Chrome OS 1 સેકન્ડમાં ફરી શરૂ થશે}one{Chrome OS # સેકન્ડમાં ફરી શરૂ થશે}other{Chrome OS # સેકન્ડમાં ફરી શરૂ થશે}}</translation> <translation id="8255190535488645436">Google Chrome તમારા કેમેરા અને માઇક્રોફોનનો ઉપયોગ કરી રહ્યું છે.</translation> <translation id="8286862437124483331">Google Chrome પાસવર્ડ્સ બતાવવાનો પ્રયાસ કરી રહ્યું છે. આની મંજૂરી આપવા માટે તમારો Windows પાસવર્ડ લખો.</translation> <translation id="8290100596633877290">ઓહ! Google Chrome ક્રેશ થઈ ગયું. હમણાં ફરીથી લોંચ કરીએ?</translation> @@ -266,6 +281,7 @@ <translation id="870251953148363156">&Google Chrome ને અપડેટ કરો</translation> <translation id="873133009373065397">Google Chrome ડિફૉલ્ટ બ્રાઉઝરને નિર્ધારિત અથવા સેટ કરી શકતું નથી</translation> <translation id="8736674169840206667">અપડેટ લાગુ કરવા માટે તમે Chromeને ફરીથી લૉન્ચ કરો તે તમારા વ્યવસ્થાપક માટે જરૂરી છે</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS 1 મિનિટમાં ફરી શરૂ થશે}one{Chrome OS # મિનિટમાં ફરી શરૂ થશે}other{Chrome OS # મિનિટમાં ફરી શરૂ થશે}}</translation> <translation id="8796108026289707191">તમારે હવે Google Chrome ને પુનઃપ્રારંભ કરવું જોઈએ.</translation> <translation id="8823341990149967727">Chrome જૂનું થઈ ગયું છે</translation> <translation id="884296878221830158">જ્યારે તમે Chrome શરૂ કરો અથવા હોમ બટન ક્લિક કરો ત્યારે કયું પૃષ્ઠ બતાવવામાં આવે તે તેનું પણ નિયંત્રણ કરે છે.</translation> @@ -274,6 +290,7 @@ <translation id="9026991721384951619">સાઇન ઇન વિગતો જૂની હોવાને કારણે Chrome OS તમારા ડેટાને સમન્વયિત કરી શક્યું નથી.</translation> <translation id="9067395829937117663">Google Chrome માટે Windows 7 અથવા તે પછીનું સંસ્કરણ આવશ્યક છે.</translation> <translation id="9084668267983921457">પ્રમાણીકરણ પ્રમાણપત્ર નિષ્ફળ થયું. કૃપા કરીને ફરીથી Google Chromeમાં સાઇન ઇન કરો અથવા વધુ માહિતી માટે તમારા વ્યવસ્થાપકનો સંપર્ક કરો. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS એક કલાકમાં ફરી શરૂ થશે}one{Chrome OS # કલાકમાં ફરી શરૂ થશે}other{Chrome OS # કલાકમાં ફરી શરૂ થશે}}</translation> <translation id="911206726377975832">તમારો બ્રાઉઝિંગ ડેટા પણ કાઢી નાખીએ?</translation> <translation id="919706545465235479">સમન્વયન પ્રારંભ કરવા માટે Chrome અપડેટ કરો</translation> <translation id="924447568950697217">Chrome ને તમારું ડિફૉલ્ટ બ્રાઉઝર બનાવો</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb index d4bf557f..228167e 100644 --- a/chrome/app/resources/google_chrome_strings_hi.xtb +++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">Chrome OS आपका डेटा समन्वयित नहीं कर सका. कृपया अपना समन्वयन पासफ़्रेज़ अपडेट करें.</translation> <translation id="127345590676626841">Chrome अपने आप अपडेट हो जाता है ताकि आपके पास हमेशा सबसे नवीनतम वर्शन रहे. जब यह डाउनलोड पूर्ण हो जाता है, तो Chrome पुन: प्रारंभ होगा और आप आगे बढ़ जाएंगे.</translation> <translation id="1302523850133262269">कृपया Chrome के द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation> +<translation id="1312676208694947750">{0,plural, =0{Chrome OS का एक अपडेट उपलब्ध है}=1{Chrome OS का एक अपडेट उपलब्ध है}one{Chrome OS का एक अपडेट # दिनों से उपलब्ध है}other{Chrome OS का एक अपडेट # दिनों से उपलब्ध है}}</translation> <translation id="137466361146087520">Google Chrome बीटा</translation> <translation id="1393853151966637042">Chrome का उपयोग करने के बारे में सहायता प्राप्त करें</translation> <translation id="1399397803214730675">इस कंप्यूटर में Google Chrome का अधिक नवीन वर्शन पहले से मौजूद है. यदि सॉफ्टवेयर काम नहीं कर रहा है, तो कृपया Google Chrome अनइंस्टॉल करें और फिर से प्रयास करें.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome अपनी डेटा निर्देशिका को पढ़ और उस पर लिख नहीं सकता :\n\n<ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome एक ऐसा वेब ब्राउज़र है, जो वेब पेज और ऐप्स को बिजली की गति से चलाता है. यह तेज़, स्थिर, और उपयोग में आसान है. Google Chrome में अंतर्निहित मैलवेयर और फ़िशिंग सुरक्षा के साथ अधिक सुरक्षित रूप से वेब ब्राउज़ करें.</translation> <translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> चुनें</translation> +<translation id="1734234790201236882">Chrome इस पासवर्ड को आपके Google खाते में सेव कर लेगा. आपके इसे याद रखने की ज़रूरत नहीं है.</translation> <translation id="174539241580958092">प्रवेश करने में गड़बड़ी के कारण Google Chrome आपका डेटा समन्वयित नहीं कर सका.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Chrome OS का उपयोग करने के बारे में सहायता प्राप्त करें</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">अपने फ़ोन पर Chrome इंस्टॉल करें. हम आपके उस फ़ोन नंबर पर एक मैसेज (एसएमएस) भेजेंगे, जिसे आपने अपना खाता वापस पाने के लिए सेट किया है.</translation> <translation id="2246246234298806438">अगर Google Chrome के साथ ही आने वाला PDF व्यूअर मौजूद नहीं होगा तो, Google Chrome प्रिंट करने से पहले की झलक नहीं दिखा पाएगा.</translation> <translation id="2252923619938421629">वर्तमान सेटिंग की रिपोर्ट करके Google Chrome को बेहतर बनाने में सहायता करें</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome एक घंटे के अंदर फिर से लॉन्च होगा}one{Chrome # घंटों के अंदर फिर से लॉन्च होगा}other{Chrome # घंटों के अंदर फिर से लॉन्च होगा}}</translation> <translation id="2286950485307333924">अब आपने Chrome में प्रवेश कर लिया है</translation> <translation id="2290014774651636340">Google API (एपीआई) कुंजियां मौजूद नहीं हैं. Google Chrome के कुछ फ़ंक्शन बंद कर दिए जाएंगे.</translation> <translation id="2290095356545025170">क्या आप वाकई Google Chrome को विस्थापित करना चाहते हैं?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Google Chrome को पृष्ठभूमि में चलने दें</translation> <translation id="4895437082222824641">नए Chrome &टैब में लिंक खोलें</translation> <translation id="4921569541910214635">कंप्यूटर शेयर करते हैं? अब आप Chrome जैसा चाहें वैसा सेट कर सकते हैं.</translation> +<translation id="4945319281866068441">{0,plural, =1{एक दिन के अंदर Chrome OS को रीस्टार्ट करें}one{# दिनों के अंदर Chrome OS को रीस्टार्ट करें}other{# दिनों के अंदर Chrome OS को रीस्टार्ट करें}}</translation> <translation id="4953650215774548573">Google Chrome को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करना</translation> <translation id="495931528404527476">Chrome में</translation> <translation id="4990567037958725628">Google Chrome कैनरी</translation> <translation id="5028489144783860647">Google Chrome आपका डेटा समन्वयित नहीं कर सका. कृपया अपना समन्वयन पासफ़्रेज़ अपडेट करें.</translation> +<translation id="5062123544085870375">Chrome OS को रीस्टार्ट करें</translation> +<translation id="5090044601776247154">Google Chrome 70 शुरू होने के साथ ही निगरानी में रखे गए उपयोगकर्ता की प्रोफ़ाइल अब से उपलब्ध नहीं होंगी.</translation> <translation id="5132929315877954718">Google Chrome के लिए बेहतरीन ऐप्स ,गेम, एक्सटेंशन और थीम खोजें.</translation> <translation id="5166975452760862670">Google Chrome इस भाषा में प्रदर्शित किया जा रहा है</translation> <translation id="5170938038195470297">आपकी प्रोफ़ाइल का उपयोग नहीं किया जा सकता क्योंकि यह Google Chrome के किसी नए वर्शन से है. @@ -162,6 +168,8 @@ <translation id="5430073640787465221">आपकी पसंदीदा फ़ाइल खराब या अमान्य है. Google Chrome आपकी सेटिंग बहाल नहीं कर सकता.</translation> +<translation id="5483595757826856374">{0,plural, =0{अब Chrome फिर से लॉन्च होगा}=1{Chrome दिनों सेकंड में फिर से लॉन्च होगा}one{Chrome # सेकंड में फिर से लॉन्च होगा}other{Chrome # सेकंड में फिर से लॉन्च होगा}}</translation> +<translation id="5514308096618405748">Chrome OS को Linux (बीटा) की तरह ही ज़्यादा <ph name="BEGIN_LINK_CROS_OSS" />ओपन सोर्स सॉफ़्टवेयर<ph name="END_LINK_CROS_OSS" /> के ज़रिए कारगर बनाया गया है.</translation> <translation id="556024056938947818">Google Chrome पासवर्ड दिखाने का प्रयास कर रहा है.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> खरतरनाक हो सकता है, इसलिए Chrome ने उसे अवरोधित कर दिया है.</translation> @@ -187,6 +195,7 @@ <translation id="6291549208091401781">Google Chrome आपके कंप्यूटर पर मौजूद सभी उपयोगकर्ताओं के लिए पहले से इंंस्टॉल है.</translation> <translation id="6338556085225130112">Google Chrome अपडेट हो रहा है</translation> <translation id="6368958679917195344">Chrome OS को अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />ओपन सोर्स सॉफ़्टवेयर<ph name="END_LINK_CROS_OSS" /> द्वारा संभव बनाया गया है.</translation> +<translation id="6468844726266617801">{0,plural, =1{एक दिन के अंदर Chrome को फिर से लॉन्च करें}one{# दिनों के अंदर Chrome को फिर से लॉन्च करें}other{# दिनों के अंदर Chrome को फिर से लॉन्च करें}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome डेवलपर</translation> <translation id="6566149418543181476">Google Chrome अपडेट हो रहा है (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">आप अपनी Chrome सामग्री को सिंक करने के लिए <ph name="PROFILE_EMAIL" /> का उपयोग कर रहे हैं. सिंक करने की अपनी प्राथमिकता को अपडेट करने या 'Google खाते' के बिना क्रोमियम का उपयोग करने के लिए, <ph name="SETTINGS_LINK" /> पर जाएं.</translation> @@ -198,10 +207,12 @@ <translation id="683440813066116847">mDNS ट्रैफ़िक की अनुमति देने के लिए Google Chrome Canary के लिए इनबाउंड नियम.</translation> <translation id="686561893457936865">Chrome को हर कहीं ले जाएं</translation> <translation id="6885412569789873916">Chrome बीटा ऐप्लिकेशन</translation> +<translation id="6964107240822114422">{0,plural, =0{Chrome का एक अपडेट उपलब्ध है}=1{Chrome का एक अपडेट उपलब्ध है}one{Chrome का एक अपडेट # दिनों से उपलब्ध है}other{Chrome का एक अपडेट # दिनों से उपलब्ध है}}</translation> <translation id="6967962315388095737">mDNS ट्रैफ़िक की अनुमति देने के लिए Google Chrome बीटा का इनबाउंड नियम.</translation> <translation id="6970811910055250180">आपका डिवाइस अपडेट किया जा रहा है...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> चाहता है कि इस डिवाइस का उपयोग करने से पहले आप निम्न सेवा की शर्तों पढ़ लें और उन्हें स्वीकार करें. ये शर्तें Chrome OS शर्तों का विस्तार, उनमें बदलाव या उन्हें सीमित नहीं करतीं.</translation> <translation id="6989339256997917931">Google Chrome को अपडेट कर दिया गया है, लेकिन आपने इसका कम से कम 30 दिन से उपयोग नहीं किया है.</translation> +<translation id="7023651421574588884">आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए Chrome OS को रीस्टार्ट करें</translation> <translation id="7098166902387133879">Google Chrome आपके माइक्रोफ़ोन का उपयोग कर रहा है.</translation> <translation id="7106741999175697885">काम का प्रबंधक - Google Chrome</translation> <translation id="7164397146364144019">आप Google को संभावित सुरक्षा घटनाओं के विवरणों की अपने आप रिपोर्ट करके Chrome को अधिक सुरक्षित और आसान बनाने में सहायता कर सकते हैं.</translation> @@ -214,8 +225,10 @@ <translation id="7419046106786626209">Chrome OS आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके डोमेन के लिए समन्वयन उपलब्ध नहीं है.</translation> <translation id="7459554271817304652">वेब पर अपनी व्यक्तिगत ब्राउज़र सुविधाएं सहेजने के लिए समन्वयन सेट करें और उन तक किसी भी कंप्यूटर पर Google Chrome से पहुंचें.</translation> <translation id="7473136999113284234">Chrome अपने आप अपडेट हो जाता है इसलिए आपके पास हमेशा नवीनतम वर्शन रहता है.</translation> +<translation id="7486227612705979895">Chrome पता बार में सुझाव देने के लिए आपका 'डिस्क' एक्सेस करेगा</translation> <translation id="7535429826459677826">Google Chrome डेवलपर</translation> <translation id="7552219221109926349">Chrome OS इस भाषा में दिखाएं</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome एक मिनट में फिर से लॉन्च होगा}one{Chrome # मिनटों में फिर से लॉन्च होगा}other{Chrome # मिनटों में फिर से लॉन्च होगा}}</translation> <translation id="7589360514048265910">इस कंप्यूटर पर अब Google Chrome के अपडेट नहीं मिलेंगे क्योंकि अब इस पर Mac OS X 10.9 की सुविधा नहीं है.</translation> <translation id="7592736734348559088">Google Chrome आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके खाते के प्रवेश विवरण पुराने हैं.</translation> <translation id="7626032353295482388">Chrome में आपका स्वागत है</translation> @@ -237,9 +250,11 @@ <translation id="8008534537613507642">Chrome फिर से इंस्टॉल करें</translation> <translation id="8030318113982266900">आपके डिवाइस को <ph name="CHANNEL_NAME" /> चैनल पर अपडेट किया जा रहा है...</translation> <translation id="8032142183999901390">Chrome से अपना खाता निकालने के बाद, आपको अपने खुले टैब पुन: लोड करने की आवश्यकता हो सकती है, ताकि वे प्रभावी हो सकें.</translation> +<translation id="8077352834923175128">आपके एडमिन का कहना है कि यह अपडेट लागू करने के लिए आप Chrome OS को रीस्टार्ट करें</translation> <translation id="8129812357326543296">&Google Chrome के बारे में</translation> <translation id="8179874765710681175">अपने फ़ोन पर Chrome इंस्टॉल करें. हम आपके फ़ोन पर एक मैसेज (एसएमएस) भेजेंगे.</translation> <translation id="8183957050892517584">Chrome आपके व्यक्तिगत विवरण को सुरक्षित रूप से संग्रहित करेगा, इसलिए आपको इन्हें पुनः लिखने की आवश्यकता नहीं है.</translation> +<translation id="8226081633851087288">{0,plural, =0{अब Chrome OS रीस्टार्ट होगा}=1{Chrome OS एक सेकंड में रीस्टार्ट होगा}one{Chrome OS # सेकंड में रीस्टार्ट होगा}other{Chrome OS # सेकंड में रीस्टार्ट होगा}}</translation> <translation id="8255190535488645436">Google Chrome आपके कैमरे और माइक्रोफ़ोन का उपयोग कर रहा है.</translation> <translation id="8286862437124483331">Google Chrome पासवर्ड दिखाने का प्रयास कर रहा है. इसकी अनुमति देने के लिए अपना Windows पासवर्ड लिखें.</translation> <translation id="8290100596633877290">रुकिए! Google Chrome क्रैश हो गया है. अभी पुन: लॉन्च करें?</translation> @@ -262,6 +277,7 @@ <translation id="870251953148363156">&Google Chrome को अपडेट करें</translation> <translation id="873133009373065397">Google Chrome डिफ़ॉल्ट ब्राउज़र निर्धारित या सेट नहीं कर सकता</translation> <translation id="8736674169840206667">आपका एडमिन चाहता है कि आप अपडेट लागू करने के लिए Chrome को फिर से लॉन्च करें</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS एक मिनट में रीस्टार्ट होगा}one{Chrome OS # मिनटों में रीस्टार्ट होगा}other{Chrome OS # मिनटों में रीस्टार्ट होगा}}</translation> <translation id="8796108026289707191">आपको Google Chrome को अभी पुन: प्रारंभ करना चाहिए.</translation> <translation id="8823341990149967727">Chrome पुराना हो गया है</translation> <translation id="884296878221830158">इससे यह भी नियंत्रित होता है कि जब आप Chrome प्रारंभ करते हैं या होम बटन क्लिक करते हैं तब कौन सा पृष्ठ दिखाया जाए.</translation> @@ -270,6 +286,7 @@ <translation id="9026991721384951619">Chrome OS आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके खाता प्रवेश विवरण पुराने हो चुके हैं.</translation> <translation id="9067395829937117663">Google Chrome के लिए Windows 7 या उसके बाद के वर्शन की आवश्यकता होती है.</translation> <translation id="9084668267983921457">प्रमाणीकरण प्रमाणपत्र विफल रहा. कृपया Google Chrome में फिर से प्रवेश करें या अधिक जानकारी के लिए अपने व्यवस्थापक से संपर्क करें. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS एक घंटे में रीस्टार्ट होगा}one{Chrome OS # घंटों में रीस्टार्ट होगा}other{Chrome OS # घंटों में रीस्टार्ट होगा}}</translation> <translation id="911206726377975832">अपने ब्राउज़िंग डेटा भी हटाएं?</translation> <translation id="919706545465235479">सिंक शुरू करने के लिए Chrome अपडेट करें</translation> <translation id="924447568950697217">Chrome को अपना डिफ़ॉल्ट ब्राउज़र बनाएं</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb index 3ac2588b..38686063a 100644 --- a/chrome/app/resources/google_chrome_strings_hr.xtb +++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">OS Chrome nije mogao sinkronizirati vaše podatke. Ažurirajte zaporku za sinkronizaciju.</translation> <translation id="127345590676626841">Chrome se ažurira automatski, pa uvijek imate najnoviju verziju. Kada se ovo preuzimanje dovrši, Chrome će se ponovo pokrenuti i moći ćete nastaviti.</translation> <translation id="1302523850133262269">Pričekajte da Chrome instalira najnovija ažuriranja sustava.</translation> +<translation id="1312676208694947750">{0,plural, =0{Dostupno je ažuriranje OS-a Chrome}=1{Dostupno je ažuriranje OS-a Chrome}one{Ažuriranje OS-a Chrome dostupno je # dan}few{Ažuriranje OS-a Chrome dostupno je # dana}other{Ažuriranje OS-a Chrome dostupno je # dana}}</translation> <translation id="137466361146087520">Beta verzija preglednika Chrome</translation> <translation id="1393853151966637042">Pomoć za upotrebu Chromea</translation> <translation id="1399397803214730675">Na ovom računalu već postoji novija verzija programa Google Chrome. Ako softver ne radi, deinstalirajte Google Chrome i pokušajte ponovo.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome ne može čitati iz svojeg podatkovnog direktorija niti u njega pisati: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome jest web-preglednik koji web-stranice i aplikacije pokreće brzinom svjetlosti. Brz je, stabilan i jednostavan za upotrebu. Sigurnije pregledavajte web uz zaštitu protiv zlonamjernog i špijunskog softvera koja je ugrađena u Google Chrome.</translation> <translation id="1718131156967340976">Odaberite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome će spremiti tu zaporku na vaš Google račun. Ne morate je pamtiti.</translation> <translation id="174539241580958092">Google Chrome nije mogao sinkronizirati vaše podatke zbog pogreške prilikom prijave.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Pomoć za upotrebu OS-a Chrome</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Instalirajte Chrome na telefon. Poslat ćemo vam SMS na telefonski broj za oporavak računa.</translation> <translation id="2246246234298806438">Google Chrome ne može prikazati pregled ispisa ako nema ugrađeni preglednik PDF-a.</translation> <translation id="2252923619938421629">Pomognite poboljšati Google Chrome tako što ćete prijaviti trenutačne postavke</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome će se ponovo pokrenuti za sat vremena}one{Chrome će se ponovo pokrenuti za # sat}few{Chrome će se ponovo pokrenuti za # sata}other{Chrome će se ponovo pokrenuti za # sati}}</translation> <translation id="2286950485307333924">Prijavljeni ste u Chrome</translation> <translation id="2290014774651636340">Nedostaju ključevi Google API-ja. Neke funkcije Google Chromea bit će onemogućene.</translation> <translation id="2290095356545025170">Jeste li sigurni da želite deinstalirati Google Chrome?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Neka Google Chrome radi u pozadini</translation> <translation id="4895437082222824641">Otvori vezu na novoj &kartici Chromea</translation> <translation id="4921569541910214635">Dijelite računalo? Sada možete prilagoditi Chrome baš kako želite.</translation> +<translation id="4945319281866068441">{0,plural, =1{Ponovo pokrenite OS Chrome u roku od jednog dana}one{Ponovo pokrenite OS Chrome u roku od # dana}few{Ponovo pokrenite OS Chrome u roku od # dana}other{Ponovo pokrenite OS Chrome u roku od # dana}}</translation> <translation id="4953650215774548573">Postavite Google Chrome kao svoj zadani preglednik</translation> <translation id="495931528404527476">U Chromeu</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome nije mogao sinkronizirati vaše podatke. Ažurirajte zaporku za sinkronizaciju.</translation> +<translation id="5062123544085870375">Ponovo pokrenite OS Chrome</translation> +<translation id="5090044601776247154">Profili nadziranih korisnika više neće biti dostupni od Google Chromea 70.</translation> <translation id="5132929315877954718">Otkrijte sjajne aplikacije, igre, proširenja i teme za Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome prikazuje se na tom jeziku</translation> <translation id="5170938038195470297">Vaš se profil ne može upotrijebiti jer pripada novijoj verziji proizvoda Google Chrome. Neke značajke možda nisu dostupne. Navedite drugi direktorij profila ili upotrijebite noviju verziju proizvoda Chrome.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">Upozorenje: Google Chrome ne može spriječiti proširenja u evidentiranju vaše povijesti pregledavanja. Da biste onemogućili proširenje u anonimnom načinu, isključite ovu opciju.</translation> <translation id="5386244825306882791">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromea ili pretraživanja putem višenamjenskog okvira.</translation> <translation id="5430073640787465221">Datoteka vaših postavki oštećena je ili nevažeća. Google Chrome nema mogućnost oporavka vaših postavki.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome će se sada ponovo pokrenuti}=1{Chrome će se ponovo pokrenuti za 1 sekundu}one{Chrome će se ponovo pokrenuti za # sekundu}few{Chrome će se ponovo pokrenuti za # sekunde}other{Chrome će se ponovo pokrenuti za # sekundi}}</translation> +<translation id="5514308096618405748">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog izvornog koda<ph name="END_LINK_CROS_OSS" />, isto kao i Linux (Beta).</translation> <translation id="556024056938947818">Google Chrome pokušava prikazati zaporke.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Datoteka <ph name="FILE_NAME" /> mogla bi biti opasna, pa ju je Chrome blokirao.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome već je instaliran za sve korisnike na računalu.</translation> <translation id="6338556085225130112">Ažuriranje Google Chromea</translation> <translation id="6368958679917195344">OS Chrome omogućen je dodatnim <ph name="BEGIN_LINK_CROS_OSS" />softverom otvorenog koda<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Ponovo pokrenite Chrome u roku od jednog dana}one{Ponovo pokrenite Chrome u roku od # dana}few{Ponovo pokrenite Chrome u roku od # dana}other{Ponovo pokrenite Chrome u roku od # dana}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Ažuriranje Google Chromea (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Upotrebljavate profil <ph name="PROFILE_EMAIL" /> za sinkronizaciju sadržaja u Chromeu. Da biste ažurirali svoje postavke sinkroniziranja ili upotrebljavali Chrome bez Google računa, posjetite <ph name="SETTINGS_LINK" />.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">Ulazno pravilo kako bi Google Chrome Canary dopustio mDNS promet.</translation> <translation id="686561893457936865">Ponesite Chrome svugdje</translation> <translation id="6885412569789873916">Aplikacije preglednika Chrome Beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Dostupno je ažuriranje Chromea}=1{Dostupno je ažuriranje Chromea}one{Ažuriranje Chromea dostupno je # dan}few{Ažuriranje Chromea dostupno je # dana}other{Ažuriranje Chromea dostupno je # dana}}</translation> <translation id="6967962315388095737">Ulazno pravilo kako bi Google Chrome Beta dopustio mDNS promet.</translation> <translation id="6970811910055250180">Ažuriranje uređaja...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> zahtijeva da pročitate i prihvatite sljedeće Uvjete pružanja usluge prije upotrebe ovog uređaja. Ti uvjeti ne predstavljaju proširenje, izmjenu ili ograničenje Uvjeta OS-a Google Chrome.</translation> <translation id="6989339256997917931">Google Chrome ažuriran je, ali vi ga niste upotrebljavali barem 30 dana.</translation> +<translation id="7023651421574588884">Vaš administrator zahtijeva da ponovo pokrenete OS Chrome radi primjene ažuriranja</translation> <translation id="7098166902387133879">Google Chrome upotrebljava vaš mikrofon.</translation> <translation id="7106741999175697885">Upravitelj zadacima - Google Chrome:</translation> <translation id="7164397146364144019">Možete pomoći da Chrome bude sigurniji i jednostavniji za upotrebu tako što ćete omogućiti da se Googleu automatski prijavljuju pojedinosti o mogućim sigurnosnim incidentima.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">OS Chrome nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation> <translation id="7459554271817304652">Postavite sinkronizaciju da biste spremili svoje prilagođene značajke preglednika na web i pristupali im s preglednika Google Chrome na bilo kojem računalu.</translation> <translation id="7473136999113284234">Chrome se automatski ažurira tako da uvijek imate najnoviju verziju.</translation> +<translation id="7486227612705979895">Chrome će pristupati vašem Disku radi prikazivanja prijedloga u adresnoj traci</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Prikaži OS Chrome na tom jeziku</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome će se ponovo pokrenuti za 1 minutu}one{Chrome će se ponovo pokrenuti za # minutu}few{Chrome će se ponovo pokrenuti za # minute}other{Chrome će se ponovo pokrenuti za # minuta}}</translation> <translation id="7589360514048265910">Ovo računalo više neće primati ažuriranja Google Chromea jer Mac OS X 10.9 više nije podržan.</translation> <translation id="7592736734348559088">Google Chrome nije mogao sinkronizirati vaše podatke jer su vaši podaci za prijavu na račun zastarjeli.</translation> <translation id="7626032353295482388">Dobro došli u Chrome</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">Ponovo instaliraj Chrome</translation> <translation id="8030318113982266900">Ažuriranje vašeg uređaja na kanal <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Nakon uklanjanja računa s Chromea možda ćete morati ponovo učitati otvorene kartice kako bi nastupile promjene.</translation> +<translation id="8077352834923175128">Vaš administrator traži da ponovo pokrenete OS Chrome radi primjene tog ažuriranja</translation> <translation id="8129812357326543296">O programu Google Chrome</translation> <translation id="8179874765710681175">Instalirajte Chrome na telefon. Poslat ćemo vam SMS na telefon.</translation> <translation id="8183957050892517584">Chrome će pohraniti vaše osobne podatke na siguran način tako da ih ne morate ponovo upisivati.</translation> +<translation id="8226081633851087288">{0,plural, =0{OS Chrome sada će se ponovo pokrenuti}=1{OS Chrome ponovo će se pokrenuti za 1 sekundu}one{OS Chrome ponovo će se pokrenuti za # sekundu}few{OS Chrome ponovo će se pokrenuti za # sekunde}other{OS Chrome ponovo će se pokrenuti za # sekundi}}</translation> <translation id="8255190535488645436">Google Chrome upotrebljava vašu kameru i mikrofon.</translation> <translation id="8286862437124483331">Google Chrome pokušava prikazati zaporke. Upišite svoju zaporku za Windows da biste to dopustili.</translation> <translation id="8290100596633877290">Opa! Google Chrome je pao. Ponovo pokrenuti sada?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">Ažuriranje preglednika Google Chrome</translation> <translation id="873133009373065397">Google Chrome ne može utvrditi niti postaviti zadani preglednik</translation> <translation id="8736674169840206667">Vaš administrator zahtijeva da ponovo pokrenete Chrome radi primjene ažuriranja</translation> +<translation id="8791470158600044404">{0,plural, =1{OS Chrome ponovo će se pokrenuti za 1 minutu}one{OS Chrome ponovo će se pokrenuti za # minutu}few{OS Chrome ponovo će se pokrenuti za # minute}other{OS Chrome ponovo će se pokrenuti za # minuta}}</translation> <translation id="8796108026289707191">Sada trebate ponovo pokrenuti Google Chrome.</translation> <translation id="8823341990149967727">Chrome je zastario</translation> <translation id="884296878221830158">Upravlja i time koja se stranica prikazuje prilikom pokretanja Chromea ili kada se klikne gumb Početna.</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">OS Chrome nije mogao sinkronizirati vaše podatke jer su vaši podaci za prijavu na račun zastarjeli.</translation> <translation id="9067395829937117663">Google Chrome zahtijeva Windows 7 ili noviju verziju.</translation> <translation id="9084668267983921457">Certifikat za autentifikaciju nije uspio. Prijavite se ponovo u Google Chrome ili se obratite administratoru za više informacija. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{OS Chrome ponovo će se pokrenuti za sat vremena}one{OS Chrome ponovo će se pokrenuti za # sat}few{OS Chrome ponovo će se pokrenuti za # sata}other{OS Chrome ponovo će se pokrenuti za # sati}}</translation> <translation id="911206726377975832">Izbrisati i podatke o pregledavanju?</translation> <translation id="919706545465235479">Ažurirajte Chrome da bi se pokrenula sinkronizacija</translation> <translation id="924447568950697217">Postavljanje Chromea kao zadanog preglednika</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb index 25bfb2a92..6cfe1119 100644 --- a/chrome/app/resources/google_chrome_strings_iw.xtb +++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">מערכת ההפעלה של Chrome לא הצליחה לסנכרן את הנתונים שלך. עדכן את משפט הסיסמה שלך לסנכרון.</translation> <translation id="127345590676626841">Chrome מתעדכן באופן אוטומטי, כך שתמיד ברשותך הגרסה העדכנית ביותר. כשההורדה תסתיים, Chrome יופעל מחדש ותוכל להמשיך.</translation> <translation id="1302523850133262269">המתן בזמן ש-Chrome מתקין את עדכוני המערכת האחרונים.</translation> +<translation id="1312676208694947750">{0,plural, =0{יש עדכון זמין של Chrome OS}=1{יש עדכון זמין של Chrome OS}two{עדכון של Chrome OS זמין כבר יומיים}many{עדכון של Chrome OS זמין כבר # ימים}other{עדכון של Chrome OS זמין כבר # ימים}}</translation> <translation id="137466361146087520">גרסת הביטא של Google Chrome</translation> <translation id="1393853151966637042">קבלת עזרה לשימוש ב-Chrome</translation> <translation id="1399397803214730675">במחשב זה מותקנת כבר גירסה עדכנית יותר של Google Chrome. אם התוכנה אינה פועלת, הסר את ההתקנה של Google Chrome ונסה שוב.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome אינו יכול לקרוא ולכתוב בספריית הנתונים שלו: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome הוא דפדפן אינטרנט המפעיל דפי אינטרנט ואפליקציות במהירות הבזק. זהו דפדפן מהיר, יציב וקל לשימוש. תוכל לגלוש באינטרנט בצורה בטוחה יותר הודות להגנה מפני תוכנות זדוניות ודיוג, המובנית ב-Google Chrome.</translation> <translation id="1718131156967340976">בחר ב-<ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">הסיסמה הזאת תישמר על ידי Chrome בחשבון Google. אין צורך לזכור אותה.</translation> <translation id="174539241580958092">Google Chrome לא הצליח לסנכרן את הנתונים שלך בשל שגיאת כניסה.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">עזרה לשימוש ב-Chrome OS</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">התקן את Chrome בטלפון שלך, ונשלח הודעת SMS למספר שמוגדר לשחזור החשבון.</translation> <translation id="2246246234298806438">Google Chrome אינו יכול להצג תצוגה מקדימה של ההדפסה כאשר מציג ה-PDF המובנה חסר.</translation> <translation id="2252923619938421629">עזור לשפר את Google Chrome על ידי דיווח על ההגדרות הנוכחיות</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome יופעל מחדש בעוד שעה}two{Chrome יופעל מחדש בעוד שעתיים}many{Chrome יופעל מחדש בעוד # שעות}other{Chrome יופעל מחדש בעוד # שעות}}</translation> <translation id="2286950485307333924">אתה מחובר כעת ל-Chrome</translation> <translation id="2290014774651636340">המפתחות של Google API חסרים. פונקציונליות מסוימת של Google Chrome תהיה מושבתת.</translation> <translation id="2290095356545025170">האם אתה בטוח שאתה רוצה להסיר את Google Chrome?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">אפשר ל-Google Chrome לפעול ברקע</translation> <translation id="4895437082222824641">פתח את הקישור ב&כרטיסיית Chrome חדשה</translation> <translation id="4921569541910214635">משתף את המחשב? עכשיו תוכל להגדיר את Chrome בדיוק כמו שאתה אוהב.</translation> +<translation id="4945319281866068441">{0,plural, =1{צריך להפעיל מחדש את Chrome OS תוך יום אחד}two{צריך להפעיל מחדש את Chrome OS תוך יומיים}many{צריך להפעיל מחדש את Chrome OS תוך # ימים}other{צריך להפעיל מחדש את Chrome OS תוך # ימים}}</translation> <translation id="4953650215774548573">הגדר את Google Chrome כדפדפן ברירת המחדל</translation> <translation id="495931528404527476">ב-Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome לא הצליח לסנכרן את הנתונים שלך. עדכן את משפט הסיסמה שלך עבור סנכרון.</translation> +<translation id="5062123544085870375">הפעלה מחדש של Chrome OS</translation> +<translation id="5090044601776247154">פרופילים של משתמשים בפיקוח יפסיקו להיות זמינים החל מ-Google Chrome 70.</translation> <translation id="5132929315877954718">גלה יישומים, משחקים, תוספים ועיצובים מעולים עבור Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome מוצג בשפה זו</translation> <translation id="5170938038195470297">לא ניתן להשתמש בפרופיל שלך משום שהוא מגרסה חדשה יותר של Google Chrome. ייתכן שחלק מהתכונות לא יהיו זמינות. ציין ספריית פרופיל אחרת או השתמש בגרסה חדשה יותר של Chrome.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">אזהרה: Google Chrome לא יכול למנוע מתוספים לתעד את היסטוריית הגלישה שלך. כדי להשבית את התוסף הזה במצב גלישה בסתר, יש לבטל את האפשרות הזו.</translation> <translation id="5386244825306882791">הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chrome או מבצע חיפוש מסרגל הכתובות.</translation> <translation id="5430073640787465221">קובץ ההעדפות שלך פגום או לא חוקי. Google Chrome לא יכול לשחזר את ההגדרות שלך.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome יופעל מחדש עכשיו}=1{Chrome יופעל מחדש בעוד שנייה}two{Chrome יופעל מחדש בעוד 2 שניות}many{Chrome יופעל מחדש בעוד # שניות}other{Chrome יופעל מחדש בעוד # שניות}}</translation> +<translation id="5514308096618405748">הפיתוח של Chrome OS אפשרי בזכות <ph name="BEGIN_LINK_CROS_OSS" />תוכנות קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספות, כמו Linux (בטא).</translation> <translation id="556024056938947818">Google Chrome מנסה להציג סיסמאות.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> עלול להיות מסוכן, ולכן Chrome חסם אותו.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome כבר מותקן במחשב ונגיש לכל המשתמשים.</translation> <translation id="6338556085225130112">מעדכן את Google Chrome</translation> <translation id="6368958679917195344">השימוש במערכת ההפעלה של Chrome מתאפשר באמצעות <ph name="BEGIN_LINK_CROS_OSS" />תוכנת קוד פתוח<ph name="END_LINK_CROS_OSS" /> נוספת.</translation> +<translation id="6468844726266617801">{0,plural, =1{צריך להפעיל מחדש את Chrome תוך יום אחד}two{צריך להפעיל מחדש את Chrome תוך יומיים}many{צריך להפעיל מחדש את Chrome תוך # ימים}other{צריך להפעיל מחדש את Chrome תוך # ימים}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome בגירסת פיתוח</translation> <translation id="6566149418543181476">מעדכן את Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">אתה משתמש ב-<ph name="PROFILE_EMAIL" /> כדי לסנכרן את הפריטים שלך ב-Chrome. עבור אל '<ph name="SETTINGS_LINK" />' כדי לעדכן את העדפות הסנכרון או להשתמש ב-Chrome ללא חשבון Google.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">כלל נכנס עבור הגרסה הניסיונית של Google Chrome על מנת לאפשר תנועת mDNS.</translation> <translation id="686561893457936865">לוקחים את Chrome לכל מקום</translation> <translation id="6885412569789873916">אפליקציות לגרסת הביטא של Chrome</translation> +<translation id="6964107240822114422">{0,plural, =0{יש עדכון זמין של Chrome}=1{יש עדכון זמין של Chrome}two{עדכון של Chrome זמין כבר יומיים}many{עדכון של Chrome זמין כבר # ימים}other{עדכון של Chrome זמין כבר # ימים}}</translation> <translation id="6967962315388095737">כלל נכנס לגרסת הביטא של Google Chrome כדי לאפשר תנועת mDNS.</translation> <translation id="6970811910055250180">מעדכן את המכשיר שלך...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> דורש שתקרא ותקבל את התנאים וההגבלות הבאים לפני שתשתמש במכשיר הזה. תנאים אלה אינם מרחיבים, משנים או מגבילים את התנאים לשימוש במערכת ההפעלה של Google Chrome.</translation> <translation id="6989339256997917931">Google Chrome עודכן, אך לא השתמשת בו לפחות 30 ימים.</translation> +<translation id="7023651421574588884">לפי הדרישה של מנהל המערכת, צריך להפעיל מחדש את Chrome OS כדי להחיל עדכון</translation> <translation id="7098166902387133879">Google Chrome משתמש במיקרופון שלך.</translation> <translation id="7106741999175697885">מנהל המשימות - Google Chrome</translation> <translation id="7164397146364144019">אתה יכול לעזור לשפר את הבטיחות של Chrome ולהקל את השימוש בו על ידי דיווח אוטומטי על פרטים של בעיות אבטחה אפשריות ל-Google.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">מערכת ההפעלה של Chrome לא הצליחה לסנכרן את הנתונים שלך מפני שהסנכרון אינו זמין עבור הדומיין שלך.</translation> <translation id="7459554271817304652">הגדר סנכרון כדי לשמור את תכונות הדפדפן המותאמות אישית שלך באינטרנט ולגשת אליהן מ-Google Chrome בכל מחשב.</translation> <translation id="7473136999113284234">Chrome מתעדכן באופן אוטומטי, כך שתמיד נמצאת ברשותך הגרסה העדכנית ביותר.</translation> +<translation id="7486227612705979895">Chrome ייגש ל-Drive שלך כדי להציג הצעות בסרגל הכתובות</translation> <translation id="7535429826459677826">גרסת הפיתוח של Google Chrome</translation> <translation id="7552219221109926349">הצג את מערכת ההפעלה של Chrome בשפה זו</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome יופעל מחדש בעוד דקה}two{Chrome יופעל מחדש בעוד 2 דקות}many{Chrome יופעל מחדש בעוד # דקות}other{Chrome יופעל מחדש בעוד # דקות}}</translation> <translation id="7589360514048265910">המחשב הזה יפסיק לקבל עדכונים של Google Chrome כי כבר אין תמיכה בגירסה 10.9 של Mac OS X.</translation> <translation id="7592736734348559088">Google Chrome לא הצליח לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation> <translation id="7626032353295482388">ברוכים הבאים ל-Chrome</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">התקן מחדש את Chrome</translation> <translation id="8030318113982266900">מעדכן את המכשיר שלך לערוץ <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">לאחר הסרת החשבון שלך מ-Chrome, ייתכן שתידרש לטעון מחדש את הכרטיסיות הפתוחות שלך כדי שההסרה תיושם בפועל.</translation> +<translation id="8077352834923175128">לפי הבקשה של מנהל המערכת, צריך להפעיל מחדש את Chrome OS כדי להחיל את העדכון הזה</translation> <translation id="8129812357326543296">מידע על Google Chrome&</translation> <translation id="8179874765710681175">התקן את Chrome בטלפון שלך, ונשלח אליו הודעת SMS.</translation> <translation id="8183957050892517584">Chrome יאחסן את הפרטים האישיים שלך באופן מאובטח כדי שלא תידרש להקליד אותם שוב.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS תופעל מחדש עכשיו}=1{Chrome OS תופעל מחדש בעוד שנייה אחת}two{Chrome OS תופעל מחדש בעוד 2 שניות}many{Chrome OS תופעל מחדש בעוד # שניות}other{Chrome OS תופעל מחדש בעוד # שניות}}</translation> <translation id="8255190535488645436">Google Chrome משתמש במצלמה ובמיקרופון שלך.</translation> <translation id="8286862437124483331">Google Chrome מנסה להציג סיסמאות. הקלד את הסיסמה שלך ל-Windows כדי לאפשר זאת.</translation> <translation id="8290100596633877290">אופס! Google Chrome קרס. להפעיל מחדש עכשיו?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">עדכן את Google Chrome&</translation> <translation id="873133009373065397">Google Chrome אינו יכול לקבוע או להגדיר את דפדפן ברירת המחדל</translation> <translation id="8736674169840206667">לפי דרישת מנהל המערכת, יש להפעיל מחדש את Chrome כדי להחיל עדכון</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS תופעל מחדש בעוד דקה אחת}two{Chrome OS תופעל מחדש בעוד 2 דקות}many{Chrome OS תופעל מחדש בעוד # דקות}other{Chrome OS תופעל מחדש בעוד # דקות}}</translation> <translation id="8796108026289707191">עליך לאתחל את Google Chrome עכשיו.</translation> <translation id="8823341990149967727">Chrome אינו מעודכן</translation> <translation id="884296878221830158">הגדרה זו גם קובעת איזה דף מוצג כשאתה מפעיל את Chrome או לוחץ על הלחצן 'דף הבית'.</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">מערכת ההפעלה של Chrome לא הצליחה לסנכרן את הנתונים שלך מפני שפרטי הכניסה של חשבונך אינם מעודכנים.</translation> <translation id="9067395829937117663">כדי להשתמש ב-Google Chrome יש צורך ב-Windows מגירסה 7 ואילך.</translation> <translation id="9084668267983921457">אישור האימות נכשל. עליך להיכנס שוב לחשבונך ב-Google Chrome או לפנות למנהל המערכת שלך לקבלת מידע נוסף. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS תופעל מחדש בעוד שעה אחת}two{Chrome OS תופעל מחדש בעוד שעתיים}many{Chrome OS תופעל מחדש בעוד # שעות}other{Chrome OS תופעל מחדש בעוד # שעות}}</translation> <translation id="911206726377975832">למחוק גם את נתוני הגלישה שלך?</translation> <translation id="919706545465235479">עדכן את Chrome כדי להתחיל את הסנכרון</translation> <translation id="924447568950697217">הגדר את Chrome בתור דפדפן ברירת המחדל</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb index 87c4c1a..59c9152 100644 --- a/chrome/app/resources/google_chrome_strings_kn.xtb +++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">ನಿಮ್ಮ ಡೇಟಾವನ್ನು Chrome OS ಗೆ ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> <translation id="127345590676626841">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯುನ್ನು ಹೊಂದಿರುತ್ತೀರಿ. ಈ ಡೌನ್ಲೋಡ್ ಸಂಪೂರ್ಣಗೊಂಡಾಗ, Chrome ಮರುಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಾರ್ಗದಲ್ಲಿ ನೀವು ಇರಬೇಕಾಗುತ್ತದೆ.</translation> <translation id="1302523850133262269">ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chrome ಸ್ಥಾಪಿಸುವಾಗ ದಯವಿಟ್ಟು ಕಾಯಿರಿ.</translation> +<translation id="1312676208694947750">{0,plural, =0{Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳಿಗಾಗಿ Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳಿಗಾಗಿ Chrome OS ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation> <translation id="137466361146087520">Google Chrome ಬೀಟಾ</translation> <translation id="1393853151966637042">Chrome ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದರೊಂದಿಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation> <translation id="1399397803214730675">ಈ ಕಂಪ್ಯೂಟರ್ ಈಗಾಗಲೇ ತೀರಾ ಇತ್ತೀಚೆಗಿನ Google Chrome ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿದೆ. ಸಾಫ್ಟ್ವೇರ್ ಕಾರ್ಯ ನಿರ್ವಹಿಸದೆ ಇದ್ದರೆ, ದಯವಿಟ್ಟು Google Chrome ಅನ್ನು ಅನ್ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ.</translation> @@ -31,6 +32,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome ವೆಬ್ ಆಧಾರಿತ ಬ್ರೌಸರ್ ಆಗಿದ್ದು, ಅದು ಮಿಂಚಿನ ವೇಗದಲ್ಲಿ ವೆಬ್ ಪುಟಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುತ್ತದೆ. ಅದು ವೇಗ, ದೃಢ ಮತ್ತು ಬಳಸಲು ಸುಲಭವಾಗಿದೆ. Google Chrome ನೊಳಗೆ ರಚಿತವಾಗಿರುವ ಮಾಲ್ವೇರ್ ಮತ್ತು ಫಿಶಿಂಗ್ ರಕ್ಷಣೆಯೊಂದಿಗೆ ವೆಬ್ ಅನ್ನು ಹೆಚ್ಚು ಸುರಕ್ಷಿತವಾಗಿ ಬ್ರೌಸ್ ಮಾಡಿ.</translation> <translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> ಆಯ್ಕೆಮಾಡಿ</translation> +<translation id="1734234790201236882">Chrome, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಈ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಉಳಿಸುತ್ತದೆ. ನೀವು ಅದನ್ನು ನೆನಪಿಡುವ ಅಗತ್ಯವಿರುವುದಿಲ್ಲ.</translation> <translation id="174539241580958092">ಸೈನ್ ಇನ್ ಮಾಡುವಲ್ಲಿ ದೋಷವಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Google Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Chrome OS ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದರೊಂದಿಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation> @@ -48,6 +50,7 @@ <translation id="216054706567564023">ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ Chrome ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಖಾತೆ ಮರುಪ್ರಾಪ್ತಿ ಫೋನ್ ಸಂಖ್ಯೆಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ.</translation> <translation id="2246246234298806438">ಬಿಲ್ಟ್ ಇನ್ PDF ವೀಕ್ಷಣೆಯು ಕಾಣೆಯಾಗಿರುವಾಗ Google Chrome ಮುದ್ರಣ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ತೋರಿಸುವುದಿಲ್ಲ.</translation> <translation id="2252923619938421629">ಪ್ರಸ್ತುತ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ವರದಿ ಮಾಡುವುದರ ಮೂಲಕ Google Chrome ಅನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯಮಾಡಿ</translation> +<translation id="225363235161345695">{0,plural, =1{ಒಂದು ಗಂಟೆಯಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{ # ಗಂಟೆಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{ # ಗಂಟೆಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="2286950485307333924">ನೀವು ಇದೀಗ Chrome ಗೆ ಸೈನ್ ಇನ್ ಆಗಿರುವಿರಿ</translation> <translation id="2290014774651636340">Google API ಕೀಗಳು ಕಾಣೆಯಾಗಿವೆ. Google Chrome ನ ಕೆಲವು ಕಾರ್ಯವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation> <translation id="2290095356545025170">ನೀವು ಖಚಿತವಾಗಿ Google Chrome ಸ್ಥಾಪನೆಯನ್ನು ತೆಗೆಯಲು ಬಯಸುತ್ತೀರಾ?</translation> @@ -147,10 +150,13 @@ <translation id="4891791193823137474">Google Chrome ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಚಾಲನೆಯಾಗಲು ಅನುಮತಿಸಿ</translation> <translation id="4895437082222824641">ಹೊಸ Chrome &ಟ್ಯಾಬ್ನಲ್ಲಿ ಲಿಂಕ್ ಅನ್ನು ತೆರೆಯಿರಿ</translation> <translation id="4921569541910214635">ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದೇ? ಇದೀಗ ನೀವು ಇಷ್ಟಪಡುವ ಮಾರ್ಗದ ಮೂಲಕ ಇದೀಗ ನೀವು Chrome ಹೊಂದಿಸಬಹುದು.</translation> +<translation id="4945319281866068441">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="4953650215774548573">Google Chrome ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation> <translation id="495931528404527476">Chrome ನಲ್ಲಿ</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome ನಲ್ಲಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್ಫ್ರೇಸ್ ಅನ್ನು ನವೀಕರಿಸಿ.</translation> +<translation id="5062123544085870375">Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ</translation> +<translation id="5090044601776247154">Google Chrome 70 ರಿಂದ ಆರಂಭಗೊಂಡು, ಮೇಲ್ವಿಚಾರಣಾ ಬಳಕೆದಾರರ ಪ್ರೊಫೈಲ್ಗಳು ಇನ್ನು ಮುಂದೆ ಲಭ್ಯವಿರುವುದಿಲ್ಲ.</translation> <translation id="5132929315877954718">Google Chrome ಸಲುವಾಗಿ ಉತ್ಕೃಷ್ಟಮಟ್ಟದ ಅಪ್ಲಿಕೇಶನ್ಗಳು, ಗೇಮ್ಗಳು, ವಿಸ್ತರಣೆಗಳು ಹಾಗೂ ಥೀಮ್ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ</translation> <translation id="5166975452760862670">ಈ ಭಾಷೆಯಲ್ಲಿ Google Chrome ಪ್ರದರ್ಶನಗೊಂಡಿದೆ</translation> <translation id="5170938038195470297">ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ Google Chrome ನ ಹೊಸ ಆವೃತ್ತಿಯಿಂದ ಆಗಿರುವ ಕಾರಣ ಅದನ್ನು ಬಳಸಲಾಗುವುದಿಲ್ಲ. ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಲಭ್ಯವಿಲ್ಲದಿರಬಹುದು. ದಯವಿಟ್ಟು ಬೇರೆಯ ಪ್ರೊಫೈಲ್ ಡೈರೆಕ್ಟರಿಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ ಅಥವಾ Chrome ನ ಹೊಸ ಆವೃತ್ತಿಯನ್ನು ಬಳಸಿ.</translation> @@ -160,6 +166,8 @@ <translation id="532046782124376502">ಎಚ್ಚರಿಕೆ: ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸದಲ್ಲಿ ರೆಕಾರ್ಡಿಂಗ್ನಿಂದ ವಿಸ್ತರಣೆಗಳನ್ನು ತಡೆಯುವುದಿಲ್ಲ. ಅಜ್ಞಾತ ಮೋಡ್ನಲ್ಲಿ ವಿಸ್ತರಣೆಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲು ಈ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಬೇಡಿ.</translation> <translation id="5386244825306882791">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಓಮ್ನಿಬಾಕ್ಸ್ ನಿಂದ ಹುಡುಕಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> <translation id="5430073640787465221">ನಿಮ್ಮ ಪ್ರಾಶಸ್ತ್ಯಗಳ ಫೈಲ್ ದೋಷಪೂರಿತವಾಗಿದೆ ಅಥವಾ ಅಮಾನ್ಯವಾಗಿದೆ. ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್ಗಳನ್ನು ಮರುಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ Google Chrome ವಿಫಲಗೊಂಡಿದೆ.</translation> +<translation id="5483595757826856374">{0,plural, =0{ಇದೀಗ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಂಕೆಂಡಿನಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> +<translation id="5514308096618405748">ಹೆಚ್ಚುವರಿ <ph name="BEGIN_LINK_CROS_OSS" />ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್ವೇರ್<ph name="END_LINK_CROS_OSS" /> ನಿಂದ Chrome OS ನ ರಚನೆ ಸಾಧ್ಯವಾಯಿತು. ಹಾಗೆಯೇ Linux (ಬೀಟಾ) ನದೂ ಸಹ.</translation> <translation id="556024056938947818">Google Chrome ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ತೋರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> ಅಪಾಯಕಾರಿಯಾಗಿರಬಹುದು, ಹಾಗಾಗಿ Chrome ಅದನ್ನು ನಿರ್ಬಂಧಿಸಿದೆ.</translation> @@ -185,6 +193,7 @@ <translation id="6291549208091401781">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿನ ಎಲ್ಲ ಬಳಕೆದಾರರಿಗೆ ಈಗಾಗಲೇ Google Chrome ಸ್ಥಾಪಿತವಾಗಿದೆ.</translation> <translation id="6338556085225130112">Google Chrome ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation> <translation id="6368958679917195344">ಹೆಚ್ಚುವರಿ <ph name="BEGIN_LINK_CROS_OSS" />ತೆರೆದ ಮೂಲ ಸಾಫ್ಟ್ವೇರ್<ph name="END_LINK_CROS_OSS" /> ನಿಂದ Chrome OS ಮಾಡಲು ಸಾಧ್ಯ.</translation> +<translation id="6468844726266617801">{0,plural, =1{ಒಂದು ದಿನದೊಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}one{# ದಿನಗಳ ಒಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}other{# ದಿನಗಳ ಒಳಗೆ Chrome ಮರುಪ್ರಾರಂಭಿಸಿ}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">ನಿಮ್ಮ Chrome ವಿಷಯವನ್ನು ಸಿಂಕ್ ಮಾಡಲು ನೀವು <ph name="PROFILE_EMAIL" /> ಅನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ. Google ಖಾತೆಯಿಲ್ಲದೆ ನಿಮ್ಮ ಸಿಂಕ್ ಪ್ರಾಶಸ್ತ್ಯಗಳನ್ನು ನವೀಕರಿಸಲು ಅಥವಾ Chrome ಬಳಸಲು <ph name="SETTINGS_LINK" /> ಗೆ ಭೇಟಿ ನೀಡಿ.</translation> @@ -196,10 +205,12 @@ <translation id="683440813066116847">mDNS ಟ್ರಾಫಿಕ್ಗೆ ಅನುಮತಿಸುವ ನಿಟ್ಟಿನಲ್ಲಿ Google Chrome ಕ್ಯಾನರಿಗೆ ಒಳಬರುವ ನಿಯಮ.</translation> <translation id="686561893457936865">ಎಲ್ಲೆಡೆ Chrome ಅನ್ನು ಕೊಂಡೊಯ್ಯಿರಿ</translation> <translation id="6885412569789873916">Chrome ಬೀಟಾ ಅಪ್ಲಿಕೇಶನ್ಗಳು</translation> +<translation id="6964107240822114422">{0,plural, =0{Chrome ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}=1{Chrome ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}one{# ದಿನಗಳಿಗಾಗಿ Chrome ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}other{# ದಿನಗಳಿಗಾಗಿ Chrome ಅಪ್ಡೇಟ್ ಲಭ್ಯವಿದೆ}}</translation> <translation id="6967962315388095737">mDNS ಟ್ರಾಫಿಕ್ಗೆ ಅನುಮತಿಸುವ ನಿಟ್ಟಿನಲ್ಲಿ Google Chrome ಬೀಟಾಗೆ ಒಳಬರುವ ನಿಯಮ.</translation> <translation id="6970811910055250180">ನಿಮ್ಮ ಸಾಧನವನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> ಈ ಸಾಧನವನ್ನು ಬಳಸುವ ಮೊದಲು ಕೆಳಗಿನ ಸೇವಾ ನಿಯಗಳನ್ನು ನೀವು ಓದುವ ಹಾಗೂ ಸಮ್ಮತಿಸುವ ಅವಶ್ಯಕತೆ ಇದೆ. ಈ ನಿಯಮಗಳನ್ನು ವಿಸ್ತರಿಸಲು, ಮಾರ್ಪಡಿಸಲು, ಅಥವಾ Chromium OS ನಿಯಮಗಳನ್ನು ಮಿತಿಗೊಳಿಸಲು ಆಗುವುದಿಲ್ಲ.</translation> <translation id="6989339256997917931">Google Chrome ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ, ಆದರೆ ನೀವು ಕನಿಷ್ಠ 30 ದಿನಗಳವರೆಗಾದರೂ ಇದನ್ನು ಬಳಸಿರಲಿಕ್ಕಿಲ್ಲ. </translation> +<translation id="7023651421574588884">ಅಪ್ಡೇಟ್ ಒಂದನ್ನು ಅನ್ವಯಿಸಬೇಕೆಂದರೆ, ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗಾಗಿ ನೀವು Chrome OS ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ</translation> <translation id="7098166902387133879">Google Chrome ನಿಮ್ಮ ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ.</translation> <translation id="7106741999175697885">ಕಾರ್ಯ ನಿರ್ವಾಹಕ - Google Chrome</translation> <translation id="7164397146364144019">ನೀವು Google ಗೆ ಸಂಭಾವ್ಯ ಸುರಕ್ಷತೆಗೆ ಸಂಬಂಧಿಸಿದ ಘಟನೆಗಳ ವಿವರಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ವರದಿ ಮಾಡುವ ಮೂಲಕ Chrome ಅನ್ನು ಸುರಕ್ಷಿತಗೊಳಿಸಲು ಮತ್ತು ಬಳಕೆಗೆ ಸುಲಭಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು.</translation> @@ -212,8 +223,10 @@ <translation id="7419046106786626209">ನಿಮ್ಮ ಡೊಮೇನ್ನಲ್ಲಿ ಸಿಂಕ್ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation> <translation id="7459554271817304652">ನಿಮ್ಮ ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಬ್ರೌಸರ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ವೆಬ್ಗೆ ಉಳಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು Google Chrome ನಿಂದ ಯಾವುದೇ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ ಪ್ರವೇಶಿಸಲು ಸಿಂಕ್ ಅನ್ನು ಹೊಂದಿಸಿ.</translation> <translation id="7473136999113284234">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಣಗೊಳ್ಳುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುತ್ತೀರಿ.</translation> +<translation id="7486227612705979895">ವಿಳಾಸಪಟ್ಟಿಯಲ್ಲಿ ಸಲಹೆ ನೀಡಲು, Chrome ನಿಮ್ಮ ಡ್ರೈವ್ಗೆ ಪ್ರವೇಶಿಸುತ್ತದೆ.</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Chrome OS ಈ ಭಾಷೆಯಲ್ಲಿ ಪ್ರದರ್ಶಿಸಿ</translation> +<translation id="7561940363513215021">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="7589360514048265910">ಈ ಕಂಪ್ಯೂಟರ್ ಇನ್ನು ಮುಂದೆ Google Chrome ಅಪ್ಡೇಟ್ಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದಿಲ್ಲ. ಏಕೆಂದರೆ ಅದರ Mac OS X 10.9 ಇನ್ನು ಮುಂದೆ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ.</translation> <translation id="7592736734348559088">ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳು ತೀರಾ ಹಳತಾಗಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Google Chrome ಗೆ ಸಾಧ್ಯವಾಗಲಿಲ್ಲ.</translation> <translation id="7626032353295482388">Chrome ಗೆ ಸ್ವಾಗತ</translation> @@ -235,9 +248,11 @@ <translation id="8008534537613507642">Chrome ಅನ್ನು ಮರು ಸ್ಥಾಪಿಸು</translation> <translation id="8030318113982266900">ನಿಮ್ಮ ಸಾಧನವನ್ನು <ph name="CHANNEL_NAME" /> ಚಾನಲ್ಗೆ ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ...</translation> <translation id="8032142183999901390">Chrome ನಿಂದ ನಿಮ್ಮ ಖಾತೆಯನ್ನು ತೆಗೆದುಹಾಕಿದ ನಂತರ, ಪರಿಣಾಮಕಾರಿಯಾಗಲು ನಿಮ್ಮ ತೆರೆದ ಟ್ಯಾಬ್ಗಳನ್ನು ನೀವು ಮರುಲೋಡ್ ಮಾಡುವ ಅಗತ್ಯವಿದೆ.</translation> +<translation id="8077352834923175128">ಈ ಅಪ್ಡೇಟ್ ಅನ್ನು ಅನ್ವಯಿಸಲು, ನೀವು Chrome OS ಮರುಪ್ರಾರಂಭಿಸಿ ಎಂದು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಕೇಳಿಕೊಳ್ಳುತ್ತಾರೆ</translation> <translation id="8129812357326543296">&Google Chrome ಕುರಿತು</translation> <translation id="8179874765710681175">ನಿಮ್ಮ ಫೋನ್ನಲ್ಲಿ Chrome ಅನ್ನು ಸ್ಥಾಪಿಸಿ. ನಿಮ್ಮ ಫೋನ್ಗೆ ನಾವು ಎಸ್ಎಂಎಸ್ ಕಳುಹಿಸುತ್ತೇವೆ.</translation> <translation id="8183957050892517584">Chrome ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ವಿವರಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಿಕೊಳ್ಳುತ್ತದೆ ಇದರಿಂದಾಗಿ ನೀವು ಅವುಗಳನ್ನು ಮತ್ತೆ ಟೈಪ್ ಮಾಡಬೇಕಾಗಿಲ್ಲ.</translation> +<translation id="8226081633851087288">{0,plural, =0{ ಇದೀಗ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}=1{1 ಸೆಕೆಂಡ್ನಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ಸೆಕೆಂಡುಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="8255190535488645436">Google Chrome ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೋಫೋನ್ ಅನ್ನು ಬಳಸುತ್ತಿದೆ.</translation> <translation id="8286862437124483331">Google Chrome ಪಾಸ್ವರ್ಡ್ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ. ಇದಕ್ಕೆ ಅನುಮತಿಸಲು ನಿಮ್ಮ Windows ಪಾಸ್ವರ್ಡ್ ಟೈಪ್ ಮಾಡಿ.</translation> <translation id="8290100596633877290">ಓಹ್! Google Chrome ಕ್ರ್ಯಾಶ್ ಆಗಿದೆ.ಇದೀಗ ಮರುಪ್ರಾರಂಭಿಸುವುದೆ?</translation> @@ -261,6 +276,7 @@ <translation id="870251953148363156">&Google Chrome ನವೀಕರಿಸಿ</translation> <translation id="873133009373065397">ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಅನ್ನು ನಿರ್ಧರಿಸಲು ಅಥವಾ ಹೊಂದಿಸಲು Google Chrome ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ</translation> <translation id="8736674169840206667">ಅಪ್ಡೇಟ್ ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ನೀವು Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸುವ ಅಗತ್ಯವಿದೆ</translation> +<translation id="8791470158600044404">{0,plural, =1{1 ನಿಮಿಷದಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{# ನಿಮಿಷಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="8796108026289707191">ನೀವು ಇದೀಗ Google Chrome ಅನ್ನು ಮರುಪ್ರಾರಂಭಿಸಬೇಕು.</translation> <translation id="8823341990149967727">Chrome ನ ಅವಧಿ ಮುಗಿದಿದೆ</translation> <translation id="884296878221830158">ನೀವು Chrome ಪ್ರಾರಂಭಿಸಿದಾಗ ಅಥವಾ ಮುಖಪುಟ ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ತೋರಿಸಬೇಕಾದ ಪುಟವನ್ನು ಕೂಡಾ ಇದು ನಿಯಂತ್ರಿಸುತ್ತದೆ.</translation> @@ -269,6 +285,7 @@ <translation id="9026991721384951619">ನಿಮ್ಮ ಖಾತೆಯ ಸೈನ್ ಇನ್ ವಿವರಗಳು ಹಳೆಯದಾಗಿರುವ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation> <translation id="9067395829937117663">Google Chrome ಗೆ Windows 7 ಅಥವಾ ಹೆಚ್ಚಿನ ಆವೃತ್ತಿಯು ಅಗತ್ಯವಿರುತ್ತದೆ.</translation> <translation id="9084668267983921457">ದೃಢೀಕರಣ ಪ್ರಮಾಣಪತ್ರವು ವಿಫಲವಾಗಿದೆ. ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಪುನಃ Google Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ ಅಥವಾ ನಿಮ್ಮ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{ಒಂದು ಗಂಟೆಯಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}one{ # ಗಂಟೆಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}other{ # ಗಂಟೆಗಳಲ್ಲಿ Chrome OS ಮರುಪ್ರಾರಂಭಗೊಳ್ಳುತ್ತದೆ}}</translation> <translation id="911206726377975832">ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ಸಹ ಅಳಿಸುವುದೇ?</translation> <translation id="919706545465235479">ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು Chrome ಅಪ್ಡೇಟ್ ಮಾಡಿ</translation> <translation id="924447568950697217">Chrome ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿಸಿ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb index a381133..64a6993 100644 --- a/chrome/app/resources/google_chrome_strings_lt.xtb +++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">„Chrome“ OS negali sinchronizuoti duomenų. Atnaujinkite sinchronizavimo slaptafrazę.</translation> <translation id="127345590676626841">„Chrome“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija. Baigus atsisiųsti, „Chrome“ bus paleista iš naujo ir galėsite pradėti ja naudotis.</translation> <translation id="1302523850133262269">Palaukite, kol „Chrome“ įdiegs naujausius sistemos naujinius.</translation> +<translation id="1312676208694947750">{0,plural, =0{Pasiekiamas „Chrome“ OS naujinys}=1{Pasiekiamas „Chrome“ OS naujinys}one{„Chrome“ OS naujinys pasiekiamas # dieną}few{„Chrome“ OS naujinys pasiekiamas # dienas}many{„Chrome“ OS naujinys pasiekiamas # dienos}other{„Chrome“ OS naujinys pasiekiamas # dienų}}</translation> <translation id="137466361146087520">„Google Chrome“ beta</translation> <translation id="1393853151966637042">Gauti su „Chrome“ naudojimu susijusios pagalbos</translation> <translation id="1399397803214730675">Kompiuteryje jau yra naujausia „Google Chrome“ versija. Jei programinė įranga neveikia, pašalinkite „Google Chrome“ ir bandykite dar kartą.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">„Google Chrome“ yra žiniatinklio naršyklė, kuri akimirksniu paleidžia tinklalapius ir programas. Ji greita, stabili ir lengvai naudojama. Naršykite žiniatinklį saugiau – „Google Chrome“ įdiegta apsauga nuo kenkėjiškų programų ir sukčiavimo.</translation> <translation id="1718131156967340976">Pasirinkite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">„Chrome“ išsaugos šį slaptažodį „Google“ paskyroje. Jums nereikia jo prisiminti.</translation> <translation id="174539241580958092">„Google Chrome“ negali sinchronizuoti duomenų, nes prisijungiant įvyko klaida.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Gauti su „Chrome“ OS naudojimu susijusios pagalbos</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">Įdiekite „Chrome“ telefone. Išsiųsime SMS pranešimą paskyros atkūrimo telefono numeriu.</translation> <translation id="2246246234298806438">„Google Chrome“ negali rodyti spaudinio peržiūros, kai nėra integruotos PDF žiūryklės.</translation> <translation id="2252923619938421629">Padėkite pagerinti „Google Chrome“ pateikę ataskaitą apie dabartinius nustatymus</translation> +<translation id="225363235161345695">{0,plural, =1{„Chrome“ bus paleista iš naujo po valandos}one{„Chrome“ bus paleista iš naujo po # valandos}few{„Chrome“ bus paleista iš naujo po # valandų}many{„Chrome“ bus paleista iš naujo po # valandos}other{„Chrome“ bus paleista iš naujo po # valandų}}</translation> <translation id="2286950485307333924">Esate prisijungę prie „Chrome“</translation> <translation id="2290014774651636340">Trūksta „Google“ API raktų. Bus išjungtos kai kurios „Google Chrome“ funkcijos.</translation> <translation id="2290095356545025170">Ar tikrai norite pašalinti „Google Chrome“?</translation> @@ -150,10 +153,13 @@ <translation id="4891791193823137474">Paleisti „Google Chrome“ fone</translation> <translation id="4895437082222824641">Atidaryti nuorodą naujame „Chrome“ &skirtuke</translation> <translation id="4921569541910214635">Bendrinate kompiuterį? Dabar galite nustatyti „Chrome“ kaip tik norite.</translation> +<translation id="4945319281866068441">{0,plural, =1{„Chrome“ OS paleidimas iš naujo po dienos}one{„Chrome“ OS paleidimas iš naujo po # dienos}few{„Chrome“ OS paleidimas iš naujo po # dienų}many{„Chrome“ OS paleidimas iš naujo po # dienos}other{„Chrome“ OS paleidimas iš naujo po # dienų}}</translation> <translation id="4953650215774548573">Nustatyti „Google Chrome“ kaip numatytąją naršyklę</translation> <translation id="495931528404527476">Naudojant „Chrome“</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">„Google Chrome“ negali sinchronizuoti duomenų. Atnaujinkite sinchronizavimo slaptafrazę.</translation> +<translation id="5062123544085870375">„Chrome“ OS paleidimas iš naujo</translation> +<translation id="5090044601776247154">Prižiūrimų naudotojų profiliai nebebus pasiekiami nuo 70 vers. „Google Chrome“.</translation> <translation id="5132929315877954718">Suraskite puikių „Google Chrome“ programų, žaidimų, plėtinių ir temų.</translation> <translation id="5166975452760862670">„Google Chrome“ pateikiama šia kalba</translation> <translation id="5170938038195470297">Jūsų profilio negalima naudoti, nes jis iš naujesnės „Google Chrome“ versijos. @@ -167,6 +173,8 @@ <translation id="5430073640787465221">Nuostatų failas sugadintas ar netinkamas. „Google Chrome“ negali atkurti nustatymų.</translation> +<translation id="5483595757826856374">{0,plural, =0{„Chrome“ bus paleista iš naujo dabar}=1{„Chrome“ bus paleista iš naujo po 1 sekundės}one{„Chrome“ bus paleista iš naujo po # sekundės}few{„Chrome“ bus paleista iš naujo po # sekundžių}many{„Chrome“ bus paleista iš naujo po # sekundės}other{„Chrome“ bus paleista iš naujo po # sekundžių}}</translation> +<translation id="5514308096618405748">„Chrome“ OS (kaip ir „Linux“ (beta vers.)) pasiekiama naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" />.</translation> <translation id="556024056938947818">„Google Chrome“ bando rodyti slaptažodžius.</translation> <translation id="5566025111015594046">„Google Chrome“ (mDNS-In)</translation> <translation id="565744775970812598">Failas „<ph name="FILE_NAME" />“ gali būti pavojingas, todėl „Chrome“ jį užblokavo.</translation> @@ -192,6 +200,7 @@ <translation id="6291549208091401781">„Google Chrome“ jau įdiegta visiems kompiuterio naudotojams.</translation> <translation id="6338556085225130112">Atnaujinama „Google Chrome“</translation> <translation id="6368958679917195344">„Chrome“ OS galima naudojant papildomą <ph name="BEGIN_LINK_CROS_OSS" />atvirojo šaltinio programinę įrangą<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{„Chrome“ paleidimas iš naujo po dienos}one{„Chrome“ paleidimas iš naujo po # dienos}few{„Chrome“ paleidimas iš naujo po # dienų}many{„Chrome“ paleidimas iš naujo po # dienos}other{„Chrome“ paleidimas iš naujo po # dienų}}</translation> <translation id="6515495397637126556">„<ph name="PAGE_TITLE" />“ – „Google Chrome Dev“</translation> <translation id="6566149418543181476">Atnaujinama „Google Chrome“ (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Sinchronizuoti „Chrome“ duomenims naudojate <ph name="PROFILE_EMAIL" />. Jei norite atnaujinti sinchronizavimo nuostatą arba naudoti „Chrome“ be „Google“ paskyros, apsilankykite <ph name="SETTINGS_LINK" /> skiltyje.</translation> @@ -203,10 +212,12 @@ <translation id="683440813066116847">„Canary“ versijos „Google Chrome“ skirta taisyklė, pagal kurią leidžiamas gaunamas mDNS srautas.</translation> <translation id="686561893457936865">Pasiimkite „Chrome“ bet kur</translation> <translation id="6885412569789873916">„Chrome“ beta versijos programos</translation> +<translation id="6964107240822114422">{0,plural, =0{Pasiekiamas „Chrome“ naujinys}=1{Pasiekiamas „Chrome“ naujinys}one{„Chrome“ naujinys pasiekiamas # dieną}few{„Chrome“ naujinys pasiekiamas # dienas}many{„Chrome“ naujinys pasiekiamas # dienos}other{„Chrome“ naujinys pasiekiamas # dienų}}</translation> <translation id="6967962315388095737">Beta versijos „Google Chrome“ skirta taisyklė, pagal kurią leidžiamas gaunamas mDNS srautas.</translation> <translation id="6970811910055250180">Įrenginys atnaujinamas...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> reikia, kad prieš naudodami šį įrenginį perskaitytumėte toliau pateiktas paslaugų teikimo sąlygas. Šios sąlygos neišplečia, nepakeičia ir neapriboja „Google Chrome“ OS sąlygų.</translation> <translation id="6989339256997917931">„Google Chrome“ atnaujinta, tačiau jos nenaudojote mažiausiai 30 dienų.</translation> +<translation id="7023651421574588884">Administratorius reikalauja paleisti „Chrome“ OS iš naujo, kad galėtų pritaikyti naujinį</translation> <translation id="7098166902387133879">„Google Chrome“ naudoja jūsų mikrofoną.</translation> <translation id="7106741999175697885">Užduočių tvarkytuvė – „Google Chrome“</translation> <translation id="7164397146364144019">Galite padėti sustiprinti „Chrome“ saugą ir palengvinti jos naudojimą automatiškai „Google“ pateikdami išsamią informaciją apie galimas saugos problemas.</translation> @@ -219,8 +230,10 @@ <translation id="7419046106786626209">„Chrome“ OS negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation> <translation id="7459554271817304652">Nustatykite sinchronizavimą, kad žiniatinklyje išsaugotumėte suasmenintas naršyklės funkcijas ir pasiektumėte jas iš „Google Chrome“ bet kuriuo kompiuteriu.</translation> <translation id="7473136999113284234">„Chrome“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija.</translation> +<translation id="7486227612705979895">„Chrome“ turės prieigą prie Disko, kad galėtų teikti pasiūlymus adreso juostoje</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Pateikti „Chrome“ OS šia kalba</translation> +<translation id="7561940363513215021">{0,plural, =1{„Chrome“ bus paleista iš naujo po 1 minutės}one{„Chrome“ bus paleista iš naujo po # minutės}few{„Chrome“ bus paleista iš naujo po # minučių}many{„Chrome“ bus paleista iš naujo po # minutės}other{„Chrome“ bus paleista iš naujo po # minučių}}</translation> <translation id="7589360514048265910">Šiame kompiuteryje nebebus gaunami „Google Chrome“ naujiniai, nes 10.9 versijos „Mac OS X“ nebepalaikoma.</translation> <translation id="7592736734348559088">„Google Chrome“ negali sinchronizuoti duomenų, nes paskyros išsami prisijungimo informacija yra pasenusi.</translation> <translation id="7626032353295482388">Sveiki, tai „Chrome“</translation> @@ -242,9 +255,11 @@ <translation id="8008534537613507642">Iš naujo įdiegti „Chrome“</translation> <translation id="8030318113982266900">Atnaujinamas įrenginys į „<ph name="CHANNEL_NAME" />“ kanalą...</translation> <translation id="8032142183999901390">Pašalinus paskyrą iš „Chrome“, galbūt reikės iš naujo įkelti skirtukus, kad pakeitimai įsigaliotų.</translation> +<translation id="8077352834923175128">Administratorius prašo paleisti „Chrome“ OS iš naujo, kad galėtų pritaikyti šį naujinį</translation> <translation id="8129812357326543296">Apie „&Google Chrome“</translation> <translation id="8179874765710681175">Įdiekite „Chrome“ telefone. Išsiųsime SMS pranešimą jūsų telefonu.</translation> <translation id="8183957050892517584">„Chrome“ patikimai saugos jūsų išsamią informaciją, kad nebereikėtų jos vėl įvesti.</translation> +<translation id="8226081633851087288">{0,plural, =0{„Chrome“ OS bus paleista iš naujo dabar}=1{„Chrome“ OS bus paleista iš naujo po 1 sekundės}one{„Chrome“ OS bus paleista iš naujo po # sekundės}few{„Chrome“ OS bus paleista iš naujo po # sekundžių}many{„Chrome“ OS bus paleista iš naujo po # sekundės}other{„Chrome“ OS bus paleista iš naujo po # sekundžių}}</translation> <translation id="8255190535488645436">„Google Chrome“ naudoja jūsų fotoaparatą ir mikrofoną.</translation> <translation id="8286862437124483331">„Google Chrome“ bando rodyti slaptažodžius. Įveskite „Windows“ slaptažodį, kad tai leistumėte.</translation> <translation id="8290100596633877290">Oi! „Google Chrome“ užstrigo. Paleisti iš naujo dabar?</translation> @@ -267,6 +282,7 @@ <translation id="870251953148363156">Atnaujinti „&Google Chrome“</translation> <translation id="873133009373065397">„Google Chrome“ nepavyko aptikti arba nustatyti numatytosios naršyklės</translation> <translation id="8736674169840206667">Administratorius reikalauja paleisti iš naujo „Chrome“, kad galėtų pritaikyti naujinį</translation> +<translation id="8791470158600044404">{0,plural, =1{„Chrome“ OS bus paleista iš naujo po 1 minutės}one{„Chrome“ OS bus paleista iš naujo po # minutės}few{„Chrome“ OS bus paleista iš naujo po # minučių}many{„Chrome“ OS bus paleista iš naujo po # minutės}other{„Chrome“ OS bus paleista iš naujo po # minučių}}</translation> <translation id="8796108026289707191">Turėtumėte dabar iš naujo paleisti „Google Chrome“.</translation> <translation id="8823341990149967727">„Chrome“ versija yra pasenusi</translation> <translation id="884296878221830158">Ji taip pat kontroliuoja, koks puslapis rodomas, kai paleidžiate „Chrome“ ar spustelėjate pagrindinio puslapio mygtuką.</translation> @@ -275,6 +291,7 @@ <translation id="9026991721384951619">„Chrome“ OS negali sinchronizuoti duomenų, nes paskyros išsami prisijungimo informacija yra pasenusi.</translation> <translation id="9067395829937117663">Kad būtų galima naudoti „Google Chrome“, reikalinga 7 ar naujesnės versijos „Windows“.</translation> <translation id="9084668267983921457">Nepavyko autentifikuoti sertifikato. Prisijunkite prie „Google Chrome“ dar kartą arba susisiekite su administratoriumi, jei reikia daugiau informacijos. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{„Chrome“ OS bus paleista iš naujo po valandos}one{„Chrome“ OS bus paleista iš naujo po # valandos}few{„Chrome“ OS bus paleista iš naujo po # valandų}many{„Chrome“ OS bus paleista iš naujo po # valandos}other{„Chrome“ OS bus paleista iš naujo po # valandų}}</translation> <translation id="911206726377975832">Ar ištrinti naršymo duomenis?</translation> <translation id="919706545465235479">Atnaujinkite „Chrome“, kad galėtumėte pradėti sinchronizuoti</translation> <translation id="924447568950697217">Nustatymas „Chrome“ numatytąja naršykle</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb index f13af6b..b7e51488 100644 --- a/chrome/app/resources/google_chrome_strings_lv.xtb +++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">Chrome OS nevarēja sinhronizēt jūsu datus. Lūdzu, atjauniniet savu sinhronizācijas ieejas frāzi.</translation> <translation id="127345590676626841">Pārlūks Chrome tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija. Kad šī lejupielāde būs pabeigta, pārlūks Chrome tiks restartēts un varēsiet sākt lietot visjaunāko versiju.</translation> <translation id="1302523850133262269">Lūdzu, uzgaidiet, kamēr Chrome instalē jaunākos sistēmas atjauninājumus.</translation> +<translation id="1312676208694947750">{0,plural, =0{Ir pieejams Chrome OS atjauninājums}=1{Ir pieejams Chrome OS atjauninājums}zero{Chrome OS atjauninājums ir pieejams # dienas}one{Chrome OS atjauninājums ir pieejams # dienu}other{Chrome OS atjauninājums ir pieejams # dienas}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Saņemt palīdzību par Chrome izmantošanu</translation> <translation id="1399397803214730675">Šim datoram jau ir instalēta jaunākā Google Chrome versija. Ja programmatūra nedarbojas, atinstalējiet Google Chrome un mēģiniet vēlreiz.</translation> @@ -31,6 +32,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome ir tīmekļa pārlūks, kas zibenīgi atver tīmekļa lapas un izpilda lietojumprogrammas. Tas ir ātrs, stabils un ērti lietojams. Google Chrome iebūvētā aizsardzība pret ļaunprātīgu programmatūru un pikšķerēšanu nodrošina daudz drošāku tīmekļa pārlūkošanu.</translation> <translation id="1718131156967340976">Atlasiet <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Pārlūks Chrome saglabās šo paroli jūsu Google kontā. To nav nepieciešams iegaumēt.</translation> <translation id="174539241580958092">Google Chrome nevarēja sinhronizēt jūsu datus pierakstīšanās kļūdas dēļ.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Saņemt palīdzību par Chrome OS izmantošanu</translation> @@ -48,6 +50,7 @@ <translation id="216054706567564023">Instalējiet pārlūku Chrome savā tālrunī. Mēs nosūtīsim īsziņu uz jūsu konta atkopšanas tālruņa numuru.</translation> <translation id="2246246234298806438">Pārlūks Google Chrome nevar parādīt drukas priekšskatījumu, ja nav pieejams iebūvētais PDF skatītājs.</translation> <translation id="2252923619938421629">Palīdziet uzlabot pārlūku Google Chrome, ziņojot par pašreizējiem iestatījumiem.</translation> +<translation id="225363235161345695">{0,plural, =1{Pārlūks Chrome tiks restartēts pēc stundas}zero{Pārlūks Chrome tiks restartēts pēc # stundām}one{Pārlūks Chrome tiks restartēts pēc # stundas}other{Pārlūks Chrome tiks restartēts pēc # stundām}}</translation> <translation id="2286950485307333924">Jūs esat pierakstījies pārlūkā Chrome</translation> <translation id="2290014774651636340">Trūkst Google API atslēgu. Tiks atspējotas dažas Google Chrome funkcijas.</translation> <translation id="2290095356545025170">Vai tiešām vēlaties atinstalēt Google Chrome?</translation> @@ -147,10 +150,13 @@ <translation id="4891791193823137474">Ļaut Google Chrome darboties fonā</translation> <translation id="4895437082222824641">Atvērt saiti jaunā Chrome &cilnē</translation> <translation id="4921569541910214635">Vai datoru izmanto vairāki lietotāji? Tagad varat iestatīt pārlūku Chrome atbilstoši savām vajadzībām.</translation> +<translation id="4945319281866068441">{0,plural, =1{Restartējiet Chrome OS dienas laikā}zero{Restartējiet Chrome OS # dienu laikā}one{Restartējiet Chrome OS # dienas laikā}other{Restartējiet Chrome OS # dienu laikā}}</translation> <translation id="4953650215774548573">Iestatīt Google Chrome kā manu noklusējuma pārlūku</translation> <translation id="495931528404527476">Pārlūkprogrammā Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome nevarēja sinhronizēt jūsu datus. Lūdzu, atjauniniet savu sinhronizācijas ieejas frāzi.</translation> +<translation id="5062123544085870375">Restartējiet Chrome OS</translation> +<translation id="5090044601776247154">Google Chrome 70 un jaunākās versijās vairs nebūs pieejami uzraudzīto lietotāju profili.</translation> <translation id="5132929315877954718">Atklājiet lieliskas lietotnes, spēles, paplašinājumus un motīvus, ko varat izmantot pārlūkā Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome tiek rādīts šajā valodā.</translation> <translation id="5170938038195470297">Jūsu profilu nevar lietot, jo tas ir veidots ar jaunāku Google Chrome versiju. @@ -162,6 +168,8 @@ <translation id="532046782124376502">Brīdinājums! Google Chrome nevar novērst to, ka paplašinājumi ieraksta jūsu pārlūkošanas vēsturi. Lai atspējotu šo paplašinājumu inkognito režīmā, noņemiet atzīmi no šīs opcijas.</translation> <translation id="5386244825306882791">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chrome vai meklēsiet, izmantojot universālo lodziņu.</translation> <translation id="5430073640787465221">Jūsu preferenču fails ir bojāts vai nederīgs. Google Chrome nespēj atkopt jūsu iestatījumus.</translation> +<translation id="5483595757826856374">{0,plural, =0{Pārlūks Chrome tiks restartēts tūlīt}=1{Pārlūks Chrome pēc 1 sekundes tiks restartēts}zero{Pārlūks Chrome pēc # sekundēm tiks restartēts}one{Pārlūks Chrome pēc # sekundes tiks restartēts}other{Pārlūks Chrome pēc # sekundēm tiks restartēts}}</translation> +<translation id="5514308096618405748">Chrome OS un Linux (Beta) darbību nodrošina papildu <ph name="BEGIN_LINK_CROS_OSS" />atklātā pirmkoda programmatūra<ph name="END_LINK_CROS_OSS" />.</translation> <translation id="556024056938947818">Google Chrome mēģina rādīt paroles.</translation> <translation id="5566025111015594046">Google Chrome (mDNS ienākošā datplūsma)</translation> <translation id="565744775970812598">Fails <ph name="FILE_NAME" /> var būt bīstams, tādēļ Chrome to bloķēja.</translation> @@ -187,6 +195,7 @@ <translation id="6291549208091401781">Pārlūks Google Chrome jau ir instalēts visiem jūsu datora lietotājiem.</translation> <translation id="6338556085225130112">Notiek Google Chrome atjaunināšana</translation> <translation id="6368958679917195344">Chrome OS ir kļuvusi iespējama, pateicoties papildu <ph name="BEGIN_LINK_CROS_OSS" />atklātā pirmkoda programmatūrai<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Restartējiet pārlūku Chrome dienas laikā}zero{Restartējiet pārlūku Chrome # dienu laikā}one{Restartējiet pārlūku Chrome # dienas laikā}other{Restartējiet pārlūku Chrome # dienu laikā}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> — Google Chrome izstrādātāju versija</translation> <translation id="6566149418543181476">Notiek Google Chrome atjaunināšana (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Chrome satura sinhronizēšanai jūs izmantojat kontu <ph name="PROFILE_EMAIL" />. Lai atjauninātu savas sinhronizācijas preferences vai izmantotu Chrome ierīci bez Google konta, dodieties uz: <ph name="SETTINGS_LINK" />.</translation> @@ -198,10 +207,12 @@ <translation id="683440813066116847">Ienākošo savienojumu kārtula pārlūkam Google Chrome Canary, lai atļautu mDNS datplūsmu.</translation> <translation id="686561893457936865">Paņemiet Chrome sev līdzi</translation> <translation id="6885412569789873916">Chrome Beta lietotnes</translation> +<translation id="6964107240822114422">{0,plural, =0{Ir pieejams Chrome atjauninājums}=1{Ir pieejams Chrome atjauninājums}zero{Chrome atjauninājums ir pieejams # dienas}one{Chrome atjauninājums ir pieejams # dienu}other{Chrome atjauninājums ir pieejams # dienas}}</translation> <translation id="6967962315388095737">Ienākošo savienojumu kārtula pārlūkam Google Chrome Beta, lai atļautu mDNS datplūsmu.</translation> <translation id="6970811910055250180">Notiek ierīces atjaunināšana...</translation> <translation id="6982337800632491844">Pirms šīs ierīces lietošanas jums ir jāizlasa un jāapstiprina tālāk sniegtie domēna <ph name="DOMAIN" /> pakalpojumu sniegšanas noteikumi. Šie noteikumi nepaplašina, nepārveido vai neierobežo operētājsistēmas Google Chrome OS noteikumus.</translation> <translation id="6989339256997917931">Pārlūkprogramma Google Chrome ir atjaunināta, bet jūs neesat to izmantojis vismaz 30 dienas.</translation> +<translation id="7023651421574588884">Lai lietotu atjauninājumu, administrators pieprasa restartēt Chrome OS.</translation> <translation id="7098166902387133879">Pārlūkā Google Chrome tiek izmantots mikrofons.</translation> <translation id="7106741999175697885">Uzdevumu pārvaldnieks - Google Chrome</translation> <translation id="7164397146364144019">Varat palīdzēt uzlabot Chrome drošību un lietošanas ērtumu, automātiski nosūtot Google serveriem informāciju par iespējamām drošības problēmām.</translation> @@ -214,8 +225,10 @@ <translation id="7419046106786626209">Chrome OS nevarēja sinhronizēt jūsu datus, jo sinhronizācija jūsu domēnā nav pieejama.</translation> <translation id="7459554271817304652">Iestatiet sinhronizāciju, lai saglabātu savas personalizētās pārlūka funkcijas tīmeklī un piekļūtu tām no pārlūka Google Chrome jebkurā datorā.</translation> <translation id="7473136999113284234">Pārlūks Chrome tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija.</translation> +<translation id="7486227612705979895">Pārlūkā Chrome tiks izmantota Diskā pieejamā informācija, lai adrešu joslā piedāvātu ieteikumus</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Rādīt Chrome OS šajā valodā</translation> +<translation id="7561940363513215021">{0,plural, =1{Pārlūks Chrome tiks restartēts pēc 1 minūtes}zero{Pārlūks Chrome tiks restartēts pēc # minūtēm}one{Pārlūks Chrome tiks restartēts pēc # minūtes}other{Pārlūks Chrome tiks restartēts pēc # minūtēm}}</translation> <translation id="7589360514048265910">Šajā datorā vairs netiks saņemti Google Chrome atjauninājumi, jo operētājsistēma Mac OS X 10.9 vairs netiek atbalstīta.</translation> <translation id="7592736734348559088">Google Chrome nevarēja sinhronizēt jūsu datus, jo jūsu konta pierakstīšanās informācija ir novecojusi.</translation> <translation id="7626032353295482388">Laipni lūdzam pārlūkā Chrome</translation> @@ -237,9 +250,11 @@ <translation id="8008534537613507642">Pārinstalēt Chrome</translation> <translation id="8030318113982266900">Notiek ierīces atjaunināšana uz kanālu <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Kad konts būs noņemts no Chrome, iespējams, būs atkārtoti jāielādē atvērtās cilnes, lai izmaiņas stātos spēkā.</translation> +<translation id="8077352834923175128">Lai lietotu šo atjauninājumu, administrators lūdz restartēt Chrome OS.</translation> <translation id="8129812357326543296">Par &Google Chrome</translation> <translation id="8179874765710681175">Instalējiet pārlūkprogrammu Chrome savā tālrunī. Mēs nosūtīsim īsziņu uz jūsu tālruņa numuru.</translation> <translation id="8183957050892517584">Chrome droši saglabās jūsu privāto informāciju, lai tā vairs nebūtu atkārtoti jāievada.</translation> +<translation id="8226081633851087288">{0,plural, =0{Operētājsistēma Chrome OS tiks restartēta tūlīt}=1{Operētājsistēma Chrome OS tiks restartēta pēc 1 sekundes}zero{Operētājsistēma Chrome OS tiks restartēta pēc # sekundēm}one{Operētājsistēma Chrome OS tiks restartēta pēc # sekundes}other{Operētājsistēma Chrome OS tiks restartēta pēc # sekundēm}}</translation> <translation id="8255190535488645436">Pārlūkā Google Chrome tiek izmantota kamera un mikrofons.</translation> <translation id="8286862437124483331">Google Chrome mēģina rādīt paroles. Lai to atļautu, ierakstiet savu Windows paroli.</translation> <translation id="8290100596633877290">Eh! Google Chrome ir avarējis. Vai restartēt to tūlīt?</translation> @@ -262,6 +277,7 @@ <translation id="870251953148363156">Atjaunināt &Google Chrome</translation> <translation id="873133009373065397">Google Chrome nevar noteikt vai iestatīt noklusējuma pārlūku.</translation> <translation id="8736674169840206667">Lai lietotu atjauninājumu, administrators pieprasa restartēt pārlūku Chrome.</translation> +<translation id="8791470158600044404">{0,plural, =1{Operētājsistēma Chrome OS tiks restartēta pēc 1 minūtes}zero{Operētājsistēma Chrome OS tiks restartēta pēc # minūtēm}one{Operētājsistēma Chrome OS tiks restartēta pēc # minūtes}other{Operētājsistēma Chrome OS tiks restartēta pēc # minūtēm}}</translation> <translation id="8796108026289707191">Restartējiet Google Chrome tūlīt.</translation> <translation id="8823341990149967727">Chrome versija ir novecojusi</translation> <translation id="884296878221830158">Tas nosaka arī to, kāda lapa tiks rādīta, kad atvērsiet pārlūku Chrome vai noklikšķināsiet uz pogas “Sākums”.</translation> @@ -270,6 +286,7 @@ <translation id="9026991721384951619">Chrome OS nevarēja sinhronizēt jūsu datus, jo jūsu konta pierakstīšanās informācija ir novecojusi.</translation> <translation id="9067395829937117663">Pārlūka Google Chrome izmantošanai nepieciešama operētājsistēma Windows 7 vai jaunāka versija.</translation> <translation id="9084668267983921457">Autentificēšanas sertifikāts nedarbojās. Lūdzu, vēlreiz pierakstieties pārlūkā Google Chrome vai sazinieties ar administratoru, lai iegūtu plašāku informāciju. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Operētājsistēma Chrome OS tiks restartēta pēc vienas stundas}zero{Operētājsistēma Chrome OS tiks restartēta pēc # stundām}one{Operētājsistēma Chrome OS tiks restartēta pēc # stundas}other{Operētājsistēma Chrome OS tiks restartēta pēc # stundām}}</translation> <translation id="911206726377975832">Vai dzēst arī pārlūkošanas datus?</translation> <translation id="919706545465235479">Lai sāktu sinhronizāciju, atjauniniet Chrome.</translation> <translation id="924447568950697217">Iestatiet Chrome par noklusējuma pārlūku</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb index ccfee39..23e37ca7 100644 --- a/chrome/app/resources/google_chrome_strings_ml.xtb +++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് അപ്ഡേറ്റുചെയ്യുക.</translation> <translation id="127345590676626841">Chrome സ്വയമേവ അപ്ഡേറ്റുചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും. ഈ ഡൗൺലോഡ് പൂർത്തിയാകുമ്പോൾ Chrome പുനരാരംഭിക്കും, അതിനുശേഷം നിങ്ങൾക്ക് തുടരാം.</translation> <translation id="1302523850133262269">ഏറ്റവും പുതിയ സിസ്റ്റം അപ്ഡേറ്റുകൾ Chrome ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation> +<translation id="1312676208694947750">{0,plural, =0{ഒരു Chrome OS അപ്ഡേറ്റ് ലഭ്യമാണ്}=1{ഒരു Chrome OS അപ്ഡേറ്റ് ലഭ്യമാണ്}other{ഒരു Chrome OS അപ്ഡേറ്റ് # ദിവസത്തേക്ക് അപ്ഡേറ്റ് ലഭ്യമാണ്}}</translation> <translation id="137466361146087520">Google Chrome ബീറ്റ</translation> <translation id="1393853151966637042">Chrome ഉപയോഗിച്ച് സഹായം തേടുക</translation> <translation id="1399397803214730675">ഈ കമ്പ്യൂട്ടറിന് ഇതിനകം തന്നെ Google Chrome-ന്റെ കൂടുതൽ അടുത്തകാലത്തുള്ള ഒരു പതിപ്പുണ്ട്. സോഫ്റ്റ്വെയര് പ്രവര്ത്തിക്കുന്നില്ലെങ്കില്, ദയവായി Google Chrome അണ്ഇന്സ്റ്റാള് ചെയ്ത് വീണ്ടും ശ്രമിക്കുക.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome എന്നത് അതിവേഗത്തില് വെബ്പേജുകളും അപ്ലിക്കേഷനുകളും പ്രവര്ത്തിപ്പിക്കുന്ന ഒരു വെബ് ബ്രൗസറാണ്. അത് വേഗതയുള്ളതും, സ്ഥിരതയുള്ളതും ഉപയോഗിക്കാൻ എളുപ്പവുമാണ്. Google Chrome-ലേക്ക് ബില്റ്റുചെയ്ത ക്ഷുദ്രവെയര്, ഫിഷിംഗ് പരിരക്ഷണം ഉപയോഗിച്ച് വെബ് കൂടുതൽ സുരക്ഷിതമായി ബ്രൗസുചെയ്യുക.</translation> <translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> തിരഞ്ഞെടുക്കുക</translation> +<translation id="1734234790201236882">നിങ്ങളുടെ Google അക്കൗണ്ടിൽ Chrome ഈ പാസ്വേഡ് സംരക്ഷിക്കും. നിങ്ങൾ അത് ഓർത്ത് വയ്ക്കേണ്ടതില്ല.</translation> <translation id="174539241580958092">സൈൻ ഇൻ ചെയ്യുന്നതിലെ ഒരു പിശകിനാൽ Google Chrome-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Chrome OS ഉപയോഗിച്ച് സഹായം തേടുക</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">നിങ്ങളുടെ ഫോണിൽ Chrome ഇൻസ്റ്റാൾ ചെയ്യുക. അക്കൗണ്ട് വീണ്ടെടുക്കൽ ഫോൺ നമ്പറിലേക്ക് ഞങ്ങളൊരു SMS അയയ്ക്കും.</translation> <translation id="2246246234298806438">ബിൽറ്റ്-ഇൻ PDF വ്യൂവർ കാണുന്നില്ലെങ്കിൽ Google Chrome-ന് പ്രിന്റ് പ്രിവ്യു കാണിക്കാൻ കഴിയില്ല.</translation> <translation id="2252923619938421629">നിലവിലെ ക്രമീകരണങ്ങൾ റിപ്പോർട്ട് ചെയ്യുന്നതിലൂടെ Google Chrome-നെ മികച്ചതാക്കാൻ സഹായിക്കുക</translation> +<translation id="225363235161345695">{0,plural, =1{ഒരു മണിക്കൂറിൽ Chrome വീണ്ടും സമാരംഭിക്കും}other{# മണിക്കൂറിൽ Chrome വീണ്ടും സമാരംഭിക്കും}}</translation> <translation id="2286950485307333924">നിങ്ങൾ ഇപ്പോൾ Chrome-ൽ സൈൻ ഇൻ ചെയ്തു</translation> <translation id="2290014774651636340">Google API കീകൾ നഷ്ടമായി. Google Chrome-ന്റെ ചില പ്രവർത്തനങ്ങൾ പ്രവർത്തനരഹിതമാകും.</translation> <translation id="2290095356545025170">Google Chrome അണിന്സ്റ്റാള് ചെയ്യണമെന്ന് നിങ്ങള്ക്കുറപ്പാണോ?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">പശ്ചാത്തലത്തില് Google Chrome പ്രവര്ത്തിക്കാന് അനുവദിക്കുക</translation> <translation id="4895437082222824641">പുതിയ Chrome &ടാബിൽ ലിങ്ക് തുറക്കുക</translation> <translation id="4921569541910214635">ഒരു കമ്പ്യൂട്ടർ പങ്കിടണോ? ഇപ്പോൾ നിങ്ങൾക്ക് ഇഷ്ടപ്പെട്ട രീതിയിൽ Chrome സജ്ജീകരിക്കാനാകും.</translation> +<translation id="4945319281866068441">{0,plural, =1{ ഒരു ദിവസത്തിനുള്ളിൽ Chrome OS പുനഃരാരംഭിക്കും}other{# ദിവസത്തിനുള്ളിൽ Chrome OS പുനഃരാരംഭിക്കും}}</translation> <translation id="4953650215774548573">Google Chrome-നെ നിങ്ങളുടെ സ്ഥിര ബ്രൗസറായി സജ്ജീകരിക്കുക</translation> <translation id="495931528404527476">Chrome-ൽ</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. നിങ്ങളുടെ സമന്വയ പാസ്ഫ്രെയ്സ് അപ്ഡേറ്റ് ചെയ്യുക.</translation> +<translation id="5062123544085870375">Chrome OS പുനഃരാരംഭിക്കുക</translation> +<translation id="5090044601776247154">Google Chrome 70 പതിപ്പ് മുതൽ, സൂപ്പർവൈസ് ചെയ്യപ്പെടുന്ന ഉപയോക്തൃ പ്രൊഫൈലുകള് ഇനിയങ്ങോട്ട് ലഭ്യമല്ല.</translation> <translation id="5132929315877954718">Google Chrome-നായി മികച്ച അപ്ലിക്കേഷനുകളും വിപുലീകരണങ്ങളും തീമുകളും കണ്ടെത്തുക.</translation> <translation id="5166975452760862670">Google Chrome ഈ ഭാഷയിൽ പ്രദർശിപ്പിച്ചിരിക്കുന്നു</translation> <translation id="5170938038195470297">നിങ്ങളുടെ പ്രൊഫൈൽ Google Chrome-ന്റെ ഒരു പുതിയ പതിപ്പിൽ നിന്നായതിനാൽ ഉപയോഗിക്കാൻ കഴിയില്ല. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">നിങ്ങളുടെ മുൻഗണനാ ഫയൽ കേടായതാണ് അല്ലെങ്കിൽ അസാധുവാണ്. നിങ്ങളുടെ ക്രമീകരണം വീണ്ടെടുക്കാൻ Google Chrome-ന് കഴിയില്ല.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome ഇപ്പോൾ വീണ്ടും സമാരംഭിക്കും}=1{Chrome ഒരു സെക്കൻഡിൽ വീണ്ടും സമാരംഭിക്കും}other{Chrome # സെക്കൻഡിൽ വീണ്ടും സമാരംഭിക്കും}}</translation> +<translation id="5514308096618405748">Linux (ബീറ്റ) പോലെ, അധിക <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പൺ സോഴ്സ് സോഫ്റ്റ്വെയർ<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചായിരിക്കാം, Chrome OS നിർമ്മിച്ചിരിക്കുന്നത്.</translation> <translation id="556024056938947818">Google Chrome പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> അപകടകരമാകാൻ ഇടയുള്ളതിനാൽ, Chrome ഇതിനെ ബ്ലോക്കുചെയ്തു.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">നിങ്ങളുടെ കമ്പ്യൂട്ടറിലെ എല്ലാ ഉപയോക്താക്കൾക്കുമായി Google Chrome നിലവിൽ ഇൻസ്റ്റാൾ ചെയ്തിരിക്കുന്നു.</translation> <translation id="6338556085225130112">Google Chrome അപ്ഡേറ്റുചെയ്യുന്നു</translation> <translation id="6368958679917195344">അനുബന്ധ <ph name="BEGIN_LINK_CROS_OSS" />ഓപ്പണ് ഉറവിട സോഫ്റ്റ്വെയര്<ph name="END_LINK_CROS_OSS" /> ഉപയോഗിച്ചാണ് Chrome OS നിര്മ്മിച്ചിരിക്കുന്നത്.</translation> +<translation id="6468844726266617801">{0,plural, =1{ഒരു ദിവസത്തിനുള്ളിൽ Chrome വീണ്ടും സമാരംഭിക്കുക}other{# ദിവസത്തിനുള്ളിൽ Chrome വീണ്ടും സമാരംഭിക്കുക}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome അപ്ഡേറ്റുചെയ്യുന്നു, (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Chrome ഫയൽ സമന്വയിപ്പിക്കാൻ നിങ്ങൾ <ph name="PROFILE_EMAIL" /> ഉപയോഗിക്കുന്നു. നിങ്ങളുടെ സമന്വയ മുൻഗണന അപ്ഡേറ്റുചെയ്യാനോ ഒരു Google അക്കൗണ്ട് കൂടാതെ Chrome ഉപയോഗിക്കാനോ <ph name="SETTINGS_LINK" /> സന്ദർശിക്കുക.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">mDNS ട്രാഫിക് അനുവദിക്കാൻ Google Chrome കാനറിയ്ക്കുള്ള ഇൻബൗണ്ട് റൂൾ.</translation> <translation id="686561893457936865">എല്ലായിടത്ത് നിന്നും Chrome ഉപയോഗിക്കുക</translation> <translation id="6885412569789873916">Chrome ബീറ്റ ആപ്പുകൾ</translation> +<translation id="6964107240822114422">{0,plural, =0{ഒരു Chrome അപ്ഡേറ്റ് ലഭ്യമാണ്}=1{ഒരു Chrome അപ്ഡേറ്റ് ലഭ്യമാണ്}other{ഒരു Chrome അപ്ഡേറ്റ് # ദിവസത്തേക്ക് ലഭ്യമാണ്}}</translation> <translation id="6967962315388095737">mDNS ട്രാഫിക് അനുവദിക്കുന്നതിന് Google Chrome ബീറ്റയ്ക്ക് വേണ്ടിയുള്ള ഇൻബൗണ്ട് റൂൾ.</translation> <translation id="6970811910055250180">നിങ്ങളുടെ ഉപകരണം അപ്ഡേറ്റുചെയ്യുന്നു...</translation> <translation id="6982337800632491844">ഈ ഉപകരണം ഉപയോഗിക്കുന്നതിന് മുമ്പ് നിങ്ങൾ ഇനിപ്പറയുന്ന സേവന നിബന്ധനകൾ വായിച്ച് അംഗീകരിക്കണമെന്ന് <ph name="DOMAIN" /> ആവശ്യപ്പെടുന്നു. Google Chrome OS നിബന്ധനകൾ വിപുലീകരിക്കുകയോ പരിഷ്കരിക്കുകയോ പരിമിതപ്പെടുത്തുകയോ ചെയ്യരുത്.</translation> <translation id="6989339256997917931">Google Chrome അപ്ഡേറ്റുചെയ്തു, പക്ഷേ 30 ദിവസം പോലും നിങ്ങള് ഇത് ഉപയോഗിച്ചിട്ടില്ല.</translation> +<translation id="7023651421574588884">ഒരു അപ്ഡേറ്റ് ബാധകമാക്കുന്നതിന് നിങ്ങൾ Chrome OS പുനഃരാരംഭിക്കാൻ അഡ്മിൻ ആവശ്യപ്പെടുന്നു</translation> <translation id="7098166902387133879">Google Chrome നിങ്ങളുടെ മൈക്രോഫോൺ ഉപയോഗിക്കുന്നു.</translation> <translation id="7106741999175697885">ടാസ്ക് മാനേജര് - Google Chrome</translation> <translation id="7164397146364144019">സുരക്ഷയെ ബാധിക്കാൻ സാധ്യതയുള്ള കാര്യങ്ങളുടെ വിശദാംശങ്ങൾ Google-ലേക്ക് സ്വയമേവ റിപ്പോർട്ടുചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് Chrome-നെ സുരക്ഷിതവും എളുപ്പവുമാക്കാൻ സഹായിക്കാനാകും.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">നിങ്ങളുടെ ഡൊമെയ്നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation> <translation id="7459554271817304652">വെബിലേക്ക് നിങ്ങളുടെ വ്യക്തിഗതമാക്കിയ ബ്രൗസർ സവിശേഷതകൾ സംരക്ഷിക്കുന്നതിനും ഏതൊരു കമ്പ്യൂട്ടറിൽ നിന്നും Google Chrome-ലേക്ക് അവയെ ആക്സസ് ചെയ്യുന്നതിനും സമന്വയം സജ്ജമാക്കുക.</translation> <translation id="7473136999113284234">Chrome സ്വയമേവ അപ്ഡേറ്റുചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും.</translation> +<translation id="7486227612705979895">വിലാസ ബാറിൽ നിർദ്ദേശങ്ങൾ സൃഷ്ടിക്കാൻ, Chrome നിങ്ങളുടെ ഡ്രൈവ് ആക്സസ് ചെയ്യും</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">ഈ ഭാഷയില് Chrome OS പ്രദര്ശിപ്പിക്കുക</translation> +<translation id="7561940363513215021">{0,plural, =1{ഒരു മിനിറ്റിൽ Chrome വീണ്ടും സമാരംഭിക്കും}other{# മിനിറ്റിൽ Chrome വീണ്ടും സമാരംഭിക്കും}}</translation> <translation id="7589360514048265910">Mac OS X 10.9 ഇനി പിന്തുണയ്ക്കാത്തതിനാൽ ഈ കമ്പ്യൂട്ടറിന് ഇനി Google Chrome അപ്ഡേറ്റുകൾ സ്വീകരിക്കാനാവില്ല.</translation> <translation id="7592736734348559088">നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Google Chrome-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation> <translation id="7626032353295482388">Chrome-ലേക്ക് സ്വാഗതം</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Chrome വീണ്ടും ഇൻസ്റ്റാളുചെയ്യുക</translation> <translation id="8030318113982266900">നിങ്ങളുടെ ഉപകരണം <ph name="CHANNEL_NAME" /> ചാനലിലേയ്ക്ക് അപ്ഡേറ്റുചെയ്യുന്നു...</translation> <translation id="8032142183999901390">Chrome-ൽ നിന്ന് നിങ്ങളുടെ അക്കൗണ്ട് നീക്കംചെയ്തുകഴിഞ്ഞാൽ, അത് പ്രാബല്യത്തിൽ വരുന്നതിന് ഓപ്പൺ ടാബുകൾ വീണ്ടും ലോഡുചെയ്യേണ്ടി വന്നേക്കാം.</translation> +<translation id="8077352834923175128">ഒരു അപ്ഡേറ്റ് ബാധകമാക്കുന്നതിന് നിങ്ങൾ Chrome OS പുനഃരാരംഭിക്കാൻ അഡ്മിൻ ആവശ്യപ്പെടുന്നു</translation> <translation id="8129812357326543296">&Google Chrome-നെക്കുറിച്ച്</translation> <translation id="8179874765710681175">നിങ്ങളുടെ ഫോണിൽ Chrome ഇൻസ്റ്റാൾ ചെയ്യുക. ഫോണിലേക്ക് ഞങ്ങളൊരു SMS അയയ്ക്കും.</translation> <translation id="8183957050892517584">Chrome നിങ്ങളുടെ വ്യക്തിപരമായ വിശദാംശങ്ങൾ സുരക്ഷിതമായി സൂക്ഷിക്കുന്നതിനാൽ അവ വീണ്ടും ടൈപ്പുചെയ്യേണ്ടതില്ല.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS ഇപ്പോൾ പുനഃരാരംഭിക്കും}=1{Chrome OS ഒരു സെക്കൻഡിൽ പുനഃരാരംഭിക്കും}other{Chrome OS # സെക്കൻഡിൽ പുനഃരാരംഭിക്കും}}</translation> <translation id="8255190535488645436">Google Chrome നിങ്ങളുടെ ക്യാമറയും മൈക്രോഫോണും ഉപയോഗിക്കുന്നു.</translation> <translation id="8286862437124483331">Google Chrome പാസ്വേഡുകൾ ദൃശ്യമാക്കാൻ ശ്രമിക്കുന്നു. ഇത് അനുവദിക്കാൻ നിങ്ങളുടെ Windows പാസ്വേഡ് ടൈപ്പുചെയ്യുക.</translation> <translation id="8290100596633877290">ഓ! Google Chrome ക്രാഷുചെയ്തു. ഇപ്പോള് വീണ്ടും സമാരംഭിക്കണോ?</translation> @@ -266,6 +281,7 @@ <translation id="870251953148363156">&Google Chrome അപ്ഡേറ്റ് ചെയ്യുക</translation> <translation id="873133009373065397">Google Chrome-ന് ഡിഫോൾട്ട് ബ്രൗസർ നിർണ്ണയിക്കാനോ സജ്ജമാക്കാനോ കഴിയില്ല</translation> <translation id="8736674169840206667">അപ്ഡേറ്റ് പ്രയോഗിക്കുന്നതിന് Chrome വീണ്ടും സമാരംഭിക്കാൻ നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ ആവശ്യപ്പെടുന്നു</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS ഒരു മിനിറ്റിൽ പുനഃരാരംഭിക്കും}other{Chrome OS # മിനിറ്റിൽ പുനഃരാരംഭിക്കും}}</translation> <translation id="8796108026289707191">നിങ്ങൾ ഇപ്പോൾ Google Chrome പുനഃരാരംഭിക്കേണ്ടതാണ്.</translation> <translation id="8823341990149967727">Chrome കാലഹരണപ്പെട്ടതാണ്</translation> <translation id="884296878221830158">നിങ്ങൾ Chrome ആരംഭിയ്ക്കുമ്പോഴോ ഹോം ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോഴോ ഏത് പേജാണ് കാണിക്കേണ്ടതെന്നും അത് നിയന്ത്രിയ്ക്കുന്നു.</translation> @@ -274,6 +290,7 @@ <translation id="9026991721384951619">നിങ്ങളുടെ അക്കൗണ്ടിന്റെ സൈൻ ഇൻ വിശദാംശങ്ങൾ കാലഹരണപ്പെട്ടതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation> <translation id="9067395829937117663">Google Chrome-ന് Windows 7 അല്ലെങ്കിൽ അതിനുശേഷമുള്ള പതിപ്പ് ആവശ്യമാണ്.</translation> <translation id="9084668267983921457">സർട്ടിഫിക്കറ്റ് പരിശോധിച്ചുറപ്പിക്കൽ പരാജയപ്പെട്ടു. Google Chrome-ൽ വീണ്ടും സൈൻ ഇൻ ചെയ്യുക അല്ലെങ്കിൽ കൂടുതൽ വിവരങ്ങൾക്ക് നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{ഒരു മണിക്കൂറിൽ Chrome വീണ്ടും പുനഃരാരംഭിക്കും}other{Chrome OS # മണിക്കൂറിൽ പുനഃരാരംഭിക്കും}}</translation> <translation id="911206726377975832">നിങ്ങളുടെ ബ്രൌസിംഗ് ഡാറ്റയും ഇതോടൊപ്പം ഇല്ലാതാക്കണോ?</translation> <translation id="919706545465235479">സമന്വയിപ്പിക്കാൻ തുടങ്ങുന്നതിന് Chrome അപ്ഡേറ്റുചെയ്യുക</translation> <translation id="924447568950697217">Chrome-നെ നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറാക്കുക</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb index 9554db35..0f828ec9 100644 --- a/chrome/app/resources/google_chrome_strings_mr.xtb +++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -14,6 +14,7 @@ <translation id="123620459398936149">Chrome OS आपला डेटा संकालित करू शकले नाही. कृपया आपला संकालन सांकेतिक वाक्यांश अपडेट करा.</translation> <translation id="127345590676626841">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी सर्वात नवीन आवृत्ती असते. जेव्हा हे डाउनलोड पूर्ण होते, तेव्हा Chrome रीस्टार्ट होईल आणि आपण आपल्या मार्गावर असाल.</translation> <translation id="1302523850133262269">कृपया Chrome नवीनतम सिस्टम अपडेट इंस्टॉल करताना प्रतीक्षा करा.</translation> +<translation id="1312676208694947750">{0,plural, =0{Chrome OS अपडेट उपलब्ध आहे}=1{Chrome OS अपडेट उपलब्ध आहे}one{Chrome OS अपडेट # दिवसासाठी उपलब्ध आहे}other{Chrome अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation> <translation id="137466361146087520">Google Chrome बीटा</translation> <translation id="1393853151966637042">Chrome वापरून मदत मिळवा</translation> <translation id="1399397803214730675">या संगणकात आधीपासून Google Chrome ची अगदी अलिकडील आवृत्ती आहे. सॉफ्टवेअर कार्य करत नसल्यास, कृपया Google Chrome अनइंस्टॉल करा आणि पुन्हा प्रयत्न करा.</translation> @@ -32,6 +33,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome एक वेब ब्राउझर आहे जो वेब पेज आणि अॅप्लिकेशन विजेच्या गतीने चालवितो. तो जलद, स्थिर आणि वापरण्यास सोपा आहे. Google Chrome मध्ये तयार केलेल्या मालवेयर आणि फिशिंग संरक्षणासह वेब अधिक सुरक्षितपणे ब्राउझ करा.</translation> <translation id="1718131156967340976"><ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /> निवडा</translation> +<translation id="1734234790201236882">Chrome हा पासवर्ड तुमच्या Google खात्यामध्ये सेव्ह करेल. तुम्हाला लक्षात ठेवावा लागणार नाही.</translation> <translation id="174539241580958092">साइन इन करण्यात एरर आल्यामुळे Google Chrome आपला डेटा संकालित करू शकले नाही.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Chrome OS वापरून मदत मिळवा </translation> @@ -49,6 +51,7 @@ <translation id="216054706567564023">Chrome आपल्या फोनवर स्थापित करा. आम्ही आपल्या खाते पुनर्प्राप्ती फोन नंबरवर एक SMS पाठवू.</translation> <translation id="2246246234298806438">बिल्ट-इन PDF दर्शक गहाळ असताना Google Chrome प्रिंट पूर्वावलोकन दर्शवू शकत नाही.</translation> <translation id="2252923619938421629">वर्तमान सेटिंग्जचा अहवाल देऊन Google Chrome उत्कृष्ट बनविण्यास मदत करा</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome एका तासामध्ये पुन्हा लाँच होईल}one{Chrome # तासामध्ये पुन्हा लाँच होईल}other{Chrome # तासांमध्ये पुन्हा लाँच होईल}}</translation> <translation id="2286950485307333924">आपण आता Chrome वर साइन इन केले आहे</translation> <translation id="2290014774651636340">Google API की गहाळ आहेत. Google Chrome ची काही कार्यक्षमता अक्षम केली जाईल.</translation> <translation id="2290095356545025170">तुमची खात्री आहे की आपण Google Chrome अनइंस्टॉल करू इच्छिता?</translation> @@ -147,10 +150,13 @@ <translation id="4891791193823137474">पार्श्वभूमीत Google Chrome चालू द्या</translation> <translation id="4895437082222824641">लिंक नवीन Chrome &टॅबमध्ये उघडा</translation> <translation id="4921569541910214635">एक कॉंप्युटर सामायिक करायचा? आपल्याला आवडते त्या प्रकारे आपण आता Chrome सेट करू शकता.</translation> +<translation id="4945319281866068441">{0,plural, =1{Chrome OS एका दिवसात रीस्टार्ट करा}one{Chrome OS # दिवसात रीस्टार्ट करा}other{Chrome OS # दिवसांमध्ये रीस्टार्ट करा}}</translation> <translation id="4953650215774548573">आपला डीफॉल्ट ब्राउझर म्हणून Google Chrome सेट करा</translation> <translation id="495931528404527476">Chrome मध्ये</translation> <translation id="4990567037958725628">Google Chrome कॅनरी</translation> <translation id="5028489144783860647">Google Chrome आपला डेटा संकालित करू शकले नाही. कृपया आपला संकालन वाक्यांश अपडेट करा.</translation> +<translation id="5062123544085870375">Chrome OS रीस्टार्ट करा</translation> +<translation id="5090044601776247154">Google Chrome 70 सह सुरू झालेले व्यवस्थापित वापरकर्ता प्रोफाइल यापुढे उपलब्ध होणार नाहीत.</translation> <translation id="5132929315877954718">Google Chrome साठी उत्कृष्ट अॅप, खेळ, विस्तार आणि थीम शोधा.</translation> <translation id="5166975452760862670">Google Chrome या भाषेत प्रदर्शित केले आहे</translation> <translation id="5170938038195470297">आपले प्रोफाइल वापरले जाणे शक्य नाही कारण ते Google Chrome च्या नवीनतम आवृत्तीमधील आहे. @@ -163,6 +169,8 @@ <translation id="5430073640787465221">तुमची प्राधान्ये फाइल दूषित किंवा अवैध आहेत. Google Chrome तुमची सेटिंग्ज पुर्नप्राप्त करण्यात अक्षम आहे.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome आता पुन्हा लाँँच होईल}=1{Chrome एका सेकंदानंतर पुन्हा लाँँच होईल}one{Chrome # सेकंदानंतर पुन्हा लाँँच होईल}other{Chrome # सेकंदांनंतर पुन्हा लाँँच होईल}}</translation> +<translation id="5514308096618405748">Linux (बीटा) सारखेच, अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />मुक्त स्त्रोत सॉफ्टवेअर<ph name="END_LINK_CROS_OSS" /> द्वारे Chrome OS शक्य झाले आहे.</translation> <translation id="556024056938947818">Google Chrome पासवर्ड दर्शवण्याचा प्रयत्न करत आहे.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-मध्ये)</translation> <translation id="565744775970812598"><ph name="FILE_NAME" /> धोकादायक असू शकते, त्यामुळे Chrom ने ते अवरोधित केले आहे.</translation> @@ -188,6 +196,7 @@ <translation id="6291549208091401781">आपल्या संगणकावरील सर्व वापरकर्त्यांसाठी Google Chrome आधीच इंस्टॉल केला आहे.</translation> <translation id="6338556085225130112">Google Chrome अपडेट होत आहे</translation> <translation id="6368958679917195344"> Chrome OS अतिरिक्त <ph name="BEGIN_LINK_CROS_OSS" />मुक्त स्रोत सॉफ्टवेअर<ph name="END_LINK_CROS_OSS" /> द्वारे शक्य झाले आहे.</translation> +<translation id="6468844726266617801">{0,plural, =1{एका दिवसामध्ये Chrome पुन्हा लाँच करा}one{# दिवसामध्ये Chrome पुन्हा लाँच करा}other{# दिवसांमध्ये Chrome पुन्हा लाँच करा}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> - Google Chrome डेव्हलपर</translation> <translation id="6566149418543181476">Google Chrome अपडेट करीत आहे (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">आपण तुमची Chrome सामग्री संकालित करण्यासाठी <ph name="PROFILE_EMAIL" /> वापरत आहात. आपले संकालन प्राधान्य अपडेट करण्यासाठी किंवा Google खात्याशिवाय Chrome वापरण्यासाठी, <ph name="SETTINGS_LINK" /> ला भेट द्या.</translation> @@ -199,10 +208,12 @@ <translation id="683440813066116847">mDNS रहदारीस अनुमती देण्यासाठी Google Chrome कॅनरी साठी अंतर्गामी नियम.</translation> <translation id="686561893457936865">Chrome ला सर्वत्र न्या</translation> <translation id="6885412569789873916">Chrome बीटा अॅप</translation> +<translation id="6964107240822114422">{0,plural, =0{Chrome अपडेट उपलब्ध आहे}=1{Chrome अपडेट उपलब्ध आहे}one{Chrome अपडेट # दिवसासाठी उपलब्ध आहे}other{Chrome अपडेट # दिवसांसाठी उपलब्ध आहे}}</translation> <translation id="6967962315388095737">Google Chrome बीटाचा mDNS रहदारीस अनुमती देण्यासाठी इनबाउंड नियम.</translation> <translation id="6970811910055250180">आपले डिव्हाइस अपडेट करीत आहे...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> ला हे डिव्हाइस वापरण्यापूर्वी आपण खालील सेवा अटी वाचणे आणि स्वीकारणे आवश्यक आहे. या अटी Google Chrome OS अटींना विस्तृत, सुधारित किंवा मर्यादित करत नाहीत.</translation> <translation id="6989339256997917931">Google Chrome अपडेट केला गेला, परंतु आपण तो किमान 30 दिवसांपासून वापरलेला नाही.</translation> +<translation id="7023651421574588884">अपडेट लागू करण्यासाठी तुम्ही Chrome OS रीस्टार्ट करणे तुमच्या अॅडमिनिस्ट्रेटरसाठी आवश्यक आहे.</translation> <translation id="7098166902387133879">Google Chrome आपला मायक्रोफोन वापरत आहे.</translation> <translation id="7106741999175697885">कार्य व्यवस्थापक – Google Chrome</translation> <translation id="7164397146364144019">आपण Google कडे संभाव्य सुरक्षितता घटनांच्या तपशीलांचा स्वयंचलितपणे अहवाल देऊन Chrome वापरणे अधिक सुरक्षित आणि सुलभ बनविण्यात मदत करू शकता.</translation> @@ -215,8 +226,10 @@ <translation id="7419046106786626209">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chrome OS आपला डेटा संकालित करू शकले नाही.</translation> <translation id="7459554271817304652">तुमची वैयक्तीकृत केलेली ब्राउझर वैशिष्ट्ये सेव्ह करण्यासाठी समक्रमण सेट करा आणि कोणत्याही संगणकावरील Google Chrome वरून त्यात प्रवेश करा.</translation> <translation id="7473136999113284234">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी सर्वात नवीन आवृत्ती असते.</translation> +<translation id="7486227612705979895">अॅड्रेस बारमध्ये सूचना देण्यासाठी Chrome तुमची ड्राइव्ह अॅक्सेस करेल</translation> <translation id="7535429826459677826">Google Chrome विकासक</translation> <translation id="7552219221109926349">Chrome OS या भाषेत प्रदर्शित करा</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome एका मिनिटानंतर पुन्हा लाँँच होईल}one{Chrome # मिनिटानंतर पुन्हा लाँँच होईल}other{Chrome # मिनिटांनंतर पुन्हा लाँँच होईल}}</translation> <translation id="7589360514048265910">यापुढे Mac OS X 10.9 ला सपोर्ट नसल्यामुळे, या कॉंप्युटरला इथून पुढे Google Chrome चे अपडेट मिळणार नाहीत.</translation> <translation id="7592736734348559088">आपले खाते साइन इन तपशील कालबाह्य झाल्यामुळे Google Chrome आपला डेटा संकालित करू शकले नाही.</translation> <translation id="7626032353295482388">Chrome मध्ये स्वागत आहे</translation> @@ -238,9 +251,11 @@ <translation id="8008534537613507642">Chrome पुनर्स्थापित करा</translation> <translation id="8030318113982266900"><ph name="CHANNEL_NAME" /> चॅनेलवर आपले डीव्हाइस अपडेट करत आहे...</translation> <translation id="8032142183999901390">Chrome वरून आपले खाते काढल्यानंतर, आपल्याला हे प्रभावी होण्यासाठी आपले उघडे टॅब रीलोड करण्याची आवश्यकता असू शकते.</translation> +<translation id="8077352834923175128">हे अपडेट लागू करण्यासाठी तुमचा अॅडमिनिस्ट्रेटर तुम्हाला Chrome OS रीस्टार्ट करण्यास सांगेल</translation> <translation id="8129812357326543296">&Google Chrome विषयी</translation> <translation id="8179874765710681175">आपल्या फोनवर Chrome इंस्टॉल करा. आम्ही आपल्या फोनवर एक SMS पाठवू.</translation> <translation id="8183957050892517584">Chrome आपले वैयक्तिक तपशील सुरक्षितपणे संचयित करेल जेणेकरून आपल्याला ते पुन्हा टाइप करण्याची आवश्यकता नसेल.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS आता रीस्टार्ट होईल}=1{Chrome OS एका सेकंदात रीस्टार्ट होईल}one{Chrome OS # सेकंदात रीस्टार्ट होईल}other{Chrome OS # सेकंदामध्ये रीस्टार्ट होईल}}</translation> <translation id="8255190535488645436">Google Chrome आपला कॅमेरा आणि मायक्रोफोन वापरत आहे.</translation> <translation id="8286862437124483331">Google Chrome संकेतशब्द दर्शविण्याचा प्रयत्न करत आहे. यास अनुमती देण्यासाठी आपला Windows संकेतशब्द टाइप करा.</translation> <translation id="8290100596633877290">अरेरे! Google Chrome क्रॅश झाला. त्वरित पुन्हा लाँच करायचा?</translation> @@ -263,6 +278,7 @@ <translation id="870251953148363156">&Google Chrome अपडेट करा</translation> <translation id="873133009373065397">Google Chrome डीफॉल्ट ब्राउझर निर्धारित करू शकत नाही किंवा सेट करू शकत नाही</translation> <translation id="8736674169840206667">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation> +<translation id="8791470158600044404">{0,plural, =1{ Chrome OS एका मिनिटामध्ये रीस्टार्ट होईल}one{ Chrome OS # मिनिटामध्ये रीस्टार्ट होईल}other{ Chrome OS # मिनिटांमध्ये रीस्टार्ट होईल}}</translation> <translation id="8796108026289707191">आपण आता Google Chrome रीस्टार्ट करावे.</translation> <translation id="8823341990149967727">Chrome कालबाह्य आहे</translation> <translation id="884296878221830158">आपण Chrome सुरू करता किंवा होम बटण क्लिक करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation> @@ -271,6 +287,7 @@ <translation id="9026991721384951619">आपले खाते साइन इन तपशील कालबाह्य झाल्यामुळे Chrome OS आपला डेटा संकालित करू शकले नाही.</translation> <translation id="9067395829937117663">Google Chrome साठी Windows 7 किंवा त्यानंतरची आवृत्ती आवश्यक आहे.</translation> <translation id="9084668267983921457">प्रमाणीकरण प्रमाणपत्र अयशस्वी झाले. कृपया Google Chrome मध्ये पुन्हा साइन इन करा किंवा आणखी माहितीसाठी तुमच्या प्रशासकाशी संपर्क साधा. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{ Chrome OS एका तासात रीस्टार्ट होईल}one{ Chrome OS # तासात रीस्टार्ट होईल}other{ Chrome OS # तासांमध्ये रीस्टार्ट होईल}}</translation> <translation id="911206726377975832">आपला ब्राउझिंग डेटा देखील हटवायचा?</translation> <translation id="919706545465235479">संकालन सुरू करण्यासाठी अपडेट करा</translation> <translation id="924447568950697217">Chrome ला आपला डीफॉल्ट ब्राउझर बनवा</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb index c4eca4d..d9e986b 100644 --- a/chrome/app/resources/google_chrome_strings_no.xtb +++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -130,6 +130,7 @@ <translation id="4561051373932531560">Med Google Chrome kan du klikke på et telefonnummer på Internett og ringe ved bruk av Skype!</translation> <translation id="4567424176335768812">Du er logget på som <ph name="USER_EMAIL_ADDRESS" />. Nå kan du bruke bokmerkene, loggen og andre innstillinger på alle enhetene du er logget på.</translation> <translation id="4571503333518166079">Gå til innstillingene for Chrome-varsler</translation> +<translation id="459622048091363950">Når Chrome har fått tilgang, vil nettstedene kunne spørre deg om tilgang.</translation> <translation id="4600710005438004015">Chrome kunne ikke oppdateres til den nyeste versjonen, så du går glipp av nye funksjoner og sikkerhetsforbedringer.</translation> <translation id="4631713731678262610">Skjul i Chrome-menyen</translation> <translation id="4633000520311261472">For å gjøre Chrome tryggere, har vi deaktivert noen utvidelser som ikke er oppført i <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />, og som kan ha blitt lagt uten at du har vært klar over det.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb index c47cb18..793e9382 100644 --- a/chrome/app/resources/google_chrome_strings_pl.xtb +++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">System operacyjny Chrome nie może zsynchronizować danych. Zaktualizuj hasło synchronizacji.</translation> <translation id="127345590676626841">Chrome aktualizuje się automatycznie, więc zawsze masz najnowszą wersję. Po zakończeniu pobierania Chrome uruchomi się ponownie i będzie gotowy do działania.</translation> <translation id="1302523850133262269">Poczekaj, aż Chrome zainstaluje najnowsze aktualizacje systemu.</translation> +<translation id="1312676208694947750">{0,plural, =0{Dostępna jest aktualizacja Chrome OS}=1{Dostępna jest aktualizacja Chrome OS}few{Aktualizacja Chrome OS jest dostępna od # dni}many{Aktualizacja Chrome OS jest dostępna od # dni}other{Aktualizacja Chrome OS jest dostępna od # dnia}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Pomoc do Chrome</translation> <translation id="1399397803214730675">Na tym komputerze jest już zainstalowana nowsza wersja Google Chrome. Jeśli oprogramowanie nie działa, odinstaluj Google Chrome, a następnie spróbuj ponownie.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome nie może odczytać ani zapisać danych w katalogu <ph name="USER_DATA_DIRECTORY" />.</translation> <translation id="1698376642261615901">Google Chrome jest przeglądarką internetową, w której witryny internetowe i aplikacje są szybkie jak błyskawica. Jest szybka, stabilna i łatwa w obsłudze. Dzięki wbudowanej ochronie przed złośliwym oprogramowaniem i wyłudzaniem informacji przeglądanie internetu przy użyciu przeglądarki Google Chrome jest bezpieczniejsze.</translation> <translation id="1718131156967340976">Wybierz <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome zapisze to hasło na Twoim koncie Google. Nie musisz go pamiętać.</translation> <translation id="174539241580958092">Google Chrome nie może zsynchronizować danych z powodu błędu podczas logowania.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Skorzystaj z pomocy dotyczącej używania systemu operacyjnego Chrome</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Zainstaluj Chrome na telefonie. Wyślemy SMS-a pod numer telefonu do odzyskiwania konta.</translation> <translation id="2246246234298806438">Google Chrome nie może pokazać podglądu wydruku, gdy nie ma wbudowanej przeglądarki PDF.</translation> <translation id="2252923619938421629">Pomóż udoskonalić Google Chrome, zgłaszając bieżące ustawienia</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome uruchomi się ponownie za godzinę}few{Chrome uruchomi się ponownie za # godziny}many{Chrome uruchomi się ponownie za # godzin}other{Chrome uruchomi się ponownie za # godziny}}</translation> <translation id="2286950485307333924">Jesteś teraz zalogowany w Chrome</translation> <translation id="2290014774651636340">Brakuje kluczy interfejsu Google API. Niektóre funkcje Google Chrome będą wyłączone.</translation> <translation id="2290095356545025170">Czy na pewno chcesz odinstalować przeglądarkę Google Chrome?</translation> @@ -146,10 +149,13 @@ <translation id="4891791193823137474">Zezwalaj przeglądarce Google Chrome na działanie w tle</translation> <translation id="4895437082222824641">O&twórz link w nowej karcie Chrome</translation> <translation id="4921569541910214635">Używasz komputera, z którego korzystają inne osoby? Teraz możesz skonfigurować Chrome tak, jak chcesz.</translation> +<translation id="4945319281866068441">{0,plural, =1{Uruchom ponownie Chrome OS w ciągu jednego dnia}few{Uruchom ponownie Chrome OS w ciągu # dni}many{Uruchom ponownie Chrome OS w ciągu # dni}other{Uruchom ponownie Chrome OS w ciągu # dnia}}</translation> <translation id="4953650215774548573">Ustaw Google Chrome jako domyślną przeglądarkę</translation> <translation id="495931528404527476">W Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome nie może zsynchronizować danych. Zaktualizuj hasło synchronizacji.</translation> +<translation id="5062123544085870375">Uruchom ponownie Chrome OS</translation> +<translation id="5090044601776247154">Profile nadzorowanych użytkowników nie będą dostępne począwszy od Google Chrome 70.</translation> <translation id="5132929315877954718">Odkryj znakomite aplikacje, gry, rozszerzenia i motywy do przeglądarki Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome działa obecnie w tym języku</translation> <translation id="5170938038195470297">Nie można użyć Twojego profilu, ponieważ został utworzony w nowszej wersji Google Chrome. Niektóre funkcje mogą być niedostępne. Podaj inny katalog z profilem lub użyj nowszej wersji Chrome.</translation> @@ -159,6 +165,8 @@ <translation id="532046782124376502">Ostrzeżenie: Google Chrome nie może uniemożliwić rozszerzeniom zapisywania historii przeglądania. Aby wyłączyć to rozszerzenie w trybie incognito, odznacz tę opcję.</translation> <translation id="5386244825306882791">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chrome lub wyszukiwaniu w omniboksie.</translation> <translation id="5430073640787465221">Plik ustawień jest uszkodzony lub nieprawidłowy. Google Chrome nie może odzyskać ustawień.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome uruchomi się ponownie teraz}=1{Chrome uruchomi się ponownie za 1 sekundę}few{Chrome uruchomi się ponownie za # sekundy}many{Chrome uruchomi się ponownie za # sekund}other{Chrome uruchomi się ponownie za # sekundy}}</translation> +<translation id="5514308096618405748">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu open source<ph name="END_LINK_CROS_OSS" />. To samo dotyczy funkcji Linux (Beta).</translation> <translation id="556024056938947818">Google Chrome próbuje pokazać hasła.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Plik <ph name="FILE_NAME" /> może być niebezpieczny, dlatego został zablokowany przez Chrome.</translation> @@ -184,6 +192,7 @@ <translation id="6291549208091401781">Google Chrome jest już zainstalowany dla wszystkich użytkowników tego komputera.</translation> <translation id="6338556085225130112">Aktualizuję Google Chrome</translation> <translation id="6368958679917195344">Opracowanie systemu operacyjnego Chrome było możliwe dzięki dodatkowemu <ph name="BEGIN_LINK_CROS_OSS" />oprogramowaniu typu open source<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Uruchom ponownie Chrome w ciągu jednego dnia}few{Uruchom ponownie Chrome w ciągu # dni}many{Uruchom ponownie Chrome w ciągu # dni}other{Uruchom ponownie Chrome w ciągu # dnia}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Aktualizuję Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Używasz adresu <ph name="PROFILE_EMAIL" /> do synchronizowania danych w Chrome. Aby zaktualizować ustawienia synchronizacji lub używać Chrome bez konta Google, wejdź na stronę <ph name="SETTINGS_LINK" />.</translation> @@ -195,10 +204,12 @@ <translation id="683440813066116847">Reguła dla ruchu przychodzącego w Google Chrome Canary zezwalająca na ruch mDNS.</translation> <translation id="686561893457936865">Zabierz Chrome ze sobą</translation> <translation id="6885412569789873916">Aplikacje do Chrome Beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Dostępna jest aktualizacja Chrome}=1{Dostępna jest aktualizacja Chrome}few{Aktualizacja Chrome jest dostępna od # dni}many{Aktualizacja Chrome jest dostępna od # dni}other{Aktualizacja Chrome jest dostępna od # dnia}}</translation> <translation id="6967962315388095737">Reguła dla ruchu przychodzącego w Google Chrome Beta zezwalająca na ruch mDNS.</translation> <translation id="6970811910055250180">Aktualizowanie urządzenia...</translation> <translation id="6982337800632491844">Domena <ph name="DOMAIN" /> wymaga, by przed korzystaniem z tego urządzenia przeczytać i zaakceptować Warunki korzystania z usługi. Nie rozszerzają, nie zmieniają ani nie ograniczają one Warunków korzystania z systemu operacyjnego Chrome.</translation> <translation id="6989339256997917931">Przeglądarka Google Chrome została zaktualizowana, ale nie była przez Ciebie używana przez co najmniej 30 dni.</translation> +<translation id="7023651421574588884">Administrator wymaga od Ciebie ponownego uruchomienia Chrome OS, by można było zainstalować aktualizację</translation> <translation id="7098166902387133879">Google Chrome używa Twojego mikrofonu.</translation> <translation id="7106741999175697885">Menedżer zadań – Google Chrome</translation> <translation id="7164397146364144019">Możesz pomóc zwiększyć bezpieczeństwo i komfort korzystania z Chrome, automatycznie przesyłając do Google szczegółowe informacje o możliwych zagrożeniach.</translation> @@ -211,8 +222,10 @@ <translation id="7419046106786626209">System operacyjny Chrome nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation> <translation id="7459554271817304652">Skonfiguruj synchronizację, by zapisać w internecie własne funkcje przeglądarki i mieć do nich dostęp w Google Chrome na każdym komputerze.</translation> <translation id="7473136999113284234">Chrome aktualizuje się automatycznie, więc zawsze masz najnowszą wersję.</translation> +<translation id="7486227612705979895">Chrome będzie mieć dostęp do Dysku, by wyświetlać podpowiedzi na pasku adresu</translation> <translation id="7535429826459677826">Wersja deweloperska Google Chrome</translation> <translation id="7552219221109926349">Wyświetlaj system operacyjny Chrome w tym języku</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome uruchomi się ponownie za 1 minutę}few{Chrome uruchomi się ponownie za # minuty}many{Chrome uruchomi się ponownie za # minut}other{Chrome uruchomi się ponownie za # minuty}}</translation> <translation id="7589360514048265910">Google Chrome nie będzie już aktualizować się na tym komputerze, bo system Mac OS X 10.9 nie jest już obsługiwany.</translation> <translation id="7592736734348559088">Google Chrome nie może zsynchronizować danych, ponieważ dane logowania na Twoje konto są nieaktualne.</translation> <translation id="7626032353295482388">Witamy w Chrome</translation> @@ -234,9 +247,11 @@ <translation id="8008534537613507642">Ponownie zainstaluj Chrome</translation> <translation id="8030318113982266900">Aktualizuję Twoje urządzenie do kanału: <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Aby po usunięciu konta z Chrome zmiany zostały zastosowane, może być konieczne ponowne załadowanie otwartych kart.</translation> +<translation id="8077352834923175128">Administrator prosi Cię o ponowne uruchomienie Chrome OS, by można było zainstalować tę aktualizację</translation> <translation id="8129812357326543296">&Google Chrome – informacje</translation> <translation id="8179874765710681175">Zainstaluj Chrome na telefonie. Na Twój telefon wyślemy SMS-a.</translation> <translation id="8183957050892517584">Chrome będzie bezpiecznie przechowywać Twoje dane, dzięki czemu nie będzie trzeba wpisywać ich ponownie.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS uruchomi się ponownie teraz}=1{Chrome OS uruchomi się ponownie za 1 sekundę}few{Chrome OS uruchomi się ponownie za # sekundy}many{Chrome OS uruchomi się ponownie za # sekund}other{Chrome OS uruchomi się ponownie za # sekundy}}</translation> <translation id="8255190535488645436">Google Chrome używa Twojej kamery i mikrofonu.</translation> <translation id="8286862437124483331">Google Chrome próbuje pokazać hasła. Podaj swoje hasło do Windows, by na to zezwolić.</translation> <translation id="8290100596633877290">O kurczę! Przeglądarka Google Chrome uległa awarii. Uruchomić ją teraz ponownie?</translation> @@ -259,6 +274,7 @@ <translation id="870251953148363156">Aktualizuj &Google Chrome</translation> <translation id="873133009373065397">Google Chrome nie może określić ani ustawić domyślnej przeglądarki</translation> <translation id="8736674169840206667">Administrator wymaga od Ciebie ponownego uruchomienia Chrome, by przeglądarka mogła zainstalować aktualizację</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS uruchomi się ponownie za 1 minutę}few{Chrome OS uruchomi się ponownie za # minuty}many{Chrome OS uruchomi się ponownie za # minut}other{Chrome OS uruchomi się ponownie za # minuty}}</translation> <translation id="8796108026289707191">Należy teraz ponownie uruchomić Google Chrome.</translation> <translation id="8823341990149967727">Chrome jest nieaktualny</translation> <translation id="884296878221830158">Kontroluje także to, jaka strona wyświetla się po uruchomieniu Chrome lub kliknięciu przycisku strony startowej.</translation> @@ -267,6 +283,7 @@ <translation id="9026991721384951619">Google Chrome nie może zsynchronizować danych, ponieważ dane logowania na Twoje konto są nieaktualne.</translation> <translation id="9067395829937117663">Google Chrome wymaga systemu Windows 7 lub nowszego.</translation> <translation id="9084668267983921457">Błąd certyfikatu uwierzytelniania. Jeszcze raz zaloguj się w Google Chrome lub skontaktuj się z administratorem, by uzyskać więcej informacji. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS uruchomi się ponownie za godzinę}few{Chrome OS uruchomi się ponownie za # godziny}many{Chrome OS uruchomi się ponownie za # godzin}other{Chrome OS uruchomi się ponownie za # godziny}}</translation> <translation id="911206726377975832">Czy usunąć także dane przeglądania?</translation> <translation id="919706545465235479">Aby rozpocząć synchronizację, zaktualizuj Chrome</translation> <translation id="924447568950697217">Ustawianie Chrome jako przeglądarki domyślnej</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-BR.xtb b/chrome/app/resources/google_chrome_strings_pt-BR.xtb index c333af2b..98b38fac 100644 --- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb +++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">O Google Chrome não pôde sincronizar seus dados. Atualize sua senha de sincronização.</translation> <translation id="127345590676626841">O Chrome é atualizado automaticamente para que você sempre tenha a versão mais recente. Quando o download estiver concluído, o Chrome será reiniciado e você estará pronto.</translation> <translation id="1302523850133262269">Aguarde enquanto o Chrome instala as últimas atualizações do sistema.</translation> +<translation id="1312676208694947750">{0,plural, =0{Uma atualização do Chrome OS está disponível}=1{Uma atualização do Chrome OS está disponível}one{Uma atualização do Chrome OS está disponível há # dia}other{Uma atualização do Chrome OS está disponível há # dias}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Obter ajuda para usar o Google Chrome</translation> <translation id="1399397803214730675">Este computador já tem uma versão mais recente do Google Chrome. Caso o software não esteja funcionando, desinstale-o e tente novamente.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">O Google Chrome não pode ler e gravar neste diretório de dados: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">O Google Chrome é um navegador que executa páginas e aplicativos da web em alta velocidade. É rápido, estável e fácil de usar. Navegue pela web de forma segura com proteção contra malware e phishing integrada ao Google Chrome.</translation> <translation id="1718131156967340976">Selecione o <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">O Chrome salvará essa senha na sua Conta do Google. Você não precisará se lembrar dela.</translation> <translation id="174539241580958092">O Google Chrome não pôde sincronizar seus dados devido a um erro no login.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Obter ajuda para usar o Chrome OS</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Instale o Chrome no seu smartphone. Enviaremos um SMS para o número de recuperação da sua conta.</translation> <translation id="2246246234298806438">O Google Chrome não consegue mostrar a visualização de impressão quando não há visualizador de PDF integrado.</translation> <translation id="2252923619938421629">Ajude a melhorar o Google Chrome informando as configurações atuais</translation> +<translation id="225363235161345695">{0,plural, =1{O Chrome será reiniciado em 1 hora}one{O Chrome será reiniciado em # hora}other{O Chrome será reiniciado em # horas}}</translation> <translation id="2286950485307333924">Você está conectado ao Chrome no momento</translation> <translation id="2290014774651636340">As chaves da API do Google não foram encontradas. Algumas funcionalidades do Google Chrome serão desativadas.</translation> <translation id="2290095356545025170">Tem certeza que quer desinstalar o Google Chrome?</translation> @@ -146,10 +149,13 @@ <translation id="4891791193823137474">Executar o Google Chrome em segundo plano</translation> <translation id="4895437082222824641">Abrir link em nova &guia do Chrome</translation> <translation id="4921569541910214635">Você compartilha um computador? Agora é possível configurar o Google Chrome do jeito que você gosta.</translation> +<translation id="4945319281866068441">{0,plural, =1{Reiniciar o Chrome OS em um dia}one{Reiniciar o Chrome OS em # dia}other{Reiniciar o Chrome OS em # dias}}</translation> <translation id="4953650215774548573">Definir o Google Chrome como seu navegador padrão</translation> <translation id="495931528404527476">No Google Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">O Google Chrome não pôde sincronizar seus dados. Atualize sua senha de sincronização.</translation> +<translation id="5062123544085870375">Reiniciar o Chrome OS</translation> +<translation id="5090044601776247154">Os perfis de usuários supervisionados não estarão mais disponíveis a partir do Google Chrome 70.</translation> <translation id="5132929315877954718">Descubra ótimos aplicativos, jogos, extensões e temas para o Google Chrome.</translation> <translation id="5166975452760862670">O Google Chrome é exibido neste idioma</translation> <translation id="5170938038195470297">Seu perfil não pode ser utilizado pois foi criado em uma versão mais recente do Google Chrome. Alguns recursos podem não estar disponíveis. Especifique um diretório de perfil diferente ou utilize uma versão mais recente do Google Chrome.</translation> @@ -159,6 +165,8 @@ <translation id="532046782124376502">Aviso: o Google Chrome não impede que as extensões registrem seu histórico de navegação. Para desativar esta extensão no modo anônimo, desmarque esta opção.</translation> <translation id="5386244825306882791">Controla também qual página deve ser exibida quando você inicia o Chrome ou faz uma pesquisa na Omnibox.</translation> <translation id="5430073640787465221">Seu arquivo de preferências está corrompido ou é inválido. O Google Chrome não foi capaz de recuperar suas configurações.</translation> +<translation id="5483595757826856374">{0,plural, =0{O Chrome será reiniciado agora}=1{O Chrome será reiniciado em 1 segundo}one{O Chrome será reiniciado em # segundo}other{O Chrome será reiniciado em # segundos}}</translation> +<translation id="5514308096618405748">O Chrome OS tornou-se possível graças a um <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional, como o Linux (Beta).</translation> <translation id="556024056938947818">O Google Chrome está tentando mostrar senhas.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">O arquivo <ph name="FILE_NAME" /> pode ser perigoso. Por isso, ele foi bloqueado pelo Chrome.</translation> @@ -184,6 +192,7 @@ <translation id="6291549208091401781">O Google Chrome já está instalado para todos os usuários do seu computador.</translation> <translation id="6338556085225130112">Atualizando o Google Chrome</translation> <translation id="6368958679917195344">O sistema operacional do Chrome tornou-se possível graças a um <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation> +<translation id="6468844726266617801">{0,plural, =1{Reiniciar o Chrome em um dia}one{Reiniciar o Chrome em # dia}other{Reiniciar o Chrome em # dias}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" />: Google Chrome Dev</translation> <translation id="6566149418543181476">Atualizando o Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Você está usando <ph name="PROFILE_EMAIL" /> para sincronizar suas informações do Google Chrome. Para atualizar suas preferências de sincronização ou usar o Chrome sem uma Conta do Google, vá para <ph name="SETTINGS_LINK" />.</translation> @@ -195,10 +204,12 @@ <translation id="683440813066116847">Regra interna do Google Chrome Canary para permitir tráfego mDNS.</translation> <translation id="686561893457936865">Leve o Chrome para todos os lugares</translation> <translation id="6885412569789873916">Apps do Chrome Beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Uma atualização do Chrome está disponível}=1{Uma atualização do Chrome está disponível}one{Uma atualização do Chrome está disponível há # dia}other{Uma atualização do Chrome está disponível há # dias}}</translation> <translation id="6967962315388095737">Regra interna do Google Chrome Beta que permite o tráfego mDNS.</translation> <translation id="6970811910055250180">Atualizando o dispositivo...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> requer que você leia e aceite os Termos de Serviço a seguir antes de utilizar o serviço. Esses termos não ampliam, modificam nem limitam os Termos do Google Chrome OS.</translation> <translation id="6989339256997917931">O Google Chrome foi atualizado, mas ele não é utilizado há pelo menos trinta dias.</translation> +<translation id="7023651421574588884">Seu administrador exige que você reinicie o Chrome OS para que uma atualização seja aplicada</translation> <translation id="7098166902387133879">O Google Chrome está usando seu microfone.</translation> <translation id="7106741999175697885">Gerenciador de tarefas - Google Chrome</translation> <translation id="7164397146364144019">Você pode ajudar a tornar o Google Chrome mais seguro e mais fácil de usar, informando automaticamente ao Google detalhes sobre possíveis incidentes de segurança.</translation> @@ -211,8 +222,10 @@ <translation id="7419046106786626209">O Chrome OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation> <translation id="7459554271817304652">Configure a sincronização para salvar seus recursos de navegador personalizados na web e acessá-los do Google Chrome em qualquer computador.</translation> <translation id="7473136999113284234">O Google Chrome é atualizado automaticamente para que você tenha sempre a versão mais recente.</translation> +<translation id="7486227612705979895">O Chrome acessará seu Drive para fazer sugestões na barra de endereço</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Exibir o Chrome OS neste idioma</translation> +<translation id="7561940363513215021">{0,plural, =1{O Chrome será reiniciado em 1 minuto}one{O Chrome será reiniciado em # minuto}other{O Chrome será reiniciado em # minutos}}</translation> <translation id="7589360514048265910">Este computador não receberá mais atualizações do Google Chrome, porque o Mac OS X 10.9 não é mais compatível.</translation> <translation id="7592736734348559088">O Google Chrome não pôde sincronizar seus dados, pois os detalhes de login da sua conta estão desatualizados.</translation> <translation id="7626032353295482388">Bem-vindo ao Google Chrome</translation> @@ -234,9 +247,11 @@ <translation id="8008534537613507642">Reinstalar o Google Chrome</translation> <translation id="8030318113982266900">Atualizando seu dispositivo para o canal <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Depois de remover sua conta do Google Chrome, pode ser necessário recarregar as guias abertas para que a alteração entre em vigor.</translation> +<translation id="8077352834923175128">Seu administrador pede que você reinicie o Chrome OS para que essa atualização seja aplicada</translation> <translation id="8129812357326543296">Sobre o Google Chrome</translation> <translation id="8179874765710681175">Instale o Chrome no seu smartphone. Enviaremos um SMS para seu número.</translation> <translation id="8183957050892517584">O Chrome armazenará seus dados pessoais com segurança para que não seja necessário digitá-los novamente.</translation> +<translation id="8226081633851087288">{0,plural, =0{O Chrome OS será reiniciado agora}=1{O Chrome OS será reiniciado em 1 segundo}one{O Chrome OS será reiniciado em # segundo}other{O Chrome OS será reiniciado em # segundos}}</translation> <translation id="8255190535488645436">O Google Chrome está usando sua câmera e seu microfone.</translation> <translation id="8286862437124483331">O Google Chrome está tentando mostrar senhas. Digite sua senha do Windows para permitir isso.</translation> <translation id="8290100596633877290">Nossa! Houve uma falha no Google Chrome. Reiniciar agora?</translation> @@ -259,6 +274,7 @@ <translation id="870251953148363156">Atualizar o Google Chrome</translation> <translation id="873133009373065397">O Google Chrome não pode determinar ou definir o navegador padrão</translation> <translation id="8736674169840206667">Seu administrador exige que você reinicie o Chrome para que uma atualização seja aplicada</translation> +<translation id="8791470158600044404">{0,plural, =1{O Chrome OS será reiniciado em 1 minuto}one{O Chrome OS será reiniciado em # minuto}other{O Chrome OS será reiniciado em # minutos}}</translation> <translation id="8796108026289707191">Você deve reiniciar o Google Chrome agora.</translation> <translation id="8823341990149967727">O Google Chrome está desatualizado</translation> <translation id="884296878221830158">Controla também qual página deve ser exibida quando você inicia o Chrome ou clica no botão "Página inicial".</translation> @@ -267,6 +283,7 @@ <translation id="9026991721384951619">O Chrome OS não pôde sincronizar seus dados porque os detalhes de login da sua conta estão desatualizados.</translation> <translation id="9067395829937117663">O Google Chrome requer o Windows 7 ou versão superior.</translation> <translation id="9084668267983921457">Falha no certificado de autenticação. Faça login novamente no Google Chrome ou entre em contato com o administrador para receber mais informações. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{O Chrome OS será reiniciado em uma hora}one{O Chrome OS será reiniciado em # hora}other{O Chrome OS será reiniciado em # horas}}</translation> <translation id="911206726377975832">Excluir também dados de navegação?</translation> <translation id="919706545465235479">Atualize o Chrome para iniciar a sincronização</translation> <translation id="924447568950697217">Definir o Google Chrome como o navegador padrão</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb index 07f94a1..71c3d8ad 100644 --- a/chrome/app/resources/google_chrome_strings_ro.xtb +++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">Sistemul de operare Chrome nu a putut sincroniza datele. Actualizați parola de acces pentru sincronizare.</translation> <translation id="127345590676626841">Chrome se actualizează automat, deci vei avea întotdeauna cea mai recentă versiune. După această descărcare, Chrome va reporni și va fi gata de utilizare.</translation> <translation id="1302523850133262269">Așteaptă până când Chrome instalează cele mai recente actualizări de sistem.</translation> +<translation id="1312676208694947750">{0,plural, =0{Este disponibilă o actualizare a sistemului de operare Chrome}=1{Este disponibilă o actualizare a sistemului de operare Chrome}few{O actualizare a sistemului de operare Chrome este disponibilă de # zile}other{O actualizare a sistemului de operare Chrome este disponibilă de # de zile}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Obțineți ajutor în legătură cu utilizarea Chrome</translation> <translation id="1399397803214730675">Acest computer are deja o versiune mai recentă de Google Chrome. Dacă software-ul nu funcționează, dezinstalați Google Chrome și încercați din nou.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome nu poate citi și scrie în directorul propriu de date: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome este un browser web care rulează pagini web și aplicații cu o viteză extraordinară. Este rapid, stabil și ușor de utilizat. Navigați pe web beneficiind de mai multă siguranță datorită protecției împotriva programelor malware și a phishingului, care este încorporată în Google Chrome.</translation> <translation id="1718131156967340976">Selectează <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome va salva parola în Contul tău Google. Nu va trebui să o reții.</translation> <translation id="174539241580958092">Google Chrome nu a putut sincroniza datele din cauza unei erori la conectare.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Obțineți ajutor în legătură cu utilizarea sistemului de operare Chrome</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Instalează Chrome pe telefon. Vom trimite un SMS la numărul de telefon de recuperare a contului.</translation> <translation id="2246246234298806438">Google Chrome nu poate afișa previzualizarea înainte de printare când vizualizatorul PDF încorporat lipsește.</translation> <translation id="2252923619938421629">Contribuie la îmbunătățirea browserului Google Chrome raportând setările actuale</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome se va relansa într-o oră}few{Chrome se va relansa în # ore}other{Chrome se va relansa în # de ore}}</translation> <translation id="2286950485307333924">Acum te-ai conectat la Chrome</translation> <translation id="2290014774651636340">Lipsesc chei pentru API-ul Google. Unele funcționalități Google Chrome vor fi dezactivate.</translation> <translation id="2290095356545025170">Sigur vrei să dezinstalezi Google Chrome?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Permite ca Google Chrome să ruleze în fundal</translation> <translation id="4895437082222824641">Deschide linkul într-o &filă Chrome nouă</translation> <translation id="4921569541910214635">Folosești un computer în comun? Acum poți să configurezi Chrome exact cum îți place.</translation> +<translation id="4945319281866068441">{0,plural, =1{Repornește sistemul de operare Chrome în cel mult o zi}few{Repornește sistemul de operare Chrome în cel mult # zile}other{Repornește sistemul de operare Chrome în cel mult # de zile}}</translation> <translation id="4953650215774548573">Setați Google Chrome ca browser prestabilit</translation> <translation id="495931528404527476">În Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome nu a putut sincroniza datele. Actualizați expresia de acces pentru sincronizare.</translation> +<translation id="5062123544085870375">Repornește sistemul de operare Chrome</translation> +<translation id="5090044601776247154">Profilurile de utilizator monitorizat nu vor mai fi disponibile începând cu versiunea Google Chrome 70.</translation> <translation id="5132929315877954718">Descoperă aplicații, jocuri, extensii și teme extraordinare pentru Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome este afișat în această limbă</translation> <translation id="5170938038195470297">Profilul dvs. nu poate fi utilizat, deoarece provine de la o versiune Google Chrome mai recentă. Este posibil ca unele funcții să nu fie disponibile. Specificați un director de profil diferit sau utilizați o versiune Chrome mai nouă.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">Avertisment: Google Chrome nu poate împiedica extensiile să înregistreze istoricul de navigare. Pentru a dezactiva această extensie în modul incognito, debifează această opțiune.</translation> <translation id="5386244825306882791">Stabilește și ce pagină se afișează când porniți Chrome sau când căutați din caseta polivalentă.</translation> <translation id="5430073640787465221">Fișierul dvs. de preferințe este fie deteriorat, fie nevalid. Google Chrome nu poate recupera setările dvs.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome se va relansa acum}=1{Chrome se va relansa într-o secundă}few{Chrome se va relansa în # secunde}other{Chrome se va relansa în # de secunde}}</translation> +<translation id="5514308096618405748">Sistemul de operare Chrome este posibil datorită unui <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> suplimentar, cum ar fi Linux (Beta).</translation> <translation id="556024056938947818">Google Chrome încearcă să afișeze parolele.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Este posibil ca <ph name="FILE_NAME" /> să fie periculos, așadar Chrome l-a blocat.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome este instalat deja pentru toți utilizatorii de pe computerul tău.</translation> <translation id="6338556085225130112">Google Chrome se actualizează</translation> <translation id="6368958679917195344">Sistemul de operare Chrome este posibil datorită unui <ph name="BEGIN_LINK_CROS_OSS" />software open source<ph name="END_LINK_CROS_OSS" /> suplimentar.</translation> +<translation id="6468844726266617801">{0,plural, =1{Relansează Chrome în cel mult o zi}few{Relansează Chrome în cel mult # zile}other{Relansează Chrome în cel mult # de zile}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Google Chrome se actualizează (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">În prezent, folosiți <ph name="PROFILE_EMAIL" /> pentru a sincroniza datele Chrome. Pentru a actualiza preferințele de sincronizare sau pentru a folosi Chrome fără un Cont Google, accesați <ph name="SETTINGS_LINK" />.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">Regula de intrare pentru Google Chrome Canary pentru a permite traficul mDNS.</translation> <translation id="686561893457936865">Ia Chrome pretutindeni</translation> <translation id="6885412569789873916">Aplicații Chrome Beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Este disponibilă o actualizare Chrome}=1{Este disponibilă o actualizare Chrome}few{O actualizare Chrome este disponibilă de # zile}other{O actualizare Chrome este disponibilă de # de zile}}</translation> <translation id="6967962315388095737">Regula de intrare pentru Google Chrome Beta pentru a permite traficul mDNS.</translation> <translation id="6970811910055250180">Se actualizează dispozitivul...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> necesită să citiți și să acceptați Termenii și condițiile următoare înainte de a utiliza acest dispozitiv. Acești termeni nu extind, nu modifică și nu limitează Termenii pentru sistemul de operare Google Chrome.</translation> <translation id="6989339256997917931">Google Chrome a fost actualizat, dar nu l-ai folosit cel puțin 30 de zile.</translation> +<translation id="7023651421574588884">Administratorul solicită să repornești sistemul de operare Chrome pentru a aplica o actualizare</translation> <translation id="7098166902387133879">Google Chrome utilizează microfonul.</translation> <translation id="7106741999175697885">Manager de activități - Google Chrome</translation> <translation id="7164397146364144019">Puteți contribui la un produs Chrome mai sigur și mai ușor de folosit raportând automat la Google detaliile eventualelor incidente privind securitatea.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">Sistemul de operare Chrome nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation> <translation id="7459554271817304652">Configurați sincronizarea pentru a salva funcțiile personalizate ale browserului pe web și accesați-le din Google Chrome de pe orice computer.</translation> <translation id="7473136999113284234">Chrome se actualizează automat, deci vei avea întotdeauna cea mai recentă versiune.</translation> +<translation id="7486227612705979895">Chrome îți va accesa spațiul de stocare Drive pentru a face sugestii în bara de adrese</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Afișează sistemul de operare Chrome în această limbă</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome se va relansa într-un minut}few{Chrome se va relansa în # minute}other{Chrome se va relansa în # de minute}}</translation> <translation id="7589360514048265910">Acest computer nu va mai primi actualizări pentru Google Chrome, deoarece Mac OS X 10.9 nu mai este acceptat.</translation> <translation id="7592736734348559088">Google Chrome nu a putut sincroniza datele, deoarece detaliile de conectare pentru contul dvs. nu sunt actualizate.</translation> <translation id="7626032353295482388">Bun venit la Chrome</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">Reinstalați Chrome</translation> <translation id="8030318113982266900">Se actualizează dispozitivul pentru canalul <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">După eliminarea contului din Chrome, poate fi necesar să reîncărcați filele deschise pentru ca schimbarea să se aplice.</translation> +<translation id="8077352834923175128">Administratorul solicită să repornești sistemul de operare Chrome pentru a aplica această actualizare</translation> <translation id="8129812357326543296">Despre &Google Chrome</translation> <translation id="8179874765710681175">Instalează Chrome pe telefon. Vom trimite un SMS pe telefon.</translation> <translation id="8183957050892517584">Chrome va stoca în siguranță detaliile personale, pentru a nu fi necesar să le introduci din nou.</translation> +<translation id="8226081633851087288">{0,plural, =0{Sistemul de operare Chrome va reporni acum}=1{Sistemul de operare Chrome va reporni într-o secundă}few{Sistemul de operare Chrome va reporni în # secunde}other{Sistemul de operare Chrome va reporni în # de secunde}}</translation> <translation id="8255190535488645436">Google Chrome utilizează camera foto și microfonul.</translation> <translation id="8286862437124483331">Google Chrome încearcă să afișeze parolele. Pentru a permite acest lucru, introduceți parola pentru Windows.</translation> <translation id="8290100596633877290">Hopa! Google Chrome s-a blocat. Repornești acum?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">Actualizați &Google Chrome</translation> <translation id="873133009373065397">Google Chrome nu poate determina sau seta browserul prestabilit</translation> <translation id="8736674169840206667">Administratorul solicită să relansezi Chrome pentru a aplica o actualizare</translation> +<translation id="8791470158600044404">{0,plural, =1{Sistemul de operare Chrome va reporni într-un minut}few{Sistemul de operare Chrome va reporni în # minute}other{Sistemul de operare Chrome va reporni în # de minute}}</translation> <translation id="8796108026289707191">Îți recomandăm să repornești Google Chrome acum.</translation> <translation id="8823341990149967727">Chrome nu este actualizat</translation> <translation id="884296878221830158">Stabilește și ce pagină se afișează când pornești Chrome sau dai clic pe butonul Pagina principală.</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">Sistemul de operare Chrome nu a putut sincroniza datele, deoarece detaliile de conectare pentru contul dvs. nu sunt actualizate.</translation> <translation id="9067395829937117663">Google Chrome necesită Windows 7 sau o versiune ulterioară.</translation> <translation id="9084668267983921457">Eroare privind certificatul de autentificare. Conectează-te la Google Chrome din nou sau contactează administratorul pentru mai multe informații. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Sistemul de operare Chrome va reporni într-o oră}few{Sistemul de operare Chrome va reporni în # ore}other{Sistemul de operare Chrome va reporni în # de ore}}</translation> <translation id="911206726377975832">Ștergi și datele de navigare?</translation> <translation id="919706545465235479">Actualizează Chrome pentru a începe sincronizarea</translation> <translation id="924447568950697217">Setează Chrome ca browser prestabilit</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb index a037d9e6..9167c208 100644 --- a/chrome/app/resources/google_chrome_strings_sk.xtb +++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje. Aktualizujte prístupovú frázu synchronizácie.</translation> <translation id="127345590676626841">Chrome sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu. Po dokončení sťahovania sa Chrome reštartujte a začnete používať aktuálnu verziu.</translation> <translation id="1302523850133262269">Počkajte, kým Chrome nainštaluje najnovšie aktualizácie systému.</translation> +<translation id="1312676208694947750">{0,plural, =0{Je k dispozícii aktualizácia systému Chrome OS}=1{Je k dispozícii aktualizácia systému Chrome OS}few{Aktualizácia systému Chrome OS je k dispozícii už # dni}many{Aktualizácia systému Chrome OS je k dispozícii už # dňa}other{Aktualizácia systému Chrome OS je k dispozícii už # dní}}</translation> <translation id="137466361146087520">Google Chrome beta verzie</translation> <translation id="1393853151966637042">Získajte pomoc pri používaní prehliadača Chrome</translation> <translation id="1399397803214730675">Tento počítač už obsahuje novšiu verziu prehliadača Google Chrome. Ak softvér nefunguje, odinštalujte prehliadač Google Chrome a skúste to znova.</translation> @@ -31,6 +32,7 @@ <translation id="1682634494516646069">Prehliadač Google Chrome nemôže čítať ani zapisovať do adresára s údajmi: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome je webový prehliadač, ktorý spúšťa webové stránky a aplikácie rýchlosťou blesku. Je rýchly, stabilný a jednoduchý. Má v sebe vstavanú ochranu pred škodlivým softvérom a neoprávneným získavaním údajov, vďaka ktorej je prehliadanie webu bezpečnejšie.</translation> <translation id="1718131156967340976">Vyberte <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome toto heslo uloží do vášho účtu Google. Nebudete si ho musieť pamätať.</translation> <translation id="174539241580958092">Prehliadaču Google Chrome sa nepodarilo synchronizovať vaše údaje z dôvodu chyby prihlásenia.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Získajte pomoc pri používaní systému Chrome OS</translation> @@ -48,6 +50,7 @@ <translation id="216054706567564023">Nainštalujte si Chrome do telefónu. Pošleme vám správu SMS na telefónne číslo na obnovenie účtu.</translation> <translation id="2246246234298806438">Ak vstavaný zobrazovač súborov PDF chýba, prehliadač Google Chrome nemôže zobraziť ukážku pred tlačou.</translation> <translation id="2252923619938421629">Nahláste aktuálne nastavenia a pomôžte tak zlepšiť prehliadač Google Chrome</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome sa znova spustí o 1 hodinu}few{Chrome sa znova spustí o # hodiny}many{Chrome sa znova spustí o # hodiny}other{Chrome sa znova spustí o # hodín}}</translation> <translation id="2286950485307333924">Ste prihlásený/-á do prehliadača Chrome</translation> <translation id="2290014774651636340">Chýbajú kľúče rozhrania Google API. Niektoré funkcie prehliadača Google Chrome budú zakázané.</translation> <translation id="2290095356545025170">Naozaj chcete odinštalovať aplikáciu Google Chrome?</translation> @@ -147,10 +150,13 @@ <translation id="4891791193823137474">Povoliť prehliadaču Google Chrome spustenie na pozadí</translation> <translation id="4895437082222824641">Otvoriť odkaz na novej &karte Chromu</translation> <translation id="4921569541910214635">Zdieľať počítač? Teraz si môžete prehliadač Chrome nastaviť podľa vlastných predstáv.</translation> +<translation id="4945319281866068441">{0,plural, =1{Chrome OS reštartujte do jedného dňa}few{Chrome OS reštartujte do # dní}many{Chrome OS reštartujte do # dňa}other{Chrome OS reštartujte do # dní}}</translation> <translation id="4953650215774548573">Nastaviť Google Chrome ako predvolený prehliadač</translation> <translation id="495931528404527476">V prehliadači Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Prehliadaču Google Chrome sa nepodarilo synchronizovať vaše údaje. Aktualizujte prístupovú frázu synchronizácie.</translation> +<translation id="5062123544085870375">Reštartovanie Chrome OS</translation> +<translation id="5090044601776247154">Od verzie 70 už nebudú v prehliadači Google Chrome ďalej k dispozícii kontrolované profily používateľov.</translation> <translation id="5132929315877954718">Objavte skvelé aplikácie, hry, rozšírenia a motívy pre prehliadač Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome sa zobrazuje v tomto jazyku</translation> <translation id="5170938038195470297">Váš profil sa nedá použiť, pretože pochádza z novšej verzie prehliadača Google Chrome. @@ -164,6 +170,8 @@ <translation id="5430073640787465221">Súbor predvolieb je poškodený alebo neplatný. Prehliadač Google Chrome nedokáže obnoviť vaše nastavenia.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome sa teraz reštartuje}=1{Chrome sa reštartuje o 1 sekundu}few{Chrome sa reštartuje o # sekundy}many{Chrome sa reštartuje o # sekundy}other{Chrome sa reštartuje o # sekúnd}}</translation> +<translation id="5514308096618405748">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru open source<ph name="END_LINK_CROS_OSS" />, ako je Linux (Beta).</translation> <translation id="556024056938947818">Prehliadač Google Chrome sa snaží zobraziť heslá.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Súbor <ph name="FILE_NAME" /> môže byť nebezpečný, a preto ho Chrome zablokoval.</translation> @@ -189,6 +197,7 @@ <translation id="6291549208091401781">Google Chrome už majú nainštalovaný všetci používatelia na vašom počítači.</translation> <translation id="6338556085225130112">Chrome sa aktualizuje</translation> <translation id="6368958679917195344">Chrome OS mohol vzniknúť vďaka ďalšiemu <ph name="BEGIN_LINK_CROS_OSS" />softvéru s otvoreným zdrojom<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Chrome znova spustite do jedného dňa}few{Chrome znova spustite do # dní}many{Chrome znova spustite do # dňa}other{Chrome znova spustite do # dní}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Google Chrome Dev</translation> <translation id="6566149418543181476">Aktualizuje sa Google Chrome (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Na synchronizáciu prehliadača Chrome používate účet <ph name="PROFILE_EMAIL" />. Ak chcete upraviť predvoľby synchronizácie alebo používať prehliadač Chrome bez účtu Google, prejdite na <ph name="SETTINGS_LINK" />.</translation> @@ -200,10 +209,12 @@ <translation id="683440813066116847">Pravidlo pre prichádzajúce prenosy pre prehliadač Google Chrome verzie Canary, ktoré povoľuje prenos dát mDNS.</translation> <translation id="686561893457936865">Vezmite si Chrome všade</translation> <translation id="6885412569789873916">Aplikácie pre Chrome beta verzie</translation> +<translation id="6964107240822114422">{0,plural, =0{Je k dispozícii aktualizácia Chromu}=1{Je k dispozícii aktualizácia Chromu}few{Aktualizácia Chromu je k dispozícii už # dni}many{Aktualizácia Chromu je k dispozícii už # dňa}other{Aktualizácia Chromu je k dispozícii už # dní}}</translation> <translation id="6967962315388095737">Pravidlo pre prichádzajúce prenosy pre prehliadač Google Chrome beta verzie, ktoré povoľuje prenos dát mDNS.</translation> <translation id="6970811910055250180">Prebieha aktualizácia zariadenia...</translation> <translation id="6982337800632491844">Stránky <ph name="DOMAIN" /> vyžadujú, aby ste si pred používaním tohto zariadenia prečítali nasledujúce Zmluvné podmienky a vyjadrili s nimi súhlas. Tieto zmluvné podmienky nerozširujú, neupravujú ani neobmedzujú Zmluvné podmienky systému Chrome OS.</translation> <translation id="6989339256997917931">Prehliadač Google Chrome bol aktualizovaný, ale najmenej 30 dní ste ho nepoužili.</translation> +<translation id="7023651421574588884">Správca požaduje, aby ste reštartovali Chrome OS na použitie aktualizácie</translation> <translation id="7098166902387133879">Google Chrome používa váš mikrofón.</translation> <translation id="7106741999175697885">Správca úloh – Google Chrome</translation> <translation id="7164397146364144019">Automatickým nahlasovaním podrobností o možných bezpečnostných problémoch môžete prispieť k zvýšeniu zabezpečenia prehliadača Chrome a k zjednodušeniu jeho používania.</translation> @@ -216,8 +227,10 @@ <translation id="7419046106786626209">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation> <translation id="7459554271817304652">Ak chcete uložiť svoje prispôsobené funkcie prehliadača na webe a pristupovať k nim z prehliadača Google Chrome v ktoromkoľvek počítači, nastavte synchronizáciu.</translation> <translation id="7473136999113284234">Chrome sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu.</translation> +<translation id="7486227612705979895">Chrome bude mať prístup na váš Disk, aby mohol v paneli s adresou zobrazovať návrhy</translation> <translation id="7535429826459677826">Google Chrome verzie pre vývojárov</translation> <translation id="7552219221109926349">Zobraziť Chrome OS v tomto jazyku</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome sa reštartuje o 1 minútu}few{Chrome sa reštartuje o # minúty}many{Chrome sa reštartuje o # minúty}other{Chrome sa reštartuje o # minút}}</translation> <translation id="7589360514048265910">Tento počítač už nebude dostávať aktualizácie prehliadača Google Chrome, pretože systém Mac OS X 10.9 už nie je podporovaný.</translation> <translation id="7592736734348559088">Prehliadaču Google Chrome sa nepodarilo synchronizovať vaše údaje, pretože vaše prihlasovacie údaje účtu sú zastarané.</translation> <translation id="7626032353295482388">Víta vás prehliadač Chrome</translation> @@ -239,9 +252,11 @@ <translation id="8008534537613507642">Preinštalovať prehliadač Chrome</translation> <translation id="8030318113982266900">Prebieha aktualizácia vášho zariadenia na kanál <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Po odstránení účtu z prehliadača Chrome možno budete musieť znova načítať otvorené karty, aby sa zmena uplatnila.</translation> +<translation id="8077352834923175128">Správca vás žiada o reštartovanie systému Chrome OS na použitie aktualizácie</translation> <translation id="8129812357326543296">Informácie o prehliadači &Google Chrome</translation> <translation id="8179874765710681175">Nainštalujte si Chrome do telefónu. Pošleme vám doň správu SMS.</translation> <translation id="8183957050892517584">Chrome vaše osobné údaje bezpečne uloží, aby ste ich už nemuseli znova zadávať.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome OS sa teraz reštartuje}=1{Chrome OS sa reštartuje o sekundu}few{Chrome OS sa reštartuje o # sekundy}many{Chrome OS sa reštartuje o # sekundy}other{Chrome OS sa reštartuje o # sekúnd}}</translation> <translation id="8255190535488645436">Google Chrome používa vašu kameru a mikrofón.</translation> <translation id="8286862437124483331">Prehliadač Google Chrome sa pokúša zobraziť heslá. Ak to chcete povoliť, zadajte svoje heslo systému Windows.</translation> <translation id="8290100596633877290">Google Chrome zlyhal. Chcete ho spustiť znova?</translation> @@ -264,6 +279,7 @@ <translation id="870251953148363156">Aktualizácia prehliadača &Google Chrome</translation> <translation id="873133009373065397">Google Chrome nedokáže určiť alebo nastaviť predvolený prehliadač</translation> <translation id="8736674169840206667">Správca požaduje, aby ste reštartovali Chrome na použitie aktualizácie</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome OS sa reštartuje o 1 minútu}few{Chrome OS sa reštartuje o # minúty}many{Chrome OS sa reštartuje o # minúty}other{Chrome OS sa reštartuje o # minút}}</translation> <translation id="8796108026289707191">Mali by ste reštartovať prehliadač Google Chrome.</translation> <translation id="8823341990149967727">Prehliadač Chrome je zastaraný</translation> <translation id="884296878221830158">Tiež určuje, ktorá stránka sa zobrazí pri spustení prehliadača Chrome alebo po kliknutí na tlačidlo Domovská stránka.</translation> @@ -272,6 +288,7 @@ <translation id="9026991721384951619">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože vaše prihlasovacie údaje účtu sú zastarané.</translation> <translation id="9067395829937117663">Google Chrome vyžaduje Windows 7 alebo vyšší.</translation> <translation id="9084668267983921457">Certifikát na overenie totožnosti zlyhal. Prihláste sa znova do prehliadača Google Chrome alebo kontaktujte správcu a požiadajte ho o ďalšie informácie. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome OS sa reštartuje o 1 hodinu}few{Chrome OS sa reštartuje o # hodiny}many{Chrome OS sa reštartuje o # hodiny}other{Chrome OS sa reštartuje o # hodín}}</translation> <translation id="911206726377975832">Chcete tiež odstrániť svoje údaje prehliadania?</translation> <translation id="919706545465235479">Ak chcete spustiť synchronizáciu, aktualizujte Chrome</translation> <translation id="924447568950697217">Nastavenie Chromu ako predvoleného prehliadača</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb index 0d2d1b7..6eb695b 100644 --- a/chrome/app/resources/google_chrome_strings_sl.xtb +++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Chrome OS ne more sinhronizirati vaših podatkov. Posodobite geslo za Google Sync.</translation> <translation id="127345590676626841">Chrome se samodejno posodablja, zato boste vedno imeli najnovejšo različico. Ko bo ta prenos končan, se bo Chrome znova zagnal in lahko boste nadaljevali z delom.</translation> <translation id="1302523850133262269">Počakajte, da Chrome namesti najnovejše sistemske posodobitve.</translation> +<translation id="1312676208694947750">{0,plural, =0{Na voljo je posodobitev za OS Chrome}=1{Na voljo je posodobitev za OS Chrome}one{Posodobitev za OS Chrome je na voljo že # dan}two{Posodobitev za OS Chrome je na voljo že # dneva}few{Posodobitev za OS Chrome je na voljo že # dni}other{Posodobitev za OS Chrome je na voljo že # dni}}</translation> <translation id="137466361146087520">Google Chrome Beta</translation> <translation id="1393853151966637042">Pomoč pri uporabi Google Chroma</translation> <translation id="1399397803214730675">V tem računalniku je že nameščena novejša različica Google Chroma. Če programska oprema ne deluje, odstranite Google Chrome in poskusite znova.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome je spletni brskalnik, ki bliskovito odpira spletna mesta in izvaja programe. Je hiter, stabilen in preprost za uporabo. V Google Chrome je vgrajena zaščita pred zlonamerno programsko opremo in lažnim predstavljanjem, kar omogoča varnejše brskanje v spletu.</translation> <translation id="1718131156967340976">Izberite <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome bo shranil to geslo v Google Računu. Ni si vam ga treba zapomniti.</translation> <translation id="174539241580958092">Google Chrome ni mogel sinhronizirati podatkov zaradi napake pri prijavi.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Pomoč pri uporabi sistema Chrome OS</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">Namestite Chrome v telefonu. Na telefonsko številko za obnovitev računa bomo poslali SMS.</translation> <translation id="2246246234298806438">Google Chrome ne more odpreti predogleda tiskanja, če ni vgrajenega pregledovalnika datotek PDF.</translation> <translation id="2252923619938421629">Pomagajte izboljšati Google Chrome s poročanjem trenutnih nastavitev</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome se bo znova zagnal čez eno uro}one{Chrome se bo znova zagnal čez # uro}two{Chrome se bo znova zagnal čez # uri}few{Chrome se bo znova zagnal čez # ure}other{Chrome se bo znova zagnal čez # ur}}</translation> <translation id="2286950485307333924">Prijavljeni ste v Chrome</translation> <translation id="2290014774651636340">Manjkajo ključi za Google API. Nekatere funkcije Google Chroma bodo onemogočene.</translation> <translation id="2290095356545025170">Ali ste prepričani, da želite odstraniti Google Chrome?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">Naj se Google Chrome izvaja v ozadju</translation> <translation id="4895437082222824641">Odpiranje povezave na novem &zavihku v Chromu</translation> <translation id="4921569541910214635">Imate računalnik v skupni rabi? Zdaj lahko nastavite Chrome po svojih željah.</translation> +<translation id="4945319281866068441">{0,plural, =1{OS Chrome znova zaženite v enem dnevu}one{OS Chrome znova zaženite v # dnevu}two{OS Chrome znova zaženite v # dnevih}few{OS Chrome znova zaženite v # dnevih}other{OS Chrome znova zaženite v # dnevih}}</translation> <translation id="4953650215774548573">Nastavitev Google Chroma za privzeti brskalnik</translation> <translation id="495931528404527476">V Chromu</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome ni mogel sinhronizirati podatkov. Posodobite geslo za sinhroniziranje.</translation> +<translation id="5062123544085870375">Vnovičen zagon OS-a Chrome</translation> +<translation id="5090044601776247154">Z Googlom Chrome 70 profili zaščitenih uporabnikov ne bodo več na voljo.</translation> <translation id="5132929315877954718">Odkrijte zanimive aplikacije, igre, razširitve in teme za Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome je v tem jeziku</translation> <translation id="5170938038195470297">Vašega profila ni mogoče uporabiti, ker je iz novejše različice Google Chroma. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">Datoteka z nastavitvami je poškodovana ali neveljavna. Google Chrome ne more obnoviti vaših nastavitev.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome se bo zdaj znova zagnal}=1{Chrome se bo znova zagnal čez 1 sekundo}one{Chrome se bo znova zagnal čez # sekundo}two{Chrome se bo znova zagnal čez # sekundi}few{Chrome se bo znova zagnal čez # sekunde}other{Chrome se bo znova zagnal čez # sekund}}</translation> +<translation id="5514308096618405748">OS Chrome omogoča dodatna <ph name="BEGIN_LINK_CROS_OSS" />odprtokodna programska oprema<ph name="END_LINK_CROS_OSS" />, kot je Linux (beta).</translation> <translation id="556024056938947818">Google Chrome poskuša prikazati gesla.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Datoteka <ph name="FILE_NAME" /> je morda nevarna, zato jo je Chrome blokiral.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">Google Chrome je že nameščen za vse uporabnike v računalniku.</translation> <translation id="6338556085225130112">Posodabljanje Google Chroma</translation> <translation id="6368958679917195344">Sistem Chrome OS uporablja dodatno <ph name="BEGIN_LINK_CROS_OSS" />odprtokodno programsko opremo<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Chrome znova zaženite v enem dnevu}one{Chrome znova zaženite v # dnevu}two{Chrome znova zaženite v # dnevih}few{Chrome znova zaženite v # dnevih}other{Chrome znova zaženite v # dnevih}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> različica Google Chroma za razvijalce</translation> <translation id="6566149418543181476">Posodabljanje Google Chroma (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Za sinhronizacijo stvari v Chromu uporabljate <ph name="PROFILE_EMAIL" />. Če želite posodobiti nastavitve sinhroniziranja ali uporabljati Chrome brez Google Računa, odprite <ph name="SETTINGS_LINK" />.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">Pravilo za dohodni promet za Google Chrome Canary, ki dovoli promet mDNS.</translation> <translation id="686561893457936865">Naj vas Chrome spremlja povsod</translation> <translation id="6885412569789873916">Aplikacije za Chrome Beta</translation> +<translation id="6964107240822114422">{0,plural, =0{Na voljo je posodobitev za Chrome}=1{Na voljo je posodobitev za Chrome}one{Posodobitev za Chrome je na voljo že # dan}two{Posodobitev za Chrome je na voljo že # dneva}few{Posodobitev za Chrome je na voljo že # dni}other{Posodobitev za Chrome je na voljo že # dni}}</translation> <translation id="6967962315388095737">Pravilo za dohodni promet za Google Chrome Beta, ki dovoli promet mDNS.</translation> <translation id="6970811910055250180">Posodabljanje naprave ...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> zahteva, da preberete in sprejmete pogoje storitve, preden začnete uporabljati napravo. Ti pogoji ne dopolnjujejo, spreminjajo ali omejujejo pogojev za Google Chrome OS.</translation> <translation id="6989339256997917931">Google Chrome je posodobljen, a ga niste uporabljali že vsaj 30 dni.</translation> +<translation id="7023651421574588884">Skrbnik zahteva, da za uveljavitev posodobitve znova zaženete OS Chrome</translation> <translation id="7098166902387133879">Google Chrome uporablja vaš mikrofon.</translation> <translation id="7106741999175697885">Upravitelj opravil – Google Chrome</translation> <translation id="7164397146364144019">S samodejnim poročanjem podrobnosti o morebitnih varnostnih dogodkih Googlu lahko pomagate narediti Chrome varnejši in preprostejši za uporabo.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">Chrome OS ni mogel sinhronizirati podatkov, ker sinhronizacija ni na voljo za vašo domeno.</translation> <translation id="7459554271817304652">Nastavite sinhronizacijo, da prilagojene funkcije brskalnika shranite v spletu in do njih v Google Chromu dostopate v katerem koli računalniku.</translation> <translation id="7473136999113284234">Chrome se samodejno posodablja, zato boste vedno imeli najnovejšo različico.</translation> +<translation id="7486227612705979895">Chrome bo dostopal do Googla Drive zaradi ponujanja predlogov v naslovni vrstici</translation> <translation id="7535429826459677826">Google Chrome Dev</translation> <translation id="7552219221109926349">Prikaži OS Chrome v tem jeziku</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome se bo znova zagnal čez 1 minuto}one{Chrome se bo znova zagnal čez # minuto}two{Chrome se bo znova zagnal čez # minuti}few{Chrome se bo znova zagnal čez # minute}other{Chrome se bo znova zagnal čez # minut}}</translation> <translation id="7589360514048265910">Ta računalnik ne bo več prejemal posodobitev za Google Chrome, ker sistem Mac OS X 10.9 ni več podprt.</translation> <translation id="7592736734348559088">Google Chrome ni mogel sinhronizirati podatkov, ker so podatki za prijavo v račun zastareli.</translation> <translation id="7626032353295482388">Dobrodošli v brskalniku Chrome</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Vnovična namestitev Chroma</translation> <translation id="8030318113982266900">Posodabljanje naprave na kanal <ph name="CHANNEL_NAME" /> ...</translation> <translation id="8032142183999901390">Ko odstranite račun iz Chroma, boste morali morda znova naložiti odprte zavihke, če želite uveljaviti spremembo.</translation> +<translation id="8077352834923175128">Skrbnik prosi, da za uveljavitev te posodobitve znova zaženete OS Chrome</translation> <translation id="8129812357326543296">O &Google Chromu</translation> <translation id="8179874765710681175">Namestite Chrome v telefonu. V telefon vam bomo poslali SMS.</translation> <translation id="8183957050892517584">Chrome bo varno shranil vaše osebne podatke, tako da vam jih ne bo treba več vnesti.</translation> +<translation id="8226081633851087288">{0,plural, =0{OS Chrome se bo zdaj znova zagnal}=1{OS Chrome se bo znova zagnal čez 1 sekundo}one{OS Chrome se bo znova zagnal čez # sekundo}two{OS Chrome se bo znova zagnal čez # sekundi}few{OS Chrome se bo znova zagnal čez # sekunde}other{OS Chrome se bo znova zagnal čez # sekund}}</translation> <translation id="8255190535488645436">Google Chrome uporablja vašo kamero in mikrofon.</translation> <translation id="8286862437124483331">Google Chrome poskuša prikazati gesla. Če želite omogočiti to, vnesite geslo za Windows.</translation> <translation id="8290100596633877290">Opa! Google Chrome se je zrušil. Ga želite znova zagnati?</translation> @@ -267,6 +282,7 @@ <translation id="870251953148363156">Posodabljanje &Google Chroma</translation> <translation id="873133009373065397">Google Chrome ne more določiti ali nastaviti privzetega brskalnika</translation> <translation id="8736674169840206667">Skrbnik zahteva, da za uveljavitev te posodobitve znova zaženete Chrome</translation> +<translation id="8791470158600044404">{0,plural, =1{OS Chrome se bo znova zagnal čez 1 minuto}one{OS Chrome se bo znova zagnal čez # minuto}two{OS Chrome se bo znova zagnal čez # minuti}few{OS Chrome se bo znova zagnal čez # minute}other{OS Chrome se bo znova zagnal čez # minut}}</translation> <translation id="8796108026289707191">Google Chrome zdaj znova zaženite.</translation> <translation id="8823341990149967727">Chrome je zastarel</translation> <translation id="884296878221830158">Določa tudi, katera stran je prikazana, ko zaženete Chrome ali kliknete gumb za domačo stran.</translation> @@ -275,6 +291,7 @@ <translation id="9026991721384951619">Chrome OS ni mogel sinhronizirati podatkov, ker so podatki za prijavo v račun zastareli.</translation> <translation id="9067395829937117663">Za Google Chrome potrebujete Windows 7 ali novejši.</translation> <translation id="9084668267983921457">Napaka potrdila za preverjanje pristnosti. Znova se prijavite v Google Chrome ali se obrnite na skrbnika, če želite več informacij. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{OS Chrome se bo znova zagnal čez eno uro}one{OS Chrome se bo znova zagnal čez # uro}two{OS Chrome se bo znova zagnal čez # uri}few{OS Chrome se bo znova zagnal čez # ure}other{OS Chrome se bo znova zagnal čez # ur}}</translation> <translation id="911206726377975832">Ali želite izbrisati tudi podatke brskanja?</translation> <translation id="919706545465235479">Posodobite Chrome, če želite začeti sinhronizacijo</translation> <translation id="924447568950697217">Nastavitev Chroma kot privzetega brskalnika</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb index 23b21f50..9fc4f54 100644 --- a/chrome/app/resources/google_chrome_strings_sr.xtb +++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -15,6 +15,7 @@ <translation id="123620459398936149">Chrome ОС не може да синхронизује податке. Ажурирајте приступну фразу за Синхронизацију.</translation> <translation id="127345590676626841">Chrome се аутоматски ажурира, па увек имате најновију верзију. Када ово преузимање буде довршено, Chrome ће се поново покренути и бићете спремни.</translation> <translation id="1302523850133262269">Сачекајте да Chrome инсталира најновија ажурирања система.</translation> +<translation id="1312676208694947750">{0,plural, =0{Ажурирање за Chrome ОС је доступно}=1{Ажурирање за Chrome ОС је доступно}one{Ажурирање за Chrome ОС је доступно већ # дан}few{Ажурирање за Chrome ОС је доступно већ # дана}other{Ажурирање за Chrome ОС је доступно већ # дана}}</translation> <translation id="137466361146087520">Google Chrome бета</translation> <translation id="1393853151966637042">Пронађи помоћ за коришћење Chrome-а</translation> <translation id="1399397803214730675">Овај рачунар већ има новију верзију Google Chrome прегледача. Ако софтвер не функционише, деинсталирајте Google Chrome и покушајте поново.</translation> @@ -33,6 +34,7 @@ <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome је веб прегледач који веб-странице и апликације покреће брзином светлости. Он је брз, стабилан и лак за коришћење. Још безбедније прегледајте Веб уз помоћ заштите од малвера и „пецања“ која је уграђена у Google Chrome.</translation> <translation id="1718131156967340976">Изаберите <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome ће сачувати ову лозинку на Google налогу. Нећете морати да је памтите.</translation> <translation id="174539241580958092">Google Chrome не може да синхронизује податке због грешке при пријављивању.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Пронађи помоћ за коришћење Chrome ОС-а</translation> @@ -50,6 +52,7 @@ <translation id="216054706567564023">Инсталирајте Chrome на телефону. Послаћемо вам SMS на број телефона за враћање приступа налогу.</translation> <translation id="2246246234298806438">Google Chrome не може да покаже приказ пре штампања када недостаје уграђени PDF приказивач.</translation> <translation id="2252923619938421629">Помозите да побољшамо Google Chrome тако што ћете послати извештај о актуелним подешавањима</translation> +<translation id="225363235161345695">{0,plural, =1{Поново ћемо покренути Chrome за један сат}one{Поново ћемо покренути Chrome за # сат}few{Поново ћемо покренути Chrome за # сата}other{Поново ћемо покренути Chrome за # сати}}</translation> <translation id="2286950485307333924">Сада сте пријављени у Chrome</translation> <translation id="2290014774651636340">Недостају шифре за Google API. Неке функције Google Chrome-а ће бити онемогућене.</translation> <translation id="2290095356545025170">Да ли стварно желите да деинсталирате Google Chrome?</translation> @@ -149,10 +152,13 @@ <translation id="4891791193823137474">Нека Google Chrome ради у позадини</translation> <translation id="4895437082222824641">Отвори линк у новој Chrome &картици</translation> <translation id="4921569541910214635">Делите рачунар? Сада можете да подесите Chrome баш онако како вама одговара.</translation> +<translation id="4945319281866068441">{0,plural, =1{Рестартујте Chrome ОС за један дан}one{Рестартујте Chrome ОС за # дан}few{Рестартујте Chrome ОС за # дана}other{Рестартујте Chrome ОС за # дана}}</translation> <translation id="4953650215774548573">Подеси Google Chrome као подразумевани прегледач</translation> <translation id="495931528404527476">У Chrome-у</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome не може да синхронизује податке. Ажурирајте приступну фразу за Синхронизацију.</translation> +<translation id="5062123544085870375">Рестартујте Chrome ОС</translation> +<translation id="5090044601776247154">Профили корисника под надзором неће више бити доступни почев од Google Chrome верзије 70.</translation> <translation id="5132929315877954718">Откријте одличне апликације, игре, додатке и теме за Google Chrome.</translation> <translation id="5166975452760862670">Google Chrome се приказује на овом језику</translation> <translation id="5170938038195470297">Профил не може да се користи јер је из новије верзије Google Chrome-а. @@ -166,6 +172,8 @@ <translation id="5430073640787465221">Датотека подешавања је оштећена или неважећа. Google Chrome не може да врати подешавања.</translation> +<translation id="5483595757826856374">{0,plural, =0{Поново ћемо покренути Chrome}=1{Поново ћемо покренути Chrome за 1 секунду}one{Поново ћемо покренути Chrome за # секунду}few{Поново ћемо покренути Chrome за # секунде}other{Поново ћемо покренути Chrome за # секунди}}</translation> +<translation id="5514308096618405748">Chrome ОС је омогућен захваљујући додатном <ph name="BEGIN_LINK_CROS_OSS" />софтверу са отвореним кодом<ph name="END_LINK_CROS_OSS" />, као и Linux (бета).</translation> <translation id="556024056938947818">Google Chrome покушава да прикаже лозинке.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Датотека <ph name="FILE_NAME" /> је можда опасна, па ју је Chrome блокирао.</translation> @@ -191,6 +199,7 @@ <translation id="6291549208091401781">Google Chrome је већ инсталиран за све кориснике на рачунару.</translation> <translation id="6338556085225130112">Ажурирање Google Chrome-а</translation> <translation id="6368958679917195344">Chrome OС je могућ захваљујући додатном <ph name="BEGIN_LINK_CROS_OSS" />софтвер отвореног кода<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Поново покрените Chrome за један дан}one{Поново покрените Chrome за # дан}few{Поново покрените Chrome за # дана}other{Поново покрените Chrome за # дана}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Програмерска верзија Google Chrome-а</translation> <translation id="6566149418543181476">Ажурирање Google Chrome-а (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Користите <ph name="PROFILE_EMAIL" /> за синхронизацију Chrome садржаја. Да бисте ажурирали подешавање синхронизације или користили Chrome без Google налога, посетите <ph name="SETTINGS_LINK" />.</translation> @@ -202,10 +211,12 @@ <translation id="683440813066116847">Правило за долазни саобраћај за Google Chrome Canary да бисте омогућили mDNS саобраћај.</translation> <translation id="686561893457936865">Нека Chrome буде увек са вама</translation> <translation id="6885412569789873916">Chrome апликације за бета канал</translation> +<translation id="6964107240822114422">{0,plural, =0{Ажурирање за Chrome је доступно}=1{Ажурирање за Chrome је доступно}one{Ажурирање за Chrome је доступно већ # дан}few{Ажурирање за Chrome је доступно већ # дана}other{Ажурирање за Chrome је доступно већ # дана}}</translation> <translation id="6967962315388095737">Правило за долазни саобраћај за Google Chrome бета да бисте омогућили mDNS саобраћај.</translation> <translation id="6970811910055250180">Ажурирање уређаја...</translation> <translation id="6982337800632491844"><ph name="DOMAIN" /> захтева да прочитате и прихватите следеће Услове коришћења услуге пре него што почнете да користите овај уређај. Ови услови не представљају проширење, измену или ограничење Услова за Google Chrome ОС.</translation> <translation id="6989339256997917931">Google Chrome је ажуриран, али га нисте користили најмање 30 дана.</translation> +<translation id="7023651421574588884">Администратор захтева да рестартујете Chrome ОС да бисте применили ажурирање</translation> <translation id="7098166902387133879">Google Chrome користи микрофон.</translation> <translation id="7106741999175697885">Менаџер задатака – Google Chrome</translation> <translation id="7164397146364144019">Можете да помогнете да Chrome буде безбеднији и једноставнији за коришћење ако аутоматски пријављујете Google-у детаље могућих безбедносних инцидената.</translation> @@ -218,8 +229,10 @@ <translation id="7419046106786626209">Chrome ОС не може да синхронизује податке јер Синхронизација није доступна за домен.</translation> <translation id="7459554271817304652">Подесите Синхронизацију како бисте сачували персонализоване функције прегледача на Веб и приступали им из Google Chrome-а на било ком рачунару.</translation> <translation id="7473136999113284234">Chrome се аутоматски ажурира, па увек имате најновију верзију.</translation> +<translation id="7486227612705979895">Chrome ће приступати Диску да би приказивао предлоге на траци за адресу</translation> <translation id="7535429826459677826">Програмерска верзија Google Chrome-а</translation> <translation id="7552219221109926349">Приказуј Chrome ОС на овом језику</translation> +<translation id="7561940363513215021">{0,plural, =1{Поново ћемо покренути Chrome за 1 минут}one{Поново ћемо покренути Chrome за # минут}few{Поново ћемо покренути Chrome за # минута}other{Поново ћемо покренути Chrome за # минута}}</translation> <translation id="7589360514048265910">Овај рачунар више неће добијати ажурирања за Google Chrome зато што Mac OS X 10.9 више није подржан.</translation> <translation id="7592736734348559088">Google Chrome не може да синхронизује податке зато што су подаци за пријављивање на налог застарели.</translation> <translation id="7626032353295482388">Добро дошли у Chrome</translation> @@ -241,9 +254,11 @@ <translation id="8008534537613507642">Поново инсталирај Chrome</translation> <translation id="8030318113982266900">Ажурирање уређаја на канал <ph name="CHANNEL_NAME" />...</translation> <translation id="8032142183999901390">Када уклоните налог из Chrome-а, можда ћете морати поново да учитате отворене картице да би то ступило на снагу.</translation> +<translation id="8077352834923175128">Администратор тражи да рестартујете Chrome ОС да бисте применили ово ажурирање</translation> <translation id="8129812357326543296">О &Google Chrome-у</translation> <translation id="8179874765710681175">Инсталирајте Chrome на телефону. Послаћемо вам SMS на телефон.</translation> <translation id="8183957050892517584">Chrome ће безбедно складиштити личне податке да не бисте морали поново да их уносите.</translation> +<translation id="8226081633851087288">{0,plural, =0{Chrome ОС ће се рестартовати}=1{Chrome ОС ће се рестартовати за 1 секунду}one{Chrome ОС ће се рестартовати за # секунду}few{Chrome ОС ће се рестартовати за # секунде}other{Chrome ОС ће се рестартовати за # секунди}}</translation> <translation id="8255190535488645436">Google Chrome користи камеру и микрофон.</translation> <translation id="8286862437124483331">Google Chrome покушава да прикаже лозинке. Унесите лозинку за Windows да бисте то омогућили.</translation> <translation id="8290100596633877290">Опа! Google Chrome је отказао. Желите ли да га одмах поново покренете?</translation> @@ -266,6 +281,7 @@ <translation id="870251953148363156">Ажурирај &Google Chrome</translation> <translation id="873133009373065397">Google Chrome не може да одреди ни да подеси подразумевани прегледач</translation> <translation id="8736674169840206667">Администратор захтева да поново покренете Chrome да бисте применили ажурирање</translation> +<translation id="8791470158600044404">{0,plural, =1{Chrome ОС ће се рестартовати за 1 минут}one{Chrome ОС ће се рестартовати за # минут}few{Chrome ОС ће се рестартовати за # минута}other{Chrome ОС ће се рестартовати за # минута}}</translation> <translation id="8796108026289707191">Сада треба поново да покренете Google Chrome.</translation> <translation id="8823341990149967727">Chrome је застарео</translation> <translation id="884296878221830158">Контролише и страницу која се приказује када покренете Chrome или кликнете на дугме Почетна.</translation> @@ -274,6 +290,7 @@ <translation id="9026991721384951619">Chrome ОС не може да синхронизује податке зато што су подаци за пријављивање на налог застарели.</translation> <translation id="9067395829937117663">За Google Chrome је потребан Windows 7 или новија верзија.</translation> <translation id="9084668267983921457">Није успела потврда идентитета помоћу овог сертификата. Поново се пријавите у Google Chrome или контактирајте администратора за више информација. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{Chrome ОС ће се рестартовати за један сат}one{Chrome ОС ће се рестартовати за # сат}few{Chrome ОС ће се рестартовати за # сата}other{Chrome ОС ће се рестартовати за # сати}}</translation> <translation id="911206726377975832">Желите ли да избришете и податке прегледања?</translation> <translation id="919706545465235479">Ажурирајте Chrome да бисте започели синхронизацију</translation> <translation id="924447568950697217">Поставите Chrome за подразумевани прегледач</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb index 8ecc128e..818c1e7 100644 --- a/chrome/app/resources/google_chrome_strings_te.xtb +++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -130,6 +130,7 @@ <translation id="4561051373932531560">Google Chrome వెబ్లో మిమ్మళ్ని ఫోన్ నంబర్ క్లిక్ చెయ్యనిస్తుంది మరియు Skypeతో కాల్ చేస్తుంది!</translation> <translation id="4567424176335768812">మీరు <ph name="USER_EMAIL_ADDRESS" />గా సైన్ ఇన్ చేసారు. ఇప్పుడు మీరు మీ సైన్ ఇన్ చేసిన అన్ని పరికరాల్లో మీ బుక్మార్క్లు, చరిత్ర మరియు ఇతర సెట్టింగ్లను ప్రాప్యత చేయవచ్చు.</translation> <translation id="4571503333518166079">Chrome నోటిఫికేషన్ సెట్టింగ్లలోకి వెళ్లు</translation> +<translation id="459622048091363950">ఓసారి Chromeకి యాక్సెస్ లభించాక, ఆపై వెబ్సైట్లకు ఏమైనా యాక్సెస్ కావాలంటే మిమ్మల్ని అడగవచ్చు.</translation> <translation id="4600710005438004015">Chromeని తాజా వెర్షన్కు అప్డేట్ చేయడం సాధ్యం కాలేదు, కనుక మీరు కొత్త ఫీచర్లు మరియు భద్రతా పరిష్కారాలను పొందలేరు.</translation> <translation id="4631713731678262610">Chrome మెనులో దాచండి</translation> <translation id="4633000520311261472">Chromeను సురక్షితం చేయడానికి, మేము <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />లో జాబితా చేయబడని మరియు మీకు తెలియకుండానే జోడించబడిన కొన్ని పొడిగింపులను నిలిపివేసాము.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb index 3a2ea651..c57de14 100644 --- a/chrome/app/resources/google_chrome_strings_uk.xtb +++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -13,6 +13,7 @@ <translation id="123620459398936149">ОС Chrome не вдалося синхронізувати ваші дані. Оновіть свою парольну фразу для синхронізації.</translation> <translation id="127345590676626841">Chrome оновлюється автоматично, щоб у вас завжди була найновіша версія. Коли це завантаження завершиться, Chrome перезапуститься, і ви зможете продовжувати роботу.</translation> <translation id="1302523850133262269">Зачекайте, доки Chrome установить найновіші оновлення системи.</translation> +<translation id="1312676208694947750">{0,plural, =0{Доступне оновлення ОС Chrome}=1{Доступне оновлення ОС Chrome}one{Оновлення ОС Chrome доступне вже # день}few{Оновлення ОС Chrome доступне вже # дні}many{Оновлення ОС Chrome доступне вже # днів}other{Оновлення ОС Chrome доступне вже # дня}}</translation> <translation id="137466361146087520">Бета-версія Google Chrome</translation> <translation id="1393853151966637042">Отримати довідку щодо користування Chrome</translation> <translation id="1399397803214730675">На комп’ютері вже встановлено новішу версію Google Chrome. Якщо програмне забезпечення не працює, видаліть Google Chrome і повторіть спробу.</translation> @@ -29,6 +30,7 @@ <translation id="1682634494516646069">Google Chrome не може читати та записувати у свій каталог даних: <ph name="USER_DATA_DIRECTORY" /></translation> <translation id="1698376642261615901">Google Chrome – це веб-переглядач, який запускає веб-сторінки та програми з блискавичною швидкістю. Він швидкий, надійний і зручний у користуванні. Вбудований у Google Chrome захист від шкідливих програм і фішингу гарантує ще більшу безпеку під час перегляду веб-сторінок.</translation> <translation id="1718131156967340976">Виберіть <ph name="SMALL_PRODUCT_LOGO" /> <ph name="BEGIN_BOLD" />Google Chrome<ph name="END_BOLD" /></translation> +<translation id="1734234790201236882">Chrome збереже цей пароль в обліковому записі Google. Не потрібно його запам’ятовувати.</translation> <translation id="174539241580958092">Google Chrome не вдалося синхронізувати ваші дані через помилку входу.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1773601347087397504">Отримати довідку щодо користування ОС Chrome</translation> @@ -46,6 +48,7 @@ <translation id="216054706567564023">Установіть Chrome на телефоні. Ми надішлемо SMS на номер телефону для відновлення облікового запису.</translation> <translation id="2246246234298806438">Google Chrome не може відобразити попередній перегляд версії для друку, якщо немає вбудованого переглядача PDF.</translation> <translation id="2252923619938421629">Допоможіть покращити Google Chrome, повідомляючи поточні налаштування</translation> +<translation id="225363235161345695">{0,plural, =1{Chrome перезапуститься через годину}one{Chrome перезапуститься через # годину}few{Chrome перезапуститься через # години}many{Chrome перезапуститься через # годин}other{Chrome перезапуститься через # години}}</translation> <translation id="2286950485307333924">Ви ввійшли в Chrome</translation> <translation id="2290014774651636340">Ключі API Google відсутні. Деякі функції Google Chrome буде вимкнено.</translation> <translation id="2290095356545025170">Ви дійсно хочете видалити Google Chrome?</translation> @@ -145,10 +148,13 @@ <translation id="4891791193823137474">Дозволити Google Chrome працювати у фоновому режимі</translation> <translation id="4895437082222824641">Відкрити посилання в новій &вкладці Chrome</translation> <translation id="4921569541910214635">Користуєтеся комп’ютером спільно з іншими? Тепер ви можете налаштувати Chrome на свій смак.</translation> +<translation id="4945319281866068441">{0,plural, =1{Перезапустіть ОС Chrome упродовж дня}one{Перезапустіть ОС Chrome упродовж # дня}few{Перезапустіть ОС Chrome упродовж # днів}many{Перезапустіть ОС Chrome упродовж # днів}other{Перезапустіть ОС Chrome упродовж # дня}}</translation> <translation id="4953650215774548573">Зробити Google Chrome веб-переглядачем за умовчанням</translation> <translation id="495931528404527476">У Chrome</translation> <translation id="4990567037958725628">Google Chrome Canary</translation> <translation id="5028489144783860647">Google Chrome не вдалося синхронізувати ваші дані. Оновіть свою парольну фразу для синхронізації.</translation> +<translation id="5062123544085870375">Перезапустіть ОС Chrome</translation> +<translation id="5090044601776247154">Профілі контрольованих користувачів будуть недоступні в Google Chrome 70 і новіших версій.</translation> <translation id="5132929315877954718">Знаходьте чудові додатки, ігри, розширення й теми для Google Chrome.</translation> <translation id="5166975452760862670">Для Google Chrome вибрано цю мову</translation> <translation id="5170938038195470297">Ваш профіль не можна використати, оскільки його створено в новішій версії Google Chrome. Деякі функції можуть бути недоступними. Укажіть інший каталог профілю чи скористайтеся новішою версією Chrome.</translation> @@ -158,6 +164,8 @@ <translation id="532046782124376502">Застереження. Google Chrome не може заборонити розширенням реєструвати історію веб-перегляду. Щоб розширення не працювало в режимі анонімного перегляду, зніміть прапорець біля цієї опції.</translation> <translation id="5386244825306882791">Розширення також змінило сторінку, яка відкривається під час запуску Chrome або пошуку в універсальному вікні пошуку.</translation> <translation id="5430073640787465221">Ваш файл налаштувань пошкоджений або недійсний. Google Chrome не може відновити ваші налаштування.</translation> +<translation id="5483595757826856374">{0,plural, =0{Chrome перезапуститься зараз}=1{Chrome перезапуститься через 1 секунду}one{Chrome перезапуститься через # секунду}few{Chrome перезапуститься через # секунди}many{Chrome перезапуститься через # секунд}other{Chrome перезапуститься через # секунди}}</translation> +<translation id="5514308096618405748">ОС Chrome стала можливою завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />, як і бета-версія Linux.</translation> <translation id="556024056938947818">Google Chrome намагається показати паролі.</translation> <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation> <translation id="565744775970812598">Файл <ph name="FILE_NAME" /> може бути небезпечним, тому Chrome заблокував його.</translation> @@ -183,6 +191,7 @@ <translation id="6291549208091401781">Google Chrome уже встановлено для всіх користувачів на вашому комп’ютері.</translation> <translation id="6338556085225130112">Оновлення Google Chrome</translation> <translation id="6368958679917195344">ОС Chrome стала можливою завдяки додатковому <ph name="BEGIN_LINK_CROS_OSS" />програмному забезпеченню з відкритим кодом<ph name="END_LINK_CROS_OSS" />.</translation> +<translation id="6468844726266617801">{0,plural, =1{Перезапустіть Chrome упродовж дня}one{Перезапустіть Chrome упродовж # дня}few{Перезапустіть Chrome упродовж # днів}many{Перезапустіть Chrome упродовж # днів}other{Перезапустіть Chrome упродовж # дня}}</translation> <translation id="6515495397637126556"><ph name="PAGE_TITLE" /> – Версія Google Chrome для розробників</translation> <translation id="6566149418543181476">Google Chrome оновлюється (<ph name="PROGRESS_PERCENT" />)</translation> <translation id="6598387184982954187">Ви синхронізуєте дані Chrome через обліковий запис <ph name="PROFILE_EMAIL" />. Щоб оновити параметри синхронізації або використовувати Chrome без облікового запису Google, перейдіть на сторінку <ph name="SETTINGS_LINK" />.</translation> @@ -194,10 +203,12 @@ <translation id="683440813066116847">Вхідне правило для Google Chrome Canary дозволяє трафік mDNS.</translation> <translation id="686561893457936865">Використовуйте Chrome на всіх пристроях</translation> <translation id="6885412569789873916">Бета-версія додатків Chrome</translation> +<translation id="6964107240822114422">{0,plural, =0{Доступне оновлення Chrome}=1{Доступне оновлення Chrome}one{Оновлення Chrome доступне вже # день}few{Оновлення Chrome доступне вже # дні}many{Оновлення Chrome доступне вже # днів}other{Оновлення Chrome доступне вже # дня}}</translation> <translation id="6967962315388095737">Вхідне правило для бета-версії Google Chrome дозволяє трафік mDNS.</translation> <translation id="6970811910055250180">Оновлення пристрою...</translation> <translation id="6982337800632491844">Перш ніж використовувати цей пристрій, потрібно прочитати й прийняти наведені нижче Умови використання сайту <ph name="DOMAIN" />. Ці умови не розширюють, не змінюють і не обмежують Умови використання ОС Google Chrome.</translation> <translation id="6989339256997917931">Google Chrome оновлено, проте ви не користувалися цим веб-переглядачем щонайменше 30 днів.</translation> +<translation id="7023651421574588884">Адміністратор вимагає перезапустити ОС Chrome, щоб застосувати оновлення</translation> <translation id="7098166902387133879">Google Chrome використовує ваш мікрофон.</translation> <translation id="7106741999175697885">Диспетчер завдань - Google Chrome</translation> <translation id="7164397146364144019">Ви можете допомогти зробити Chrome безпечнішим і простішим у користуванні, автоматично повідомляючи Google деталі щодо можливого порушення безпеки.</translation> @@ -210,8 +221,10 @@ <translation id="7419046106786626209">ОС Chrome не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation> <translation id="7459554271817304652">Налаштуйте синхронізацію, щоб зберегти свої персоналізовані функції веб-переглядача в Інтернеті й мати до них доступ із Google Chrome на будь-якому комп’ютері.</translation> <translation id="7473136999113284234">Chrome оновлюється автоматично, щоб у вас завжди була найновіша версія.</translation> +<translation id="7486227612705979895">Chrome матиме доступ до Диска, щоб робити пропозиції в адресному рядку</translation> <translation id="7535429826459677826">Версія Google Chrome для розробників</translation> <translation id="7552219221109926349">Вибрати цю мову для ОС Chrome</translation> +<translation id="7561940363513215021">{0,plural, =1{Chrome перезапуститься через 1 хвилину}one{Chrome перезапуститься через # хвилину}few{Chrome перезапуститься через # хвилини}many{Chrome перезапуститься через # хвилин}other{Chrome перезапуститься через # хвилини}}</translation> <translation id="7589360514048265910">На цей комп’ютер більше не надходитимуть оновлення Google Chrome, оскільки ОС Mac X 10.9 уже не підтримується.</translation> <translation id="7592736734348559088">Google Chrome не вдалося синхронізувати ваші дані, оскільки дані для входу в обліковий запис застаріли.</translation> <translation id="7626032353295482388">Вітаємо у Chrome!</translation> @@ -233,9 +246,11 @@ <translation id="8008534537613507642">Перевстановити Chrome</translation> <translation id="8030318113982266900">Оновлення пристрою до каналу <ph name="CHANNEL_NAME" />…</translation> <translation id="8032142183999901390">Якщо видалити обліковий запис із Chrome, можливо, потрібно оновити відкриті вкладки, щоб зміни почали діяти.</translation> +<translation id="8077352834923175128">Адміністратор просить перезапустити ОС Chrome, щоб застосувати це оновлення</translation> <translation id="8129812357326543296">Про &Google Chrome</translation> <translation id="8179874765710681175">Установіть Chrome на телефоні. Ми надішлемо SMS на ваш телефон.</translation> <translation id="8183957050892517584">Chrome надійно зберігатиме ваші особисті дані, тож вам не потрібно буде вводити їх знову.</translation> +<translation id="8226081633851087288">{0,plural, =0{ОС Chrome перезапуститься зараз}=1{ОС Chrome перезапуститься через 1 секунду}one{ОС Chrome перезапуститься через # секунду}few{ОС Chrome перезапуститься через # секунди}many{ОС Chrome перезапуститься через # секунд}other{ОС Chrome перезапуститься через # секунди}}</translation> <translation id="8255190535488645436">Google Chrome використовує вашу камеру та мікрофон.</translation> <translation id="8286862437124483331">Google Chrome намагається показати паролі. Щоб дозволити, введіть свій пароль Windows.</translation> <translation id="8290100596633877290">Відбулося аварійне завершення роботи Google Chrome. Перезапустити зараз?</translation> @@ -258,6 +273,7 @@ <translation id="870251953148363156">Оновити &Google Chrome</translation> <translation id="873133009373065397">Google Chrome не може визначити чи встановити веб-переглядач за умовчанням</translation> <translation id="8736674169840206667">Адміністратор вимагає перезапустити Chrome, щоб застосувати оновлення</translation> +<translation id="8791470158600044404">{0,plural, =1{ОС Chrome перезапуститься через 1 хвилину}one{ОС Chrome перезапуститься через # хвилину}few{ОС Chrome перезапуститься через # хвилини}many{ОС Chrome перезапуститься через # хвилин}other{ОС Chrome перезапуститься через # хвилини}}</translation> <translation id="8796108026289707191">Перезапустіть Google Chrome.</translation> <translation id="8823341990149967727">Версія Chrome застаріла</translation> <translation id="884296878221830158">Розширення також змінило сторінку, яка відкривається під час запуску Chrome або натискання кнопки "Домашня сторінка".</translation> @@ -266,6 +282,7 @@ <translation id="9026991721384951619">ОС Chrome не вдалося синхронізувати ваші дані, оскільки дані для входу в обліковий запис застаріли.</translation> <translation id="9067395829937117663">Для роботи Google Chrome потрібно мати ОС Windows 7 або новішої версії.</translation> <translation id="9084668267983921457">Не вдалось отримати сертифікат автентифікації. Щоб дізнатися більше, знову ввійдіть в обліковий запис Google Chrome або зв’яжіться з адміністратором. <ph name="ADDITIONAL_EXPLANATION" /></translation> +<translation id="909149346112452267">{0,plural, =1{ОС Chrome перезапуститься через годину}one{ОС Chrome перезапуститься через # годину}few{ОС Chrome перезапуститься через # години}many{ОС Chrome перезапуститься через # годин}other{ОС Chrome перезапуститься через # години}}</translation> <translation id="911206726377975832">Також видалити дані веб-перегляду?</translation> <translation id="919706545465235479">Щоб почати синхронізацію, оновіть Chrome</translation> <translation id="924447568950697217">Як зробити Chrome веб-переглядачем за умовчанням</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn index 390f830..c771dec 100644 --- a/chrome/browser/BUILD.gn +++ b/chrome/browser/BUILD.gn
@@ -2089,6 +2089,8 @@ "android/download/items/offline_content_aggregator_factory_android.cc", "android/download/local_media_data_source_factory.cc", "android/download/local_media_data_source_factory.h", + "android/download/new_net_error_page_feature.cc", + "android/download/new_net_error_page_feature.h", "android/download/service/download_background_task.cc", "android/download/service/download_task_scheduler.cc", "android/download/service/download_task_scheduler.h",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 14c9e81f..472aa4e 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -143,6 +143,7 @@ #if defined(OS_ANDROID) #include "chrome/browser/android/chrome_feature_list.h" +#include "chrome/browser/android/download/new_net_error_page_feature.h" #else // OS_ANDROID #include "chrome/browser/media/router/media_router_feature.h" #include "ui/message_center/public/cpp/features.h" @@ -1184,6 +1185,29 @@ nullptr}, }; +#if defined(OS_ANDROID) +const FeatureEntry::FeatureParam kNewNetErrorPageUIContentList = { + chrome::android::new_net_error_ui::kUIAlternateParameterName, + chrome::android::new_net_error_ui::kUIAlternateContentList}; +const FeatureEntry::FeatureParam kNewNetErrorPageUIContentListAutoDL = { + chrome::android::new_net_error_ui::kUIAlternateParameterName, + chrome::android::new_net_error_ui::kUIAlternateContentListAutoDownload}; +const FeatureEntry::FeatureParam kNewNetErrorPageUIContentPreview = { + chrome::android::new_net_error_ui::kUIAlternateParameterName, + chrome::android::new_net_error_ui::kUIAlternateContentPreview}; +const FeatureEntry::FeatureParam kNewNetErrorPageUIContentPreviewAutoDL = { + chrome::android::new_net_error_ui::kUIAlternateParameterName, + chrome::android::new_net_error_ui::kUIAlternateContentPreviewAutoDownload}; + +const FeatureEntry::FeatureVariation kNewNetErrorPageUIVariations[] = { + {"Content List", &kNewNetErrorPageUIContentList, 1, nullptr}, + {"Content List + Auto download", &kNewNetErrorPageUIContentListAutoDL, 1, + nullptr}, + {"Content Preview", &kNewNetErrorPageUIContentPreview, 1, nullptr}, + {"Content Preview + Auto download", &kNewNetErrorPageUIContentPreviewAutoDL, + 1, nullptr}}; +#endif // defined(OS_ANDROID) + // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. @@ -3513,11 +3537,6 @@ flag_descriptions::kHtmlBasedUsernameDetectorDescription, kOsAll, FEATURE_VALUE_TYPE( password_manager::features::kHtmlBasedUsernameDetector)}, -#if defined(OS_MACOSX) - {"mac-system-share-menu", flag_descriptions::kMacSystemShareMenuName, - flag_descriptions::kMacSystemShareMenuDescription, kOsMac, - FEATURE_VALUE_TYPE(features::kMacSystemShareMenu)}, -#endif // defined(OS_MACOSX) {"enable-new-preconnect", flag_descriptions::kSpeculativePreconnectName, flag_descriptions::kSpeculativePreconnectDescription, kOsAll, @@ -3568,6 +3587,15 @@ flag_descriptions::kDownloadHomeV2Description, kOsAndroid, FEATURE_VALUE_TYPE(chrome::android::kDownloadHomeV2)}, #endif + +#if defined(OS_ANDROID) + {"new-net-error-page-ui", flag_descriptions::kNewNetErrorPageUIName, + flag_descriptions::kNewNetErrorPageUIDescription, kOsAndroid, + FEATURE_WITH_PARAMS_VALUE_TYPE(chrome::android::kNewNetErrorPageUI, + kNewNetErrorPageUIVariations, + "NewNetErrorPageUI")}, +#endif // defined(OS_ANDROID) + {"enable-block-tab-unders", flag_descriptions::kBlockTabUndersName, flag_descriptions::kBlockTabUndersDescription, kOsAll, FEATURE_VALUE_TYPE(TabUnderNavigationThrottle::kBlockTabUnders)},
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index 0153d3b..15fd287 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -114,6 +114,7 @@ &kLongPressBackForHistory, &kModalPermissionDialogView, &kNewContactsPicker, + &kNewNetErrorPageUI, &kNewPhotoPicker, &kNoCreditCardAbort, &kNTPButton, @@ -333,6 +334,9 @@ const base::Feature kNewContactsPicker{"NewContactsPicker", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kNewNetErrorPageUI{"NewNetErrorPageUI", + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kNewPhotoPicker{"NewPhotoPicker", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h index 8fe05b0..80546b3 100644 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h
@@ -61,6 +61,7 @@ extern const base::Feature kModalPermissionDialogView; extern const base::Feature kSearchEnginePromoExistingDevice; extern const base::Feature kSearchEnginePromoNewDevice; +extern const base::Feature kNewNetErrorPageUI; extern const base::Feature kNewContactsPicker; extern const base::Feature kNewPhotoPicker; extern const base::Feature kNoCreditCardAbort;
diff --git a/chrome/browser/android/download/new_net_error_page_feature.cc b/chrome/browser/android/download/new_net_error_page_feature.cc new file mode 100644 index 0000000..fd261425 --- /dev/null +++ b/chrome/browser/android/download/new_net_error_page_feature.cc
@@ -0,0 +1,21 @@ +// Copyright (c) 2018 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 "chrome/browser/android/download/new_net_error_page_feature.h" + +namespace chrome { +namespace android { +namespace new_net_error_ui { + +const char kUIAlternateParameterName[] = "ui-alternate"; + +const char kUIAlternateContentList[] = "content_list"; +const char kUIAlternateContentListAutoDownload[] = "content_list_auto_download"; +const char kUIAlternateContentPreview[] = "content_preview"; +const char kUIAlternateContentPreviewAutoDownload[] = + "content_preview_auto_download"; + +} // namespace new_net_error_ui +} // namespace android +} // namespace chrome
diff --git a/chrome/browser/android/download/new_net_error_page_feature.h b/chrome/browser/android/download/new_net_error_page_feature.h new file mode 100644 index 0000000..23c518b --- /dev/null +++ b/chrome/browser/android/download/new_net_error_page_feature.h
@@ -0,0 +1,22 @@ +// Copyright (c) 2018 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. + +#ifndef CHROME_BROWSER_ANDROID_DOWNLOAD_NEW_NET_ERROR_PAGE_FEATURE_H_ +#define CHROME_BROWSER_ANDROID_DOWNLOAD_NEW_NET_ERROR_PAGE_FEATURE_H_ + +namespace chrome { +namespace android { +namespace new_net_error_ui { + +extern const char kUIAlternateParameterName[]; + +extern const char kUIAlternateContentList[]; +extern const char kUIAlternateContentListAutoDownload[]; +extern const char kUIAlternateContentPreview[]; +extern const char kUIAlternateContentPreviewAutoDownload[]; +} // namespace new_net_error_ui +} // namespace android +} // namespace chrome + +#endif // CHROME_BROWSER_ANDROID_DOWNLOAD_NEW_NET_ERROR_PAGE_FEATURE_H_
diff --git a/chrome/browser/android/feed/feed_scheduler_bridge.cc b/chrome/browser/android/feed/feed_scheduler_bridge.cc index 69cfecd..723fda3 100644 --- a/chrome/browser/android/feed/feed_scheduler_bridge.cc +++ b/chrome/browser/android/feed/feed_scheduler_bridge.cc
@@ -98,6 +98,12 @@ scheduler_host_->OnTaskReschedule(); } +void FeedSchedulerBridge::OnSuggestionConsumed( + JNIEnv* env, + const base::android::JavaRef<jobject>& j_this) { + scheduler_host_->OnSuggestionConsumed(); +} + void FeedSchedulerBridge::TriggerRefresh() { JNIEnv* env = base::android::AttachCurrentThread(); Java_FeedSchedulerBridge_triggerRefresh(env, j_this_);
diff --git a/chrome/browser/android/feed/feed_scheduler_bridge.h b/chrome/browser/android/feed/feed_scheduler_bridge.h index 29382c61..bbcdf51 100644 --- a/chrome/browser/android/feed/feed_scheduler_bridge.h +++ b/chrome/browser/android/feed/feed_scheduler_bridge.h
@@ -56,6 +56,9 @@ void OnTaskReschedule(JNIEnv* env, const base::android::JavaRef<jobject>& j_this); + void OnSuggestionConsumed(JNIEnv* env, + const base::android::JavaRef<jobject>& j_this); + private: // Callable by native code to invoke Java code. Sends a request to the Feed // library to make the refresh call.
diff --git a/chrome/browser/android/vr/vr_gl_thread.cc b/chrome/browser/android/vr/vr_gl_thread.cc index f5654a5..83e45081 100644 --- a/chrome/browser/android/vr/vr_gl_thread.cc +++ b/chrome/browser/android/vr/vr_gl_thread.cc
@@ -17,7 +17,7 @@ #include "chrome/browser/vr/model/omnibox_suggestions.h" #include "chrome/browser/vr/model/toolbar_state.h" #include "chrome/browser/vr/sounds_manager_audio_delegate.h" -#include "chrome/browser/vr/ui.h" +#include "chrome/browser/vr/ui_factory.h" #include "chrome/browser/vr/ui_test_input.h" #include "chrome/common/chrome_features.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -68,9 +68,9 @@ audio_delegate_ = std::make_unique<SoundsManagerAudioDelegate>(); - auto ui = std::make_unique<Ui>(this, this, keyboard_delegate_.get(), - text_input_delegate_.get(), - audio_delegate_.get(), ui_initial_state_); + auto ui = UiFactory::Create(this, this, keyboard_delegate_.get(), + text_input_delegate_.get(), audio_delegate_.get(), + ui_initial_state_); text_input_delegate_->SetRequestFocusCallback(base::BindRepeating( &UiInterface::RequestFocus, base::Unretained(ui.get()))); text_input_delegate_->SetRequestUnfocusCallback(base::BindRepeating(
diff --git a/chrome/browser/android/vr/vr_shell.cc b/chrome/browser/android/vr/vr_shell.cc index a995fc8..39a893b1 100644 --- a/chrome/browser/android/vr/vr_shell.cc +++ b/chrome/browser/android/vr/vr_shell.cc
@@ -34,6 +34,7 @@ #include "chrome/browser/media/webrtc/media_stream_capture_indicator.h" #include "chrome/browser/permissions/permission_manager.h" #include "chrome/browser/permissions/permission_result.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/ssl/security_state_tab_helper.h" #include "chrome/browser/vr/assets_loader.h" @@ -46,7 +47,9 @@ #include "chrome/browser/vr/ui_test_input.h" #include "chrome/browser/vr/vr_tab_helper.h" #include "chrome/common/chrome_features.h" +#include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" +#include "components/prefs/pref_service.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_controller.h" @@ -973,7 +976,8 @@ this, ui_, content::BrowserContext::GetDefaultStoragePartition(profile) ->GetURLLoaderFactoryForBrowserProcessIOThread(), - profile->GetRequestContext(), profile_locale)); + profile->GetPrefs()->GetString(prefs::kAcceptLanguages), + profile_locale)); } if (active) { speech_recognizer_->Start();
diff --git a/chrome/browser/app_controller_mac.mm b/chrome/browser/app_controller_mac.mm index 1d4134ee..3a7c862 100644 --- a/chrome/browser/app_controller_mac.mm +++ b/chrome/browser/app_controller_mac.mm
@@ -417,12 +417,7 @@ [viewMenu removeItem:customizeItem]; } - // In |applicationWillFinishLaunching| because FeatureList isn't - // available at init time. - if (base::FeatureList::IsEnabled(features::kMacSystemShareMenu)) { - // Initialize the share menu. - [self initShareMenu]; - } + [self initShareMenu]; // Remove "Enable Javascript in Apple Events" if the feature is disabled. if (!base::FeatureList::IsEnabled( @@ -1298,21 +1293,11 @@ NSMenu* mainMenu = [NSApp mainMenu]; NSMenu* fileMenu = [[mainMenu itemWithTag:IDC_FILE_MENU] submenu]; NSString* shareMenuTitle = l10n_util::GetNSString(IDS_SHARE_MAC); - base::scoped_nsobject<NSMenuItem> shareMenuItem([[NSMenuItem alloc] - initWithTitle:shareMenuTitle - action:NULL - keyEquivalent:@""]); + NSMenuItem* shareMenuItem = [fileMenu itemWithTitle:shareMenuTitle]; base::scoped_nsobject<NSMenu> shareSubmenu( [[NSMenu alloc] initWithTitle:shareMenuTitle]); [shareSubmenu setDelegate:shareMenuController_]; [shareMenuItem setSubmenu:shareSubmenu]; - // Replace "Email Page Location" with Share. - // TODO(crbug.com/770804): Remove this code and update the XIB when - // the share menu launches. - NSInteger index = [fileMenu indexOfItemWithTag:IDC_EMAIL_PAGE_LOCATION]; - DCHECK(index != -1); - [fileMenu removeItemAtIndex:index]; - [fileMenu insertItem:shareMenuItem atIndex:index]; } // The Confirm to Quit preference is atypical in that the preference lives in
diff --git a/chrome/browser/autocomplete/search_provider_unittest.cc b/chrome/browser/autocomplete/search_provider_unittest.cc index 2f45c984..1f15a55 100644 --- a/chrome/browser/autocomplete/search_provider_unittest.cc +++ b/chrome/browser/autocomplete/search_provider_unittest.cc
@@ -3672,11 +3672,12 @@ base::RunLoop().RunUntilIdle(); EXPECT_FALSE(provider_->done()); EXPECT_TRUE(provider_->matches().empty()); - // Make sure the default provider's suggest service was queried. - EXPECT_TRUE(test_url_loader_factory_.IsPending("http://defaultturl2/f")); + // Make sure the default provider's suggest service was queried with an + // empty query. + EXPECT_TRUE(test_url_loader_factory_.IsPending("http://defaultturl2/")); // Even if the fetcher returns results, we should still have no suggestions // (though the provider should now be done). - test_url_loader_factory_.AddResponse("http://defaultturl2/f", + test_url_loader_factory_.AddResponse("http://defaultturl2/", R"(["",["a", "b"],[],[],{}])"); RunTillProviderDone(); EXPECT_TRUE(provider_->done());
diff --git a/chrome/browser/bookmarks/bookmark_html_writer.cc b/chrome/browser/bookmarks/bookmark_html_writer.cc index d1ed1e3c..a1e02fe 100644 --- a/chrome/browser/bookmarks/bookmark_html_writer.cc +++ b/chrome/browser/bookmarks/bookmark_html_writer.cc
@@ -453,7 +453,7 @@ FROM_HERE, base::BindOnce( &Writer::DoWrite, - new Writer( + base::MakeRefCounted<Writer>( codec.Encode(BookmarkModelFactory::GetForBrowserContext(profile_), /*sync_metadata_str=*/std::string()), path_, favicons_map_.release(), observer_)));
diff --git a/chrome/browser/chrome_network_service_browsertest.cc b/chrome/browser/chrome_network_service_browsertest.cc index 3451c76..75493262 100644 --- a/chrome/browser/chrome_network_service_browsertest.cc +++ b/chrome/browser/chrome_network_service_browsertest.cc
@@ -96,7 +96,16 @@ EXPECT_EQ(kCookieValue, cookies[0].Value()); } -IN_PROC_BROWSER_TEST_F(ChromeNetworkServiceBrowserTest, EncryptedCookies) { +#if defined(OS_WIN) +// The cookies.size() ASSERT is failing flakily on the Win7 bots. +// See https://crbug.com/868667 +#define MAYBE_EncryptedCookies DISABLED_EncryptedCookies +#else +#define MAYBE_EncryptedCookies EncryptedCookies +#endif + +IN_PROC_BROWSER_TEST_F(ChromeNetworkServiceBrowserTest, + MAYBE_EncryptedCookies) { #if defined(OS_MACOSX) // |NetworkServiceTestHelper| doesn't work on browser_tests on macOS: // crbug.com/843324.
diff --git a/chrome/browser/chromeos/accessibility/dictation_chromeos.cc b/chrome/browser/chromeos/accessibility/dictation_chromeos.cc index 3f1f5267..811d21c 100644 --- a/chrome/browser/chromeos/accessibility/dictation_chromeos.cc +++ b/chrome/browser/chromeos/accessibility/dictation_chromeos.cc
@@ -51,7 +51,8 @@ weak_ptr_factory_.GetWeakPtr(), content::BrowserContext::GetDefaultStoragePartition(profile_) ->GetURLLoaderFactoryForBrowserProcessIOThread(), - profile_->GetRequestContext(), GetUserLocale(profile_)); + profile_->GetPrefs()->GetString(prefs::kAcceptLanguages), + GetUserLocale(profile_)); speech_recognizer_->Start(nullptr /* preamble */); return true; }
diff --git a/chrome/browser/chromeos/arc/arc_service_launcher.cc b/chrome/browser/chromeos/arc/arc_service_launcher.cc index 69ae214..0b76831 100644 --- a/chrome/browser/chromeos/arc/arc_service_launcher.cc +++ b/chrome/browser/chromeos/arc/arc_service_launcher.cc
@@ -161,7 +161,8 @@ ArcLockScreenBridge::GetForBrowserContext(profile); ArcMetricsService::GetForBrowserContext(profile); ArcMidisBridge::GetForBrowserContext(profile); - ArcNetHostImpl::GetForBrowserContext(profile); + ArcNetHostImpl::GetForBrowserContext(profile)->SetPrefService( + profile->GetPrefs()); ArcObbMounterBridge::GetForBrowserContext(profile); ArcOemCryptoBridge::GetForBrowserContext(profile); ArcPipBridge::GetForBrowserContext(profile);
diff --git a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc index 47e9a1e..38fcd9a 100644 --- a/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc +++ b/chrome/browser/extensions/api/web_navigation/web_navigation_apitest.cc
@@ -314,7 +314,13 @@ ASSERT_TRUE(RunExtensionTest("webnavigation/filtered")) << message_; } -IN_PROC_BROWSER_TEST_F(WebNavigationApiTest, UserAction) { +// Flaky on Windows. See http://crbug.com/662160. +#if defined(OS_WIN) +#define MAYBE_UserAction DISABLED_UserAction +#else +#define MAYBE_UserAction UserAction +#endif +IN_PROC_BROWSER_TEST_F(WebNavigationApiTest, MAYBE_UserAction) { content::IsolateAllSitesForTesting(base::CommandLine::ForCurrentProcess()); ASSERT_TRUE(StartEmbeddedTestServer());
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index 20495f42..f0ffd01 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2457,6 +2457,10 @@ const char kNewContactsPickerDescription[] = "Activates the new picker for selecting contacts."; +const char kNewNetErrorPageUIName[] = "Enable new UI for net-error page"; +const char kNewNetErrorPageUIDescription[] = + "Selects which new UI experience to show on the net-error (Dino) page"; + const char kNewPhotoPickerName[] = "Enable new Photopicker"; const char kNewPhotoPickerDescription[] = "Activates the new picker for selecting photos."; @@ -2892,10 +2896,6 @@ const char kMacRTLName[] = "Enable RTL"; const char kMacRTLDescription[] = "Mirrors the UI for RTL language users"; -const char kMacSystemShareMenuName[] = "Enable System Share Menu"; -const char kMacSystemShareMenuDescription[] = - "Enables sharing via macOS share extensions."; - const char kMacTouchBarName[] = "Hardware Touch Bar"; const char kMacTouchBarDescription[] = "Control the use of the Touch Bar.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index a7c1e67..e58a3f5 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1487,6 +1487,9 @@ extern const char kNewContactsPickerName[]; extern const char kNewContactsPickerDescription[]; +extern const char kNewNetErrorPageUIName[]; +extern const char kNewNetErrorPageUIDescription[]; + extern const char kNewPhotoPickerName[]; extern const char kNewPhotoPickerDescription[]; @@ -1750,9 +1753,6 @@ extern const char kMacRTLName[]; extern const char kMacRTLDescription[]; -extern const char kMacSystemShareMenuName[]; -extern const char kMacSystemShareMenuDescription[]; - extern const char kMacTouchBarName[]; extern const char kMacTouchBarDescription[];
diff --git a/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc b/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc index 8ea3b51..023e42b 100644 --- a/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc +++ b/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc
@@ -48,6 +48,8 @@ WebFeature::kCSSEnvironmentVariable_SafeAreaInsetBottom, WebFeature::kMediaControlsDisplayCutoutGesture, WebFeature::kPolymerV1Detected, WebFeature::kPolymerV2Detected, + WebFeature::kFullscreenSecureOrigin, + WebFeature::kFullscreenInsecureOrigin, })); return opt_in_features.count(feature); }
diff --git a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc index 4106204..39e19f51 100644 --- a/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc +++ b/chrome/browser/page_load_metrics/page_load_metrics_browsertest.cc
@@ -383,6 +383,12 @@ ui_test_utils::NavigateToURL(browser(), GURL(url::kAboutBlankURL)); } + void MakeComponentFullscreen(const std::string& id) { + EXPECT_TRUE(content::ExecuteScript( + browser()->tab_strip_model()->GetActiveWebContents(), + "document.getElementById(\"" + id + "\").webkitRequestFullscreen();")); + } + std::string GetRecordedPageLoadMetricNames() { auto entries = histogram_tester_.GetTotalCountsForPrefix("PageLoad."); std::vector<std::string> names; @@ -1358,6 +1364,7 @@ browser(), embedded_test_server()->GetURL( "non-secure.test", "/page_load_metrics/use_counter_features.html")); + MakeComponentFullscreen("testvideo"); waiter->Wait(); NavigateToUntrackedUrl(); @@ -1381,6 +1388,9 @@ histogram_tester_.ExpectBucketCount( internal::kFeaturesHistogramName, static_cast<int32_t>(WebFeature::kPageVisits), 1); + histogram_tester_.ExpectBucketCount( + internal::kFeaturesHistogramName, + static_cast<int32_t>(WebFeature::kFullscreenInsecureOrigin), 1); } // Test UseCounter UKM features observed. @@ -1393,12 +1403,13 @@ GURL url = embedded_test_server()->GetURL( "/page_load_metrics/use_counter_features.html"); ui_test_utils::NavigateToURL(browser(), url); + MakeComponentFullscreen("testvideo"); waiter->Wait(); NavigateToUntrackedUrl(); const auto& entries = test_ukm_recorder_->GetEntriesByName( ukm::builders::Blink_UseCounter::kEntryName); - EXPECT_EQ(3u, entries.size()); + EXPECT_EQ(4u, entries.size()); std::vector<int64_t> ukm_features; for (const auto* entry : entries) { test_ukm_recorder_->ExpectEntrySourceHasUrl(entry, url); @@ -1410,6 +1421,7 @@ EXPECT_THAT( ukm_features, UnorderedElementsAre( + static_cast<int64_t>(WebFeature::kFullscreenSecureOrigin), static_cast<int64_t>(WebFeature::kNavigatorVibrate), static_cast<int64_t>(WebFeature::kDataUriHasOctothorpe), static_cast<int64_t>( @@ -1431,12 +1443,13 @@ GURL url = https_server.GetURL("/page_load_metrics/use_counter_features.html"); ui_test_utils::NavigateToURL(browser(), url); + MakeComponentFullscreen("testvideo"); waiter->Wait(); NavigateToUntrackedUrl(); const auto& entries = test_ukm_recorder_->GetEntriesByName( ukm::builders::Blink_UseCounter::kEntryName); - EXPECT_EQ(6u, entries.size()); + EXPECT_EQ(7u, entries.size()); std::vector<int64_t> ukm_features; for (const auto* entry : entries) { test_ukm_recorder_->ExpectEntrySourceHasUrl(entry, url); @@ -1447,6 +1460,7 @@ } EXPECT_THAT(ukm_features, UnorderedElementsAre( + static_cast<int64_t>(WebFeature::kFullscreenSecureOrigin), static_cast<int64_t>(WebFeature::kNavigatorVibrate), static_cast<int64_t>(WebFeature::kDataUriHasOctothorpe), static_cast<int64_t>(
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.cc b/chrome/browser/password_manager/chrome_password_manager_client.cc index a1e03d0..2f54310 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.cc +++ b/chrome/browser/password_manager/chrome_password_manager_client.cc
@@ -896,7 +896,6 @@ driver_factory_->GetDriverForFrame( password_manager_driver_bindings_.GetCurrentTargetFrame()); GetPasswordManager()->OnPasswordFormsParsed(driver, forms); - driver->GetPasswordGenerationManager()->CheckIfFormClassifierShouldRun(); } void ChromePasswordManagerClient::PasswordFormsRendered( @@ -974,19 +973,6 @@ GetMetricsRecorder().RecordUserModifiedPasswordField(); } -void ChromePasswordManagerClient::SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& password_form, - const base::string16& generation_field) { - if (!password_manager::bad_message::CheckChildProcessSecurityPolicy( - password_manager_driver_bindings_.GetCurrentTargetFrame(), - password_form, - BadMessageReason:: - CPMD_BAD_ORIGIN_SAVE_GENERATION_FIELD_DETECTED_BY_CLASSIFIER)) - return; - GetPasswordManager()->SaveGenerationFieldDetectedByClassifier( - password_form, generation_field); -} - // static void ChromePasswordManagerClient::BindCredentialManager( blink::mojom::CredentialManagerRequest request,
diff --git a/chrome/browser/password_manager/chrome_password_manager_client.h b/chrome/browser/password_manager/chrome_password_manager_client.h index 9f50aeca..81552f9 100644 --- a/chrome/browser/password_manager/chrome_password_manager_client.h +++ b/chrome/browser/password_manager/chrome_password_manager_client.h
@@ -203,9 +203,6 @@ const gfx::RectF& bounds) override; void RecordSavePasswordProgress(const std::string& log) override; void UserModifiedPasswordField() override; - void SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& password_form, - const base::string16& generation_field) override; void CheckSafeBrowsingReputation(const GURL& form_action, const GURL& frame_url) override; void FocusedInputChanged(bool is_fillable, bool is_password_field) override;
diff --git a/chrome/browser/password_manager/password_generation_interactive_uitest.cc b/chrome/browser/password_manager/password_generation_interactive_uitest.cc index 9aeb31b..c79365b 100644 --- a/chrome/browser/password_manager/password_generation_interactive_uitest.cc +++ b/chrome/browser/password_manager/password_generation_interactive_uitest.cc
@@ -52,6 +52,12 @@ PasswordGenerationPopupController::kOfferGeneration; }; +enum ReturnCodes { // Possible results of the JavaScript code. + RETURN_CODE_OK, + RETURN_CODE_NO_ELEMENT, + RETURN_CODE_INVALID, +}; + } // namespace class PasswordGenerationInteractiveTest : @@ -94,15 +100,28 @@ autofill::test::ReenableSystemServices(); } - std::string GetFieldValue(const std::string& field_id) { - std::string value; - EXPECT_TRUE(content::ExecuteScriptAndExtractString( - WebContents(), - "window.domAutomationController.send(" - " document.getElementById('" + - field_id + "').value);", - &value)); - return value; + // Waits until the value of the field with id |field_id| becomes non-empty. + void WaitForNonEmptyFieldValue(const std::string& field_id) { + const std::string script = base::StringPrintf( + "element = document.getElementById('%s');" + "if (!element) {" + " setTimeout(window.domAutomationController.send(%d), 0);" + "}" + "if (element.value) {" + " setTimeout(window.domAutomationController.send(%d), 0); " + "} else {" + " element.onchange = function() {" + " if (element.value) {" + " window.domAutomationController.send(%d);" + " }" + " }" + "}", + field_id.c_str(), RETURN_CODE_NO_ELEMENT, RETURN_CODE_OK, + RETURN_CODE_OK); + int return_value = RETURN_CODE_INVALID; + ASSERT_TRUE(content::ExecuteScriptWithoutUserGestureAndExtractInt( + RenderFrameHost(), script, &return_value)); + EXPECT_EQ(RETURN_CODE_OK, return_value); } std::string GetFocusedElement() { @@ -156,7 +175,7 @@ // Selecting the password should fill the field and move focus to the // submit button. - EXPECT_FALSE(GetFieldValue("password_field").empty()); + WaitForNonEmptyFieldValue("password_field"); EXPECT_FALSE(GenerationPopupShowing()); EXPECT_FALSE(EditingPopupShowing()); EXPECT_EQ("input_submit_button", GetFocusedElement());
diff --git a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc index 1959e72..feb24748 100644 --- a/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc +++ b/chrome/browser/picture_in_picture/picture_in_picture_window_controller_browsertest.cc
@@ -8,6 +8,7 @@ #include "base/test/scoped_feature_list.h" #include "build/build_config.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_commands.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" @@ -17,11 +18,13 @@ #include "content/public/browser/web_contents.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test_utils.h" +#include "content/public/test/test_navigation_observer.h" #include "media/base/media_switches.h" #include "net/dns/mock_host_resolver.h" #if !defined(OS_ANDROID) #include "chrome/browser/ui/views/overlay/overlay_window_views.h" +#include "ui/views/controls/button/image_button.h" #include "ui/views/widget/widget_observer.h" #endif @@ -948,4 +951,58 @@ EXPECT_FALSE(in_picture_in_picture); } +// Tests that the play/pause icon state is properly updated when a +// Picture-in-Picture is created after a reload. +IN_PROC_BROWSER_TEST_F(PictureInPictureWindowControllerBrowserTest, + PlayPauseStateAtCreation) { + LoadTabAndEnterPictureInPicture(browser()); + + content::WebContents* active_web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + ASSERT_TRUE(content::ExecuteScript(active_web_contents, "video.play();")); + + bool is_paused = true; + EXPECT_TRUE(ExecuteScriptAndExtractBool(active_web_contents, "isPaused();", + &is_paused)); + EXPECT_FALSE(is_paused); + + EXPECT_TRUE(window_controller()->GetWindowForTesting()->IsVisible()); + EXPECT_TRUE( + window_controller()->GetWindowForTesting()->GetVideoLayer()->visible()); + + OverlayWindowViews* overlay_window = static_cast<OverlayWindowViews*>( + window_controller()->GetWindowForTesting()); + + EXPECT_TRUE(overlay_window->play_pause_controls_view_for_testing() + ->toggled_for_testing()); + + ASSERT_TRUE( + content::ExecuteScript(active_web_contents, "exitPictureInPicture();")); + + content::TestNavigationObserver observer(active_web_contents, 1); + chrome::Reload(browser(), WindowOpenDisposition::CURRENT_TAB); + observer.Wait(); + + { + content::WebContents* active_web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + + bool result = false; + ASSERT_TRUE(content::ExecuteScriptAndExtractBool( + active_web_contents, "enterPictureInPicture();", &result)); + EXPECT_TRUE(result); + + bool is_paused = false; + EXPECT_TRUE(ExecuteScriptAndExtractBool(active_web_contents, "isPaused();", + &is_paused)); + EXPECT_TRUE(is_paused); + + OverlayWindowViews* overlay_window = static_cast<OverlayWindowViews*>( + window_controller()->GetWindowForTesting()); + + EXPECT_FALSE(overlay_window->play_pause_controls_view_for_testing() + ->toggled_for_testing()); + } +} + #endif // !defined(OS_ANDROID)
diff --git a/chrome/browser/profiles/incognito_helpers.cc b/chrome/browser/profiles/incognito_helpers.cc index ce4f72b..a319237 100644 --- a/chrome/browser/profiles/incognito_helpers.cc +++ b/chrome/browser/profiles/incognito_helpers.cc
@@ -10,12 +10,14 @@ content::BrowserContext* GetBrowserContextRedirectedInIncognito( content::BrowserContext* context) { - return static_cast<Profile*>(context)->GetOriginalProfile(); + return Profile::FromBrowserContext(context)->GetOriginalProfile(); } const content::BrowserContext* GetBrowserContextRedirectedInIncognito( const content::BrowserContext* context) { - return static_cast<const Profile*>(context)->GetOriginalProfile(); + const Profile* profile = Profile::FromBrowserContext( + const_cast<content::BrowserContext*>(context)); + return profile->GetOriginalProfile(); } content::BrowserContext* GetBrowserContextOwnInstanceInIncognito(
diff --git a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc index 7b6a8c0..080745b 100644 --- a/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc +++ b/chrome/browser/resource_coordinator/tab_manager_delegate_chromeos.cc
@@ -18,7 +18,6 @@ #include "base/files/file_util.h" #include "base/memory/memory_pressure_monitor_chromeos.h" #include "base/metrics/histogram_macros.h" -#include "base/process/memory.h" #include "base/process/process_handle.h" // kNullProcessHandle. #include "base/process/process_metrics.h" #include "base/strings/string16.h" @@ -381,10 +380,10 @@ // Sets OOM score. VLOG(3) << "Set OOM score " << chrome::kLowestRendererOomScore << " for focused tab " << pid; - if (!base::AdjustOOMScore(pid, chrome::kLowestRendererOomScore)) - LOG(ERROR) << "Failed to set oom_score_adj to " - << chrome::kLowestRendererOomScore - << " for focused tab, pid: " << pid; + std::map<int, int> dict; + dict[pid] = chrome::kLowestRendererOomScore; + DCHECK(GetDebugDaemonClient()); + GetDebugDaemonClient()->SetOomScoreAdj(dict, base::Bind(&OnSetOomScoreAdj)); } void TabManagerDelegate::AdjustFocusedTabScore(base::ProcessHandle pid) { @@ -767,12 +766,7 @@ // current cached score. if (oom_score_map_[pid] != score) { VLOG(3) << "Update OOM score " << score << " for " << *cur; - if (cur->app()) - oom_scores_to_change[pid] = static_cast<int32_t>(score); - else - if (!base::AdjustOOMScore(pid, score)) - LOG(ERROR) << "Failed to set oom_score_adj to " << score - << " for process " << pid; + oom_scores_to_change[pid] = static_cast<int32_t>(score); } priority += priority_increment; }
diff --git a/chrome/browser/resources/local_ntp/OWNERS b/chrome/browser/resources/local_ntp/OWNERS index 9c2e2d6a..d03792dd 100644 --- a/chrome/browser/resources/local_ntp/OWNERS +++ b/chrome/browser/resources/local_ntp/OWNERS
@@ -1,7 +1,6 @@ -jeremycho@chromium.org mathp@chromium.org fserb@chromium.org -huangs@chromium.org +kristipark@chromium.org treib@chromium.org # TEAM: ntp-dev@chromium.org
diff --git a/chrome/browser/resources/local_ntp/custom_links_edit.html b/chrome/browser/resources/local_ntp/custom_links_edit.html index b665e9db..56df26a 100644 --- a/chrome/browser/resources/local_ntp/custom_links_edit.html +++ b/chrome/browser/resources/local_ntp/custom_links_edit.html
@@ -34,8 +34,7 @@ <button id="delete" class="secondary" tabindex="0"></button> <span class="right"> <button id="cancel" class="secondary" tabindex="0"></button> - <button type="submit" id="done" class="primary" disabled="true" - tabindex="0"></button> + <button type="submit" id="done" class="primary" tabindex="0"></button> </span> </div> </form>
diff --git a/chrome/browser/resources/local_ntp/custom_links_edit.js b/chrome/browser/resources/local_ntp/custom_links_edit.js index 83d4fc7..10cf1db 100644 --- a/chrome/browser/resources/local_ntp/custom_links_edit.js +++ b/chrome/browser/resources/local_ntp/custom_links_edit.js
@@ -133,12 +133,19 @@ return; } + let newUrl = ''; + let newTitle = ''; + if ($(IDS.URL_FIELD).value != prepopulatedLink.url) + newUrl = $(IDS.URL_FIELD).value; + if ($(IDS.TITLE_FIELD).value != prepopulatedLink.title) + newTitle = $(IDS.TITLE_FIELD).value; + // Do not update link if fields were unchanged. - if ($(IDS.TITLE_FIELD).value != prepopulatedLink.title || - $(IDS.URL_FIELD).value != prepopulatedLink.url) { - chrome.embeddedSearch.newTabPage.updateCustomLink( - prepopulatedLink.rid, $(IDS.URL_FIELD).value, $(IDS.TITLE_FIELD).value); - } + if (!newUrl && !newTitle) + return; + + chrome.embeddedSearch.newTabPage.updateCustomLink( + prepopulatedLink.rid, newUrl, newTitle); closeDialog(); }
diff --git a/chrome/browser/resources/local_ntp/icons/add_link.svg b/chrome/browser/resources/local_ntp/icons/add_link.svg index a7e84a5..05b83a5 100644 --- a/chrome/browser/resources/local_ntp/icons/add_link.svg +++ b/chrome/browser/resources/local_ntp/icons/add_link.svg
@@ -1,6 +1,6 @@ <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"> <g fill="none" fill-rule="evenodd"> - <rect width="2" height="12" x="7" y="2" fill="#000"/> - <rect width="2" height="12" x="7" y="2" fill="#000" transform="rotate(-90 8 8)"/> + <rect width="2" height="12" x="7" y="2" fill="#202124"/> + <rect width="2" height="12" x="7" y="2" fill="#202124" transform="rotate(-90 8 8)"/> </g> </svg>
diff --git a/chrome/browser/resources/local_ntp/most_visited_single.css b/chrome/browser/resources/local_ntp/most_visited_single.css index a0f0c25f..2645078 100644 --- a/chrome/browser/resources/local_ntp/most_visited_single.css +++ b/chrome/browser/resources/local_ntp/most_visited_single.css
@@ -406,29 +406,11 @@ transition-delay: 500ms; } -.md-tile:active, -body.dark-theme .md-tile:active { - background-color: white; - box-shadow: 0 1px 3px 0 rgba(60, 64, 67, 0.3), - 0 4px 8px 3px rgba(60, 64, 67, 0.15); - transition-delay: 500ms; - transition-duration: 200ms; - z-index: 10; -} - -body.dark-theme .md-tile:active .md-title { - color: rgba(33, 32, 36, 0.86); -} - body.dark-theme .md-tile:active .md-menu::after { background-color: rgba(33, 32, 36, 0.71); transition-delay: 500ms; } -body.background-image .md-tile:active .md-title { - text-shadow: none; -} - .md-tile.blacklisted { margin: 0; padding: 0;
diff --git a/chrome/browser/resources/local_ntp/most_visited_single.js b/chrome/browser/resources/local_ntp/most_visited_single.js index 08fa6f0..de79a61 100644 --- a/chrome/browser/resources/local_ntp/most_visited_single.js +++ b/chrome/browser/resources/local_ntp/most_visited_single.js
@@ -374,15 +374,6 @@ /** - * Starts add custom link flow. Tells host page to show the edit custom link - * dialog. - */ -function addCustomLink() { - window.parent.postMessage({cmd: 'startEditLink'}, DOMAIN_ORIGIN); -} - - -/** * Starts edit custom link flow. Tells host page to show the edit custom link * dialog and pre-populate it with data obtained using the link's id. * @param {?number} tid Restricted id of the tile we want to edit. @@ -600,7 +591,7 @@ mdTile.addEventListener('click', function(ev) { if (data.isAddButton) { - addCustomLink(); + editCustomLink(); } else { logMostVisitedNavigation( position, data.tileTitleSource, data.tileSource, tileType,
diff --git a/chrome/browser/resources/settings/site_settings_page/BUILD.gn b/chrome/browser/resources/settings/site_settings_page/BUILD.gn index ea35eff..7467e9e0 100644 --- a/chrome/browser/resources/settings/site_settings_page/BUILD.gn +++ b/chrome/browser/resources/settings/site_settings_page/BUILD.gn
@@ -20,5 +20,6 @@ "//ui/webui/resources/js:cr", "//ui/webui/resources/js:load_time_data", "//ui/webui/resources/js:web_ui_listener_behavior", + "//ui/webui/resources/js/cr/ui:focus_without_ink", ] }
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html index 2f035f9..b2894017 100644 --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.html +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.html
@@ -1,6 +1,7 @@ <link rel="import" href="chrome://resources/html/polymer.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> +<link rel="import" href="chrome://resources/html/cr/ui/focus_without_ink.html"> <link rel="import" href="chrome://resources/html/web_ui_listener_behavior.html"> <link rel="import" href="chrome://resources/polymer/v1_0/paper-icon-button/paper-icon-button-light.html"> <link rel="import" href="../icons.html">
diff --git a/chrome/browser/resources/settings/site_settings_page/site_settings_page.js b/chrome/browser/resources/settings/site_settings_page/site_settings_page.js index 72f0f5db3..c6213ed 100644 --- a/chrome/browser/resources/settings/site_settings_page/site_settings_page.js +++ b/chrome/browser/resources/settings/site_settings_page/site_settings_page.js
@@ -84,7 +84,7 @@ } }, - /** @type {!Map<string, string>} */ + /** @type {!Map<string, (string|Function)>} */ focusConfig: { type: Object, observer: 'focusConfigChanged_', @@ -136,8 +136,9 @@ pairs.forEach(pair => { const route = pair[0]; const id = pair[1]; - this.focusConfig.set( - route.path, '* /deep/ #' + id + ' .subpage-arrow button'); + this.focusConfig.set(route.path, () => this.async(() => { + cr.ui.focusWithoutInk(assert(this.$$(`#${id} .subpage-arrow button`))); + })); }); },
diff --git a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html index 8e4c13d6..f9df850 100644 --- a/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html +++ b/chrome/browser/resources/signin/dice_sync_confirmation/sync_confirmation_app.html
@@ -77,6 +77,7 @@ color: var(--paper-grey-800); font-weight: normal; margin-bottom: 32px; + padding: 0 24px; text-align: center; }
diff --git a/chrome/browser/search/instant_service.cc b/chrome/browser/search/instant_service.cc index f56d6dd3..52f82e2 100644 --- a/chrome/browser/search/instant_service.cc +++ b/chrome/browser/search/instant_service.cc
@@ -198,6 +198,17 @@ } } +void InstantService::UpdateCustomLink(const GURL& url, + const GURL& new_url, + const std::string& new_title) { + if (most_visited_sites_) { + // Initializes custom links if they have not been initialized yet. + most_visited_sites_->InitializeCustomLinks(); + most_visited_sites_->UpdateCustomLink(url, new_url, + base::UTF8ToUTF16(new_title)); + } +} + void InstantService::DeleteCustomLink(const GURL& url) { if (most_visited_sites_) { // Initializes custom links if they have not been initialized yet.
diff --git a/chrome/browser/search/instant_service.h b/chrome/browser/search/instant_service.h index 24a6f3f..3bdb9c1 100644 --- a/chrome/browser/search/instant_service.h +++ b/chrome/browser/search/instant_service.h
@@ -82,6 +82,10 @@ void UndoAllMostVisitedDeletions(); // Invoked when the Instant page wants to add a custom link. void AddCustomLink(const GURL& url, const std::string& title); + // Invoked when the Instant page wants to update a custom link. + void UpdateCustomLink(const GURL& url, + const GURL& new_url, + const std::string& new_title); // Invoked when the Instant page wants to delete a custom link. void DeleteCustomLink(const GURL& url); // Invoked when the Instant page wants to restore the previously deleted
diff --git a/chrome/browser/search/ntp_icon_source.cc b/chrome/browser/search/ntp_icon_source.cc index 120e66e5..4d14447 100644 --- a/chrome/browser/search/ntp_icon_source.cc +++ b/chrome/browser/search/ntp_icon_source.cc
@@ -299,10 +299,6 @@ return "image/png"; } -bool NtpIconSource::AllowCaching() const { - return false; -} - bool NtpIconSource::ShouldServiceRequest( const GURL& url, content::ResourceContext* resource_context,
diff --git a/chrome/browser/search/ntp_icon_source.h b/chrome/browser/search/ntp_icon_source.h index 33bb89e..fce0016 100644 --- a/chrome/browser/search/ntp_icon_source.h +++ b/chrome/browser/search/ntp_icon_source.h
@@ -41,7 +41,6 @@ const content::ResourceRequestInfo::WebContentsGetter& wc_getter, const content::URLDataSource::GotDataCallback& callback) override; std::string GetMimeType(const std::string& path) const override; - bool AllowCaching() const override; bool ShouldServiceRequest(const GURL& url, content::ResourceContext* resource_context, int render_process_id) const override;
diff --git a/chrome/browser/speech/speech_recognizer.cc b/chrome/browser/speech/speech_recognizer.cc index 96c8000d..e4f5511f 100644 --- a/chrome/browser/speech/speech_recognizer.cc +++ b/chrome/browser/speech/speech_recognizer.cc
@@ -21,7 +21,6 @@ #include "content/public/browser/speech_recognition_session_config.h" #include "content/public/browser/speech_recognition_session_preamble.h" #include "content/public/common/child_process_host.h" -#include "net/url_request/url_request_context_getter.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "third_party/blink/public/mojom/speech/speech_recognition_error.mojom.h" @@ -45,12 +44,11 @@ : public base::RefCountedThreadSafe<SpeechRecognizer::EventListener>, public content::SpeechRecognitionEventListener { public: - EventListener( - const base::WeakPtr<SpeechRecognizerDelegate>& delegate, - std::unique_ptr<network::SharedURLLoaderFactoryInfo> - shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, - const std::string& locale); + EventListener(const base::WeakPtr<SpeechRecognizerDelegate>& delegate, + std::unique_ptr<network::SharedURLLoaderFactoryInfo> + shared_url_loader_factory_info, + const std::string& accept_language, + const std::string& locale); void StartOnIOThread( const std::string& auth_scope, @@ -98,8 +96,7 @@ shared_url_loader_factory_info_; // Initialized from |shared_url_loader_factory_info_| on first use. scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory_; - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter_; + const std::string accept_language_; std::string locale_; base::OneShotTimer speech_timeout_; int session_; @@ -114,13 +111,12 @@ const base::WeakPtr<SpeechRecognizerDelegate>& delegate, std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, + const std::string& accept_language, const std::string& locale) : delegate_(delegate), shared_url_loader_factory_info_( std::move(shared_url_loader_factory_info)), - deprecated_url_request_context_getter_( - deprecated_url_request_context_getter), + accept_language_(accept_language), locale_(locale), session_(kInvalidSessionId), weak_factory_(this) { @@ -145,8 +141,7 @@ config.interim_results = true; config.max_hypotheses = 1; config.filter_profanities = true; - config.deprecated_url_request_context_getter = - deprecated_url_request_context_getter_; + config.accept_language = accept_language_; if (!shared_url_loader_factory_) { DCHECK(shared_url_loader_factory_info_); shared_url_loader_factory_ = network::SharedURLLoaderFactory::Create( @@ -292,13 +287,13 @@ const base::WeakPtr<SpeechRecognizerDelegate>& delegate, std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, + const std::string& accept_language, const std::string& locale) : delegate_(delegate), speech_event_listener_( new EventListener(delegate, std::move(shared_url_loader_factory_info), - deprecated_url_request_context_getter, + accept_language, locale)) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); }
diff --git a/chrome/browser/speech/speech_recognizer.h b/chrome/browser/speech/speech_recognizer.h index 8f9e6ca0..fb6650c 100644 --- a/chrome/browser/speech/speech_recognizer.h +++ b/chrome/browser/speech/speech_recognizer.h
@@ -16,10 +16,6 @@ struct SpeechRecognitionSessionPreamble; } -namespace net { -class URLRequestContextGetter; -} - namespace network { class SharedURLLoaderFactoryInfo; } @@ -31,12 +27,11 @@ // collection of results, error cases, and threading. class SpeechRecognizer { public: - SpeechRecognizer( - const base::WeakPtr<SpeechRecognizerDelegate>& delegate, - std::unique_ptr<network::SharedURLLoaderFactoryInfo> - shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, - const std::string& locale); + SpeechRecognizer(const base::WeakPtr<SpeechRecognizerDelegate>& delegate, + std::unique_ptr<network::SharedURLLoaderFactoryInfo> + shared_url_loader_factory_info, + const std::string& accept_language, + const std::string& locale); ~SpeechRecognizer(); // Start/stop the speech recognizer. |preamble| contains the preamble audio to
diff --git a/chrome/browser/speech/speech_recognizer_browsertest.cc b/chrome/browser/speech/speech_recognizer_browsertest.cc index 97e4b39..4fd8839d 100644 --- a/chrome/browser/speech/speech_recognizer_browsertest.cc +++ b/chrome/browser/speech/speech_recognizer_browsertest.cc
@@ -74,7 +74,7 @@ mock_speech_delegate_->GetWeakPtr(), content::BrowserContext::GetDefaultStoragePartition(browser()->profile()) ->GetURLLoaderFactoryForBrowserProcessIOThread(), - browser()->profile()->GetRequestContext(), "en"); + "en" /* accept_language */, "en" /* locale */); base::RunLoop run_loop; EXPECT_CALL(*mock_speech_delegate_,
diff --git a/chrome/browser/ui/cocoa/main_menu_builder.mm b/chrome/browser/ui/cocoa/main_menu_builder.mm index 8499ced..5e5167e 100644 --- a/chrome/browser/ui/cocoa/main_menu_builder.mm +++ b/chrome/browser/ui/cocoa/main_menu_builder.mm
@@ -96,8 +96,7 @@ Item(IDS_CLOSE_TAB_MAC).command_id(IDC_CLOSE_TAB), Item(IDS_SAVE_PAGE_MAC).command_id(IDC_SAVE_PAGE), Item().is_separator(), - Item(IDS_EMAIL_PAGE_LOCATION_MAC) - .command_id(IDC_EMAIL_PAGE_LOCATION), + Item(IDS_SHARE_MAC), Item().is_separator(), Item(IDS_PRINT).command_id(IDC_PRINT), Item(IDS_PRINT_USING_SYSTEM_DIALOG_MAC) .command_id(IDC_BASIC_PRINT)
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.cc b/chrome/browser/ui/media_router/media_router_ui_base.cc index e0dd51e..5df11fa 100644 --- a/chrome/browser/ui/media_router/media_router_ui_base.cc +++ b/chrome/browser/ui/media_router/media_router_ui_base.cc
@@ -407,7 +407,9 @@ } void MediaRouterUIBase::HandleCreateSessionRequestRouteResponse( - const RouteRequestResult&) {} + const RouteRequestResult&) { + Close(); +} void MediaRouterUIBase::InitCommon(content::WebContents* initiator) { DCHECK(initiator); @@ -528,16 +530,15 @@ DVLOG(1) << "DoCreateRoute: origin: " << params.origin; // There are 3 cases. In cases (1) and (3) the MediaRouterUIBase will need to - // be notified. In case (2) the dialog will be closed. + // be notified via OnRouteResponseReceived(). In case (2) the dialog will be + // closed via HandleCreateSessionRequestRouteResponse(). // (1) Non-presentation route request (e.g., mirroring). No additional // notification necessary. // (2) Presentation route request for a PresentationRequest.start() call. // The StartPresentationContext will need to be answered with the route // response. // (3) Browser-initiated presentation route request. If successful, - // PresentationServiceDelegateImpl will have to be notified. Note that we - // treat subsequent route requests from a Presentation API-initiated - // dialogs as browser-initiated. + // PresentationServiceDelegateImpl will have to be notified. if (!for_presentation_source || !start_presentation_context_) { params.route_response_callbacks.push_back(base::BindOnce( &MediaRouterUIBase::OnRouteResponseReceived, weak_factory_.GetWeakPtr(),
diff --git a/chrome/browser/ui/media_router/media_router_ui_base.h b/chrome/browser/ui/media_router/media_router_ui_base.h index 137579d..d5b1884 100644 --- a/chrome/browser/ui/media_router/media_router_ui_base.h +++ b/chrome/browser/ui/media_router/media_router_ui_base.h
@@ -126,6 +126,9 @@ // Opens a file picker for when the user selected local file casting. void OpenFileDialog(); + // Closes the Media Router dialog. + virtual void Close() = 0; + const std::vector<MediaRoute>& routes() const { return routes_; } content::WebContents* initiator() const { return initiator_; }
diff --git a/chrome/browser/ui/search/search_ipc_router.cc b/chrome/browser/ui/search/search_ipc_router.cc index f593956..12da237 100644 --- a/chrome/browser/ui/search/search_ipc_router.cc +++ b/chrome/browser/ui/search/search_ipc_router.cc
@@ -200,6 +200,19 @@ delegate_->OnAddCustomLink(url, title); } +void SearchIPCRouter::UpdateCustomLink(int page_seq_no, + const GURL& url, + const GURL& new_url, + const std::string& new_title) { + if (page_seq_no != commit_counter_) + return; + + if (!policy_->ShouldProcessUpdateCustomLink()) + return; + + delegate_->OnUpdateCustomLink(url, new_url, new_title); +} + void SearchIPCRouter::DeleteCustomLink(int page_seq_no, const GURL& url) { if (page_seq_no != commit_counter_) return;
diff --git a/chrome/browser/ui/search/search_ipc_router.h b/chrome/browser/ui/search/search_ipc_router.h index 831935c..572d2a1 100644 --- a/chrome/browser/ui/search/search_ipc_router.h +++ b/chrome/browser/ui/search/search_ipc_router.h
@@ -58,6 +58,11 @@ // Called when the EmbeddedSearch wants to add a custom link. virtual void OnAddCustomLink(const GURL& url, const std::string& title) = 0; + // Called when the EmbeddedSearch wants to update a custom link. + virtual void OnUpdateCustomLink(const GURL& url, + const GURL& new_url, + const std::string& new_title) = 0; + // Called when the EmbeddedSearch wants to delete a custom link. virtual void OnDeleteCustomLink(const GURL& url) = 0; @@ -127,6 +132,7 @@ virtual bool ShouldProcessUndoMostVisitedDeletion() = 0; virtual bool ShouldProcessUndoAllMostVisitedDeletions() = 0; virtual bool ShouldProcessAddCustomLink() = 0; + virtual bool ShouldProcessUpdateCustomLink() = 0; virtual bool ShouldProcessDeleteCustomLink() = 0; virtual bool ShouldProcessUndoDeleteCustomLink() = 0; virtual bool ShouldProcessResetCustomLinks() = 0; @@ -191,6 +197,10 @@ void AddCustomLink(int page_seq_no, const GURL& url, const std::string& title) override; + void UpdateCustomLink(int page_seq_no, + const GURL& url, + const GURL& new_url, + const std::string& new_title) override; void DeleteCustomLink(int page_seq_no, const GURL& url) override; void UndoDeleteCustomLink(int page_seq_no) override; void ResetCustomLinks(int page_seq_no) override;
diff --git a/chrome/browser/ui/search/search_ipc_router_policy_impl.cc b/chrome/browser/ui/search/search_ipc_router_policy_impl.cc index 3588206..1bfcaa75 100644 --- a/chrome/browser/ui/search/search_ipc_router_policy_impl.cc +++ b/chrome/browser/ui/search/search_ipc_router_policy_impl.cc
@@ -42,6 +42,10 @@ return !is_incognito_ && search::IsInstantNTP(web_contents_); } +bool SearchIPCRouterPolicyImpl::ShouldProcessUpdateCustomLink() { + return !is_incognito_ && search::IsInstantNTP(web_contents_); +} + bool SearchIPCRouterPolicyImpl::ShouldProcessDeleteCustomLink() { return !is_incognito_ && search::IsInstantNTP(web_contents_); }
diff --git a/chrome/browser/ui/search/search_ipc_router_policy_impl.h b/chrome/browser/ui/search/search_ipc_router_policy_impl.h index 2e751fe..a90b79c 100644 --- a/chrome/browser/ui/search/search_ipc_router_policy_impl.h +++ b/chrome/browser/ui/search/search_ipc_router_policy_impl.h
@@ -32,6 +32,7 @@ bool ShouldProcessUndoMostVisitedDeletion() override; bool ShouldProcessUndoAllMostVisitedDeletions() override; bool ShouldProcessAddCustomLink() override; + bool ShouldProcessUpdateCustomLink() override; bool ShouldProcessDeleteCustomLink() override; bool ShouldProcessUndoDeleteCustomLink() override; bool ShouldProcessResetCustomLinks() override;
diff --git a/chrome/browser/ui/search/search_ipc_router_unittest.cc b/chrome/browser/ui/search/search_ipc_router_unittest.cc index 60e81c4..e6b496d 100644 --- a/chrome/browser/ui/search/search_ipc_router_unittest.cc +++ b/chrome/browser/ui/search/search_ipc_router_unittest.cc
@@ -62,6 +62,10 @@ MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void()); MOCK_METHOD2(OnAddCustomLink, void(const GURL& url, const std::string& title)); + MOCK_METHOD3(OnUpdateCustomLink, + void(const GURL& url, + const GURL& new_url, + const std::string& new_title)); MOCK_METHOD1(OnDeleteCustomLink, void(const GURL& url)); MOCK_METHOD0(OnUndoDeleteCustomLink, void()); MOCK_METHOD0(OnResetCustomLinks, void()); @@ -92,6 +96,7 @@ MOCK_METHOD0(ShouldProcessUndoMostVisitedDeletion, bool()); MOCK_METHOD0(ShouldProcessUndoAllMostVisitedDeletions, bool()); MOCK_METHOD0(ShouldProcessAddCustomLink, bool()); + MOCK_METHOD0(ShouldProcessUpdateCustomLink, bool()); MOCK_METHOD0(ShouldProcessDeleteCustomLink, bool()); MOCK_METHOD0(ShouldProcessUndoDeleteCustomLink, bool()); MOCK_METHOD0(ShouldProcessResetCustomLinks, bool()); @@ -499,6 +504,42 @@ item_title); } +TEST_F(SearchIPCRouterTest, ProcessUpdateCustomLinkMsg) { + NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); + SetupMockDelegateAndPolicy(); + MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); + GURL item_url("www.foo.com"); + GURL new_url("www.foo1.com"); + std::string new_title("foo"); + EXPECT_CALL(*mock_delegate(), + OnUpdateCustomLink(item_url, new_url, new_title)) + .Times(1); + EXPECT_CALL(*policy, ShouldProcessUpdateCustomLink()) + .Times(1) + .WillOnce(Return(true)); + + GetSearchIPCRouter().UpdateCustomLink(GetSearchIPCRouterSeqNo(), item_url, + new_url, new_title); +} + +TEST_F(SearchIPCRouterTest, IgnoreUpdateCustomLinkMsg) { + NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); + SetupMockDelegateAndPolicy(); + MockSearchIPCRouterPolicy* policy = GetSearchIPCRouterPolicy(); + GURL item_url("www.foo.com"); + GURL new_url("www.foo1.com"); + std::string new_title("foo"); + EXPECT_CALL(*mock_delegate(), + OnUpdateCustomLink(item_url, new_url, new_title)) + .Times(0); + EXPECT_CALL(*policy, ShouldProcessUpdateCustomLink()) + .Times(1) + .WillOnce(Return(false)); + + GetSearchIPCRouter().UpdateCustomLink(GetSearchIPCRouterSeqNo(), item_url, + new_url, new_title); +} + TEST_F(SearchIPCRouterTest, ProcessDeleteCustomLinkMsg) { NavigateAndCommitActiveTab(GURL("chrome-search://foo/bar")); SetupMockDelegateAndPolicy();
diff --git a/chrome/browser/ui/search/search_tab_helper.cc b/chrome/browser/ui/search/search_tab_helper.cc index 7361336..97b5bea0 100644 --- a/chrome/browser/ui/search/search_tab_helper.cc +++ b/chrome/browser/ui/search/search_tab_helper.cc
@@ -305,6 +305,14 @@ instant_service_->AddCustomLink(url, title); } +void SearchTabHelper::OnUpdateCustomLink(const GURL& url, + const GURL& new_url, + const std::string& new_title) { + DCHECK(!url.is_empty()); + if (instant_service_) + instant_service_->UpdateCustomLink(url, new_url, new_title); +} + void SearchTabHelper::OnDeleteCustomLink(const GURL& url) { DCHECK(!url.is_empty()); if (instant_service_)
diff --git a/chrome/browser/ui/search/search_tab_helper.h b/chrome/browser/ui/search/search_tab_helper.h index a9f8d70d..a7371ea 100644 --- a/chrome/browser/ui/search/search_tab_helper.h +++ b/chrome/browser/ui/search/search_tab_helper.h
@@ -99,6 +99,9 @@ void OnUndoMostVisitedDeletion(const GURL& url) override; void OnUndoAllMostVisitedDeletions() override; void OnAddCustomLink(const GURL& url, const std::string& title) override; + void OnUpdateCustomLink(const GURL& url, + const GURL& new_url, + const std::string& new_title) override; void OnDeleteCustomLink(const GURL& url) override; void OnUndoDeleteCustomLink() override; void OnResetCustomLinks() override;
diff --git a/chrome/browser/ui/search/search_tab_helper_unittest.cc b/chrome/browser/ui/search/search_tab_helper_unittest.cc index 52ae1c6..2197c72 100644 --- a/chrome/browser/ui/search/search_tab_helper_unittest.cc +++ b/chrome/browser/ui/search/search_tab_helper_unittest.cc
@@ -61,6 +61,10 @@ MOCK_METHOD0(OnUndoAllMostVisitedDeletions, void()); MOCK_METHOD2(OnAddCustomLink, void(const GURL& url, const std::string& title)); + MOCK_METHOD3(OnUpdateCustomLink, + void(const GURL& url, + const GURL& new_url, + const std::string& new_title)); MOCK_METHOD1(OnDeleteCustomLink, void(const GURL& url)); MOCK_METHOD0(OnUndoDeleteCustomLink, void()); MOCK_METHOD0(OnResetCustomLinks, void());
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui.cc b/chrome/browser/ui/views/media_router/media_router_views_ui.cc index 87defc2..1b32d227 100644 --- a/chrome/browser/ui/views/media_router/media_router_views_ui.cc +++ b/chrome/browser/ui/views/media_router/media_router_views_ui.cc
@@ -10,6 +10,7 @@ #include "chrome/browser/media/router/media_router_metrics.h" #include "chrome/browser/ui/media_router/media_sink_with_cast_modes.h" #include "chrome/browser/ui/media_router/ui_media_sink.h" +#include "chrome/browser/ui/views/media_router/cast_dialog_view.h" #include "chrome/common/media_router/route_request_result.h" #include "chrome/grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -76,6 +77,10 @@ return sinks; } +void MediaRouterViewsUI::Close() { + CastDialogView::HideDialog(); +} + void MediaRouterViewsUI::InitCommon(content::WebContents* initiator) { MediaRouterUIBase::InitCommon(initiator); // We don't start observing issues in MediaRouterUIBase::InitCommon() because
diff --git a/chrome/browser/ui/views/media_router/media_router_views_ui.h b/chrome/browser/ui/views/media_router/media_router_views_ui.h index 2927926..0d0098e2 100644 --- a/chrome/browser/ui/views/media_router/media_router_views_ui.h +++ b/chrome/browser/ui/views/media_router/media_router_views_ui.h
@@ -29,6 +29,7 @@ // MediaRouterUIBase: std::vector<MediaSinkWithCastModes> GetEnabledSinks() const override; + void Close() override; private: FRIEND_TEST_ALL_PREFIXES(MediaRouterViewsUITest, NotifyObserver);
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.cc b/chrome/browser/ui/views/overlay/overlay_window_views.cc index 5c6df80a..080b08e0 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.cc +++ b/chrome/browser/ui/views/overlay/overlay_window_views.cc
@@ -310,8 +310,18 @@ void OverlayWindowViews::UpdateControlsBounds() { controls_background_view_->SetBoundsRect( gfx::Rect(gfx::Point(0, 0), GetBounds().size())); - close_controls_view_->SetBoundsRect(GetCloseControlsBounds()); - play_pause_controls_view_->SetBoundsRect(GetPlayPauseControlsBounds()); + + close_controls_view_->SetBoundsRect( + gfx::Rect(gfx::Point(GetBounds().size().width() - + close_button_size_.width() - kCloseButtonMargin, + kCloseButtonMargin), + close_button_size_)); + + play_pause_controls_view_->SetBoundsRect(gfx::Rect( + gfx::Point( + (GetBounds().size().width() - play_pause_button_size_.width()) / 2, + (GetBounds().size().height() - play_pause_button_size_.height()) / 2), + play_pause_button_size_)); } void OverlayWindowViews::UpdateCloseControlsSize() { @@ -469,19 +479,11 @@ } gfx::Rect OverlayWindowViews::GetCloseControlsBounds() { - return gfx::Rect( - gfx::Point(GetBounds().size().width() - close_button_size_.width() - - kCloseButtonMargin, - kCloseButtonMargin), - close_button_size_); + return close_controls_view_->GetMirroredBounds(); } gfx::Rect OverlayWindowViews::GetPlayPauseControlsBounds() { - return gfx::Rect( - gfx::Point( - (GetBounds().size().width() - play_pause_button_size_.width()) / 2, - (GetBounds().size().height() - play_pause_button_size_.height()) / 2), - play_pause_button_size_); + return play_pause_controls_view_->GetMirroredBounds(); } gfx::Size OverlayWindowViews::GetMinimumSize() const { @@ -516,24 +518,11 @@ UpdateControlsVisibility(false); break; - case ui::ET_MOUSE_RELEASED: - if (!event->IsOnlyLeftMouseButton()) - return; - - // TODO(apacible): Clip the clickable areas to where the button icons are - // drawn. http://crbug.com/836389 - if (GetCloseControlsBounds().Contains(event->location())) { - controller_->Close(true /* should_pause_video */); - event->SetHandled(); - } else if (GetPlayPauseControlsBounds().Contains(event->location())) { - TogglePlayPause(); - event->SetHandled(); - } - break; - default: break; } + + views::Widget::OnMouseEvent(event); } void OverlayWindowViews::OnGestureEvent(ui::GestureEvent* event) { @@ -621,6 +610,7 @@ controller_->ClickCustomControl(control_id); } -views::View* OverlayWindowViews::play_pause_controls_view_for_testing() const { +views::ToggleImageButton* +OverlayWindowViews::play_pause_controls_view_for_testing() const { return play_pause_controls_view_.get(); }
diff --git a/chrome/browser/ui/views/overlay/overlay_window_views.h b/chrome/browser/ui/views/overlay/overlay_window_views.h index c43dce5..4a7918f 100644 --- a/chrome/browser/ui/views/overlay/overlay_window_views.h +++ b/chrome/browser/ui/views/overlay/overlay_window_views.h
@@ -65,7 +65,7 @@ // Send the message that a custom control on |this| has been clicked. void ClickCustomControl(const std::string& control_id); - views::View* play_pause_controls_view_for_testing() const; + views::ToggleImageButton* play_pause_controls_view_for_testing() const; private: // Gets the internal |ui::Layer| of the controls.
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.cc b/chrome/browser/ui/webui/media_router/media_router_ui.cc index d49923de..bd36c90 100644 --- a/chrome/browser/ui/webui/media_router/media_router_ui.cc +++ b/chrome/browser/ui/webui/media_router/media_router_ui.cc
@@ -324,11 +324,6 @@ SendIssueForRouteTimeout(cast_mode, presentation_request_source_name); } -void MediaRouterUI::HandleCreateSessionRequestRouteResponse( - const RouteRequestResult&) { - Close(); -} - void MediaRouterUI::OnSearchSinkResponseReceived( MediaCastMode cast_mode, const MediaSink::Id& found_sink_id) {
diff --git a/chrome/browser/ui/webui/media_router/media_router_ui.h b/chrome/browser/ui/webui/media_router/media_router_ui.h index acf5fe7..bc1b0bb 100644 --- a/chrome/browser/ui/webui/media_router/media_router_ui.h +++ b/chrome/browser/ui/webui/media_router/media_router_ui.h
@@ -27,8 +27,8 @@ explicit MediaRouterUI(content::WebUI* web_ui); ~MediaRouterUI() override; - // Closes the media router UI. - void Close(); + // MediaRouterUIBase: + void Close() override; // Notifies this instance that the UI has been initialized. virtual void OnUIInitialized(); @@ -160,9 +160,6 @@ const base::string16& presentation_request_source_name, const RouteRequestResult& result) override; - void HandleCreateSessionRequestRouteResponse( - const RouteRequestResult&) override; - // Callback passed to MediaRouter to receive the sink ID of the sink found by // SearchSinksAndCreateRoute(). void OnSearchSinkResponseReceived(MediaCastMode cast_mode,
diff --git a/chrome/browser/ui/webui/welcome_win10_handler.cc b/chrome/browser/ui/webui/welcome_win10_handler.cc index eb83e527..da5eeb1 100644 --- a/chrome/browser/ui/webui/welcome_win10_handler.cc +++ b/chrome/browser/ui/webui/welcome_win10_handler.cc
@@ -70,8 +70,8 @@ histogram_suffix += pin_instructions_shown ? "Combined" : "Default"; // Closing the page. Record whether the instructions were useful. - (new shell_integration::DefaultBrowserWorker( - base::Bind(&RecordDefaultBrowserResult, histogram_suffix))) + base::MakeRefCounted<shell_integration::DefaultBrowserWorker>( + base::Bind(&RecordDefaultBrowserResult, histogram_suffix)) ->StartCheckIsDefault(); if (pin_instructions_shown) { @@ -134,8 +134,8 @@ base::RecordAction( base::UserMetricsAction("Win10WelcomePage_SetAsDefaultBrowser")); // The worker owns itself. - (new shell_integration::DefaultBrowserWorker( - shell_integration::DefaultWebClientWorkerCallback())) + base::MakeRefCounted<shell_integration::DefaultBrowserWorker>( + shell_integration::DefaultWebClientWorkerCallback()) ->StartSetAsDefault(); }
diff --git a/chrome/browser/vr/BUILD.gn b/chrome/browser/vr/BUILD.gn index 7952206..0528656 100644 --- a/chrome/browser/vr/BUILD.gn +++ b/chrome/browser/vr/BUILD.gn
@@ -32,16 +32,11 @@ ] } -component("vr_common") { +source_set("vr_ui") { sources = [ "animation.cc", "animation.h", - "assets_component_update_status.h", - "assets_load_status.h", - "assets_loader.cc", - "assets_loader.h", "audio_delegate.h", - "browser_ui_interface.h", "content_input_delegate.cc", "content_input_delegate.h", "databinding/binding.h", @@ -138,58 +133,24 @@ "exit_vr_prompt_choice.h", "font_fallback.cc", "font_fallback.h", - "fps_meter.cc", - "fps_meter.h", "frame_lifecycle.cc", "frame_lifecycle.h", "ganesh_surface_provider.cc", "ganesh_surface_provider.h", - "gesture_detector.cc", - "gesture_detector.h", - "graphics_delegate.cc", - "graphics_delegate.h", - "input_event.cc", - "input_event.h", "keyboard_delegate.h", "keyboard_ui_interface.h", "macros.h", - "metrics/metrics_helper.cc", - "metrics/metrics_helper.h", - "metrics/session_metrics_helper.cc", - "metrics/session_metrics_helper.h", "mode.h", - "model/assets.cc", - "model/assets.h", - "model/camera_model.h", - "model/capturing_state_model.h", "model/color_scheme.cc", "model/color_scheme.h", - "model/controller_model.cc", - "model/controller_model.h", - "model/hosted_platform_ui.h", "model/modal_prompt_type.cc", "model/modal_prompt_type.h", "model/model.cc", "model/model.h", - "model/omnibox_suggestions.cc", - "model/omnibox_suggestions.h", "model/platform_toast.cc", "model/platform_toast.h", - "model/reticle_model.h", - "model/speech_recognition_model.h", "model/tab_model.cc", "model/tab_model.h", - "model/text_input_info.cc", - "model/text_input_info.h", - "model/toolbar_state.cc", - "model/toolbar_state.h", - "model/ui_mode.h", - "model/web_vr_model.h", - "platform_input_handler.h", - "platform_ui_input_delegate.cc", - "platform_ui_input_delegate.h", - "pose_util.cc", - "pose_util.h", "renderers/base_quad_renderer.cc", "renderers/base_quad_renderer.h", "renderers/base_renderer.cc", @@ -204,32 +165,10 @@ "renderers/transparent_quad_renderer.h", "renderers/web_vr_renderer.cc", "renderers/web_vr_renderer.h", - "sample_queue.cc", - "sample_queue.h", "sequence.cc", "sequence.h", - "service/browser_xr_device.cc", - "service/browser_xr_device.h", - "service/vr_device_manager.cc", - "service/vr_device_manager.h", - "service/vr_display_host.cc", - "service/vr_display_host.h", - "service/vr_service_impl.cc", - "service/vr_service_impl.h", - "sliding_average.cc", - "sliding_average.h", - "sounds_manager_audio_delegate.cc", - "sounds_manager_audio_delegate.h", - "speech_recognizer.cc", - "speech_recognizer.h", "target_property.cc", "target_property.h", - "text_edit_action.cc", - "text_edit_action.h", - "text_input_delegate.cc", - "text_input_delegate.h", - "toolbar_helper.cc", - "toolbar_helper.h", "transition.cc", "transition.h", "ui.cc", @@ -237,8 +176,6 @@ "ui_browser_interface.h", "ui_element_renderer.cc", "ui_element_renderer.h", - "ui_initial_state.cc", - "ui_initial_state.h", "ui_input_manager.cc", "ui_input_manager.h", "ui_interface.h", @@ -253,9 +190,7 @@ "ui_test_input.cc", "ui_test_input.h", "ui_unsupported_mode.h", - "vr_export.h", - "vr_geometry_util.cc", - "vr_geometry_util.h", + "vr_ui_export.h", ] public_deps = [ @@ -263,8 +198,80 @@ ] deps = [ + ":vr_base", + ":vr_gl_utils", + "//base", + "//cc/animation", + "//chrome/app:generated_resources", + "//chrome/browser/vr/vector_icons", + "//components/omnibox/browser", + "//components/toolbar:vector_icons", + "//components/url_formatter", + "//components/vector_icons", + "//media", + "//net", + "//skia", + "//ui/base", + ] + + defines = [ + "VR_IMPLEMENTATION", + "VR_BASE_IMPLEMENTATION", + "VR_UI_IMPLEMENTATION", + ] +} + +component("vr_common") { + sources = [ + "browser_ui_interface.h", + "fps_meter.cc", + "fps_meter.h", + "gesture_detector.cc", + "gesture_detector.h", + "graphics_delegate.cc", + "graphics_delegate.h", + "model/camera_model.h", + "model/capturing_state_model.h", + "model/hosted_platform_ui.h", + "model/reticle_model.h", + "model/speech_recognition_model.h", + "model/ui_mode.h", + "model/web_vr_model.h", + "sample_queue.cc", + "sample_queue.h", + "service/browser_xr_device.cc", + "service/browser_xr_device.h", + "service/vr_device_manager.cc", + "service/vr_device_manager.h", + "service/vr_display_host.cc", + "service/vr_display_host.h", + "service/vr_service_impl.cc", + "service/vr_service_impl.h", + "sliding_average.cc", + "sliding_average.h", + "sounds_manager_audio_delegate.cc", + "sounds_manager_audio_delegate.h", + "speech_recognizer.cc", + "speech_recognizer.h", + "text_input_delegate.cc", + "text_input_delegate.h", + "toolbar_helper.cc", + "toolbar_helper.h", + "ui_factory.cc", + "ui_factory.h", + "ui_interface.h", + "vr_export.h", + ] + + public_deps = [ + ":vr_base", + "//ui/gl", + ] + + deps = [ ":vr_build_features", ":vr_gl_utils", + ":vr_ui", "//base", "//cc/animation", "//cc/paint", @@ -278,7 +285,6 @@ "//components/toolbar", "//components/toolbar:vector_icons", "//components/ukm/content", - "//components/url_formatter", "//components/vector_icons", "//content/public/browser", "//content/public/common", @@ -296,10 +302,67 @@ defines = [ "VR_IMPLEMENTATION", + "VR_BASE_IMPLEMENTATION", "VR_UI_IMPLEMENTATION", ] } +# vr_base contains common dependencies of vr_common and vr_ui. It exists because +# vr_ui must not depend on vr_common. +source_set("vr_base") { + sources = [ + "assets_component_update_status.h", + "assets_load_status.h", + "assets_loader.cc", + "assets_loader.h", + "input_event.cc", + "input_event.h", + "metrics/metrics_helper.cc", + "metrics/metrics_helper.h", + "metrics/session_metrics_helper.cc", + "metrics/session_metrics_helper.h", + "model/assets.cc", + "model/assets.h", + "model/controller_model.cc", + "model/controller_model.h", + "model/omnibox_suggestions.cc", + "model/omnibox_suggestions.h", + "model/text_input_info.cc", + "model/text_input_info.h", + "model/toolbar_state.cc", + "model/toolbar_state.h", + "platform_input_handler.h", + "platform_ui_input_delegate.cc", + "platform_ui_input_delegate.h", + "pose_util.cc", + "pose_util.h", + "text_edit_action.cc", + "text_edit_action.h", + "ui_initial_state.cc", + "ui_initial_state.h", + "vr_base_export.h", + "vr_geometry_util.cc", + "vr_geometry_util.h", + ] + + defines = [ + "VR_IMPLEMENTATION", + "VR_BASE_IMPLEMENTATION", + "VR_UI_IMPLEMENTATION", + ] + + deps = [ + "//base", + "//components/rappor:rappor", + "//components/ukm/content", + "//components/url_formatter", + "//media", + "//net", + "//services/metrics/public/cpp:ukm_builders", + "//skia", + ] +} + test("vr_common_unittests") { sources = [ "animation_unittest.cc",
diff --git a/chrome/browser/vr/assets_loader.h b/chrome/browser/vr/assets_loader.h index fc02813..cddcf5d8 100644 --- a/chrome/browser/vr/assets_loader.h +++ b/chrome/browser/vr/assets_loader.h
@@ -13,7 +13,7 @@ #include "base/memory/weak_ptr.h" #include "base/version.h" #include "chrome/browser/vr/assets_load_status.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" namespace base { class DictionaryValue; @@ -40,7 +40,7 @@ // component will be made available on a different thread than the asset load // request. Internally, the function calls will be posted on the main thread. // The asset load may be performed on a worker thread. -class VR_EXPORT AssetsLoader { +class VR_BASE_EXPORT AssetsLoader { public: typedef base::OnceCallback<void(AssetsLoadStatus status, std::unique_ptr<Assets> assets,
diff --git a/chrome/browser/vr/input_event.h b/chrome/browser/vr/input_event.h index 28f93d2..87698bb3 100644 --- a/chrome/browser/vr/input_event.h +++ b/chrome/browser/vr/input_event.h
@@ -6,12 +6,12 @@ #define CHROME_BROWSER_VR_INPUT_EVENT_H_ #include "base/time/time.h" -#include "chrome/browser/vr/vr_ui_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "ui/gfx/geometry/point_f.h" namespace vr { -class VR_UI_EXPORT InputEvent { +class VR_BASE_EXPORT InputEvent { public: enum Type { kTypeUndefined = -1,
diff --git a/chrome/browser/vr/metrics/metrics_helper.h b/chrome/browser/vr/metrics/metrics_helper.h index 59bb6e8..d1ade64 100644 --- a/chrome/browser/vr/metrics/metrics_helper.h +++ b/chrome/browser/vr/metrics/metrics_helper.h
@@ -13,7 +13,7 @@ #include "chrome/browser/vr/assets_component_update_status.h" #include "chrome/browser/vr/assets_load_status.h" #include "chrome/browser/vr/mode.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" namespace base { class Version; @@ -24,7 +24,7 @@ // Helper to collect VR UMA metrics. // // For thread-safety, all functions must be called in sequence. -class VR_EXPORT MetricsHelper { +class VR_BASE_EXPORT MetricsHelper { public: MetricsHelper(); ~MetricsHelper();
diff --git a/chrome/browser/vr/metrics/session_metrics_helper.h b/chrome/browser/vr/metrics/session_metrics_helper.h index 3e0c907..eb8f0d4d 100644 --- a/chrome/browser/vr/metrics/session_metrics_helper.h +++ b/chrome/browser/vr/metrics/session_metrics_helper.h
@@ -10,7 +10,7 @@ #include "base/time/time.h" #include "chrome/browser/vr/mode.h" #include "chrome/browser/vr/ui_browser_interface.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "content/public/browser/web_contents_observer.h" #include "services/metrics/public/cpp/ukm_builders.h" #include "services/metrics/public/cpp/ukm_source_id.h" @@ -147,7 +147,8 @@ // metrics that require state monitoring, such as durations, but also tracks // data we want attached to that, such as number of videos watched and how the // session was started. -class VR_EXPORT SessionMetricsHelper : public content::WebContentsObserver { +class VR_BASE_EXPORT SessionMetricsHelper + : public content::WebContentsObserver { public: // Returns the SessionMetricsHelper singleton if it has been created for the // WebContents.
diff --git a/chrome/browser/vr/model/assets.h b/chrome/browser/vr/model/assets.h index 291b131..47c146a 100644 --- a/chrome/browser/vr/model/assets.h +++ b/chrome/browser/vr/model/assets.h
@@ -8,13 +8,13 @@ #include <memory> #include "base/version.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" class SkBitmap; namespace vr { -struct VR_EXPORT Assets { +struct VR_BASE_EXPORT Assets { Assets(); ~Assets();
diff --git a/chrome/browser/vr/model/controller_model.h b/chrome/browser/vr/model/controller_model.h index c097d1b..beb2700 100644 --- a/chrome/browser/vr/model/controller_model.h +++ b/chrome/browser/vr/model/controller_model.h
@@ -8,7 +8,7 @@ #include "base/time/time.h" #include "chrome/browser/vr/platform_controller.h" #include "chrome/browser/vr/ui_input_manager.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "ui/gfx/geometry/point3_f.h" #include "ui/gfx/transform.h" @@ -18,7 +18,7 @@ // platform-specific VR subsystem (e.g., GVR). It is used by both the // UiInputManager (for generating gestures), and by the UI for rendering the // controller. -struct VR_EXPORT ControllerModel { +struct VR_BASE_EXPORT ControllerModel { ControllerModel(); ControllerModel(const ControllerModel& other); ~ControllerModel();
diff --git a/chrome/browser/vr/model/omnibox_suggestions.h b/chrome/browser/vr/model/omnibox_suggestions.h index 6e326da..bba3c36 100644 --- a/chrome/browser/vr/model/omnibox_suggestions.h +++ b/chrome/browser/vr/model/omnibox_suggestions.h
@@ -6,13 +6,13 @@ #define CHROME_BROWSER_VR_MODEL_OMNIBOX_SUGGESTIONS_H_ #include "base/strings/string16.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "components/omnibox/browser/autocomplete_match.h" #include "url/gurl.h" namespace vr { -struct VR_EXPORT Autocompletion { +struct VR_BASE_EXPORT Autocompletion { Autocompletion(); Autocompletion(const base::string16& new_input, const base::string16& new_suffix); @@ -28,7 +28,7 @@ base::string16 suffix; }; -struct VR_EXPORT OmniboxSuggestion { +struct VR_BASE_EXPORT OmniboxSuggestion { OmniboxSuggestion(); OmniboxSuggestion(const base::string16& new_contents, @@ -53,7 +53,7 @@ Autocompletion autocompletion; }; -struct VR_EXPORT OmniboxSuggestions { +struct VR_BASE_EXPORT OmniboxSuggestions { OmniboxSuggestions(); ~OmniboxSuggestions(); @@ -62,7 +62,7 @@ // This struct contains the minimal set of information required to construct an // AutocompleteInput on VR's behalf. -struct VR_EXPORT AutocompleteRequest { +struct VR_BASE_EXPORT AutocompleteRequest { base::string16 text; size_t cursor_position = 0; bool prevent_inline_autocomplete = false;
diff --git a/chrome/browser/vr/model/text_input_info.h b/chrome/browser/vr/model/text_input_info.h index cf47e8e..868863f 100644 --- a/chrome/browser/vr/model/text_input_info.h +++ b/chrome/browser/vr/model/text_input_info.h
@@ -11,12 +11,12 @@ #include "base/strings/stringprintf.h" #include "base/strings/utf_string_conversions.h" #include "chrome/browser/vr/text_edit_action.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" namespace vr { // Represents the state of an editable text field. -struct VR_EXPORT TextInputInfo { +struct VR_BASE_EXPORT TextInputInfo { public: TextInputInfo(); explicit TextInputInfo(base::string16 t); @@ -65,7 +65,7 @@ // A superset of TextInputInfo, consisting of a current and previous text field // state. A keyboard can return this structure, allowing clients to derive // deltas in keyboard state. -struct VR_EXPORT EditedText { +struct VR_BASE_EXPORT EditedText { public: EditedText(); EditedText(const EditedText& other);
diff --git a/chrome/browser/vr/model/toolbar_state.h b/chrome/browser/vr/model/toolbar_state.h index c5b877b0..d7d136c 100644 --- a/chrome/browser/vr/model/toolbar_state.h +++ b/chrome/browser/vr/model/toolbar_state.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_VR_MODEL_TOOLBAR_STATE_H_ #define CHROME_BROWSER_VR_MODEL_TOOLBAR_STATE_H_ -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "components/security_state/core/security_state.h" #include "url/gurl.h" @@ -16,7 +16,7 @@ namespace vr { // Passes information obtained from ToolbarModel to the VR UI framework. -struct VR_EXPORT ToolbarState { +struct VR_BASE_EXPORT ToolbarState { public: ToolbarState(); ToolbarState(const GURL& url,
diff --git a/chrome/browser/vr/platform_ui_input_delegate.h b/chrome/browser/vr/platform_ui_input_delegate.h index 77e5d395..5daf9ea4 100644 --- a/chrome/browser/vr/platform_ui_input_delegate.h +++ b/chrome/browser/vr/platform_ui_input_delegate.h
@@ -15,7 +15,7 @@ #include "chrome/browser/vr/macros.h" #include "chrome/browser/vr/model/text_input_info.h" #include "chrome/browser/vr/text_edit_action.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "ui/gfx/geometry/size.h" namespace base { @@ -32,7 +32,7 @@ // This class is responsible for processing all events and gestures for // PlatformUiElement. -class VR_EXPORT PlatformUiInputDelegate { +class VR_BASE_EXPORT PlatformUiInputDelegate { public: PlatformUiInputDelegate(); explicit PlatformUiInputDelegate(PlatformInputHandler* input_handler);
diff --git a/chrome/browser/vr/pose_util.h b/chrome/browser/vr/pose_util.h index 0aaad867..cbf553f 100644 --- a/chrome/browser/vr/pose_util.h +++ b/chrome/browser/vr/pose_util.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_VR_POSE_UTIL_H_ #define CHROME_BROWSER_VR_POSE_UTIL_H_ -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "ui/gfx/geometry/vector3d_f.h" namespace gfx { @@ -15,10 +15,10 @@ namespace vr { // Provides the direction the head is looking towards as a 3x1 unit vector. -VR_EXPORT gfx::Vector3dF GetForwardVector(const gfx::Transform& head_pose); +VR_BASE_EXPORT gfx::Vector3dF GetForwardVector(const gfx::Transform& head_pose); // Returns a vector heading upward from the viewer's head. -gfx::Vector3dF GetUpVector(const gfx::Transform& head_pose); +VR_BASE_EXPORT gfx::Vector3dF GetUpVector(const gfx::Transform& head_pose); } // namespace vr
diff --git a/chrome/browser/vr/speech_recognizer.cc b/chrome/browser/vr/speech_recognizer.cc index f09a321..e53b5d3 100644 --- a/chrome/browser/vr/speech_recognizer.cc +++ b/chrome/browser/vr/speech_recognizer.cc
@@ -16,7 +16,6 @@ #include "content/public/browser/speech_recognition_manager.h" #include "content/public/browser/speech_recognition_session_config.h" #include "content/public/common/child_process_host.h" -#include "net/url_request/url_request_context_getter.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "third_party/blink/public/mojom/speech/speech_recognition_error.mojom.h" #include "ui/base/l10n/l10n_util.h" @@ -62,8 +61,7 @@ // Start(). void Start(std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter, + const std::string& accept_language, const base::WeakPtr<IOBrowserUIInterface>& browser_ui, const std::string& locale, const std::string& auth_scope, @@ -106,8 +104,7 @@ // All remaining members only accessed from the IO thread. scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory_; - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter_; + const std::string accept_language_; std::string locale_; std::unique_ptr<base::OneShotTimer> speech_timeout_; int session_; @@ -132,8 +129,7 @@ void SpeechRecognizerOnIO::Start( std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter, + const std::string& accept_language, const base::WeakPtr<IOBrowserUIInterface>& browser_ui, const std::string& locale, const std::string& auth_scope, @@ -150,8 +146,7 @@ config.interim_results = true; config.max_hypotheses = 1; config.filter_profanities = true; - config.deprecated_url_request_context_getter = - deprecated_url_request_context_getter; + config.accept_language = accept_language; if (!shared_url_loader_factory_) { DCHECK(shared_url_loader_factory_info); shared_url_loader_factory_ = network::SharedURLLoaderFactory::Create( @@ -298,14 +293,13 @@ BrowserUiInterface* ui, std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, + const std::string& accept_language, const std::string& locale) : delegate_(delegate), ui_(ui), shared_url_loader_factory_info_( std::move(shared_url_loader_factory_info)), - deprecated_url_request_context_getter_( - deprecated_url_request_context_getter), + accept_language_(accept_language), locale_(locale), speech_recognizer_on_io_(std::make_unique<SpeechRecognizerOnIO>()), weak_factory_(this) { @@ -334,9 +328,8 @@ base::BindOnce(&SpeechRecognizerOnIO::Start, base::Unretained(speech_recognizer_on_io_.get()), std::move(shared_url_loader_factory_info_), - deprecated_url_request_context_getter_, - weak_factory_.GetWeakPtr(), locale_, auth_scope, - auth_token)); + accept_language_, weak_factory_.GetWeakPtr(), locale_, + auth_scope, auth_token)); if (ui_) ui_->SetSpeechRecognitionEnabled(true); final_result_.clear();
diff --git a/chrome/browser/vr/speech_recognizer.h b/chrome/browser/vr/speech_recognizer.h index f2b1d2d..e209a5f 100644 --- a/chrome/browser/vr/speech_recognizer.h +++ b/chrome/browser/vr/speech_recognizer.h
@@ -17,10 +17,6 @@ class SpeechRecognitionManager; } -namespace net { -class URLRequestContextGetter; -} - namespace network { class SharedURLLoaderFactoryInfo; } @@ -98,13 +94,12 @@ public: // |shared_url_loader_factory_info| must be for a creating a // SharedURLLoaderFactory that can be used on the IO Thread. - SpeechRecognizer( - VoiceResultDelegate* delegate, - BrowserUiInterface* ui, - std::unique_ptr<network::SharedURLLoaderFactoryInfo> - shared_url_loader_factory_info, - net::URLRequestContextGetter* deprecated_url_request_context_getter, - const std::string& locale); + SpeechRecognizer(VoiceResultDelegate* delegate, + BrowserUiInterface* ui, + std::unique_ptr<network::SharedURLLoaderFactoryInfo> + shared_url_loader_factory_info, + const std::string& accept_language, + const std::string& locale); ~SpeechRecognizer() override; // Start/stop the speech recognizer. @@ -133,8 +128,7 @@ std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info_; - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter_; + const std::string accept_language_; std::string locale_; base::string16 final_result_;
diff --git a/chrome/browser/vr/speech_recognizer_unittest.cc b/chrome/browser/vr/speech_recognizer_unittest.cc index b838e0a..1f2b0b0 100644 --- a/chrome/browser/vr/speech_recognizer_unittest.cc +++ b/chrome/browser/vr/speech_recognizer_unittest.cc
@@ -259,8 +259,8 @@ delegate_.get(), ui_.get(), std::make_unique<FakeSharedURLLoaderFactoryInfo>(), - nullptr, - "en")) { + "en" /* accept_language */, + "en" /* locale */)) { SpeechRecognizer::SetManagerForTest(fake_speech_recognition_manager_.get()); }
diff --git a/chrome/browser/vr/testapp/BUILD.gn b/chrome/browser/vr/testapp/BUILD.gn index 53673df..c5ebfc9 100644 --- a/chrome/browser/vr/testapp/BUILD.gn +++ b/chrome/browser/vr/testapp/BUILD.gn
@@ -25,6 +25,7 @@ ":assets_component_version_header", ":vr_testapp_pak", "//chrome/browser/vr:vr_common", + "//chrome/browser/vr:vr_ui", "//components:components_tests_pak", "//components/security_state/core", "//components/toolbar:vector_icons",
diff --git a/chrome/browser/vr/testapp/vr_testapp.cc b/chrome/browser/vr/testapp/vr_testapp.cc index 853e3d52..afba8fc 100644 --- a/chrome/browser/vr/testapp/vr_testapp.cc +++ b/chrome/browser/vr/testapp/vr_testapp.cc
@@ -139,13 +139,11 @@ void OnClosed() override {} void OnWindowStateChanged(ui::PlatformWindowState new_state) override {} void OnLostCapture() override {} - void OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget, - float device_pixel_ratio) override { + void OnAcceleratedWidgetAvailable(gfx::AcceleratedWidget widget) override { DCHECK_NE(widget, gfx::kNullAcceleratedWidget); widget_ = widget; } void OnAcceleratedWidgetDestroyed() override { NOTREACHED(); } - void OnAcceleratedWidgetDestroying() override { NOTREACHED(); } void OnActivationChanged(bool active) override {} private:
diff --git a/chrome/browser/vr/text_edit_action.h b/chrome/browser/vr/text_edit_action.h index 833373cc..ffa025f 100644 --- a/chrome/browser/vr/text_edit_action.h +++ b/chrome/browser/vr/text_edit_action.h
@@ -8,7 +8,7 @@ #include <vector> #include "base/strings/string16.h" -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" namespace vr { @@ -20,7 +20,7 @@ DELETE_TEXT, }; -class VR_EXPORT TextEditAction { +class VR_BASE_EXPORT TextEditAction { public: explicit TextEditAction(TextEditActionType type); TextEditAction(TextEditActionType type,
diff --git a/chrome/browser/vr/ui.h b/chrome/browser/vr/ui.h index 60e2272..e4e5643 100644 --- a/chrome/browser/vr/ui.h +++ b/chrome/browser/vr/ui.h
@@ -13,7 +13,6 @@ #include "base/version.h" #include "chrome/browser/vr/assets_load_status.h" #include "chrome/browser/vr/browser_ui_interface.h" -#include "chrome/browser/vr/keyboard_ui_interface.h" #include "chrome/browser/vr/model/tab_model.h" #include "chrome/browser/vr/platform_controller.h" #include "chrome/browser/vr/ui_element_renderer.h" @@ -46,7 +45,7 @@ // This class manages all GLThread owned objects and GL rendering for VrShell. // It is not threadsafe and must only be used on the GL thread. -class VR_EXPORT Ui : public UiInterface, public KeyboardUiInterface { +class VR_EXPORT Ui : public UiInterface { public: Ui(UiBrowserInterface* browser, PlatformInputHandler* content_input_forwarder,
diff --git a/chrome/browser/vr/ui_factory.cc b/chrome/browser/vr/ui_factory.cc new file mode 100644 index 0000000..059ed31 --- /dev/null +++ b/chrome/browser/vr/ui_factory.cc
@@ -0,0 +1,24 @@ +// Copyright 2018 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 "chrome/browser/vr/ui_factory.h" + +#include "chrome/browser/vr/content_input_delegate.h" +#include "chrome/browser/vr/ui.h" + +namespace vr { + +std::unique_ptr<UiInterface> UiFactory::Create( + UiBrowserInterface* browser, + PlatformInputHandler* content_input_forwarder, + KeyboardDelegate* keyboard_delegate, + TextInputDelegate* text_input_delegate, + AudioDelegate* audio_delegate, + const UiInitialState& ui_initial_state) { + return std::make_unique<Ui>(browser, content_input_forwarder, + keyboard_delegate, text_input_delegate, + audio_delegate, ui_initial_state); +} + +} // namespace vr
diff --git a/chrome/browser/vr/ui_factory.h b/chrome/browser/vr/ui_factory.h new file mode 100644 index 0000000..935e4ed --- /dev/null +++ b/chrome/browser/vr/ui_factory.h
@@ -0,0 +1,35 @@ +// Copyright 2018 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. + +#ifndef CHROME_BROWSER_VR_UI_FACTORY_H_ +#define CHROME_BROWSER_VR_UI_FACTORY_H_ + +#include <memory> + +#include "chrome/browser/vr/ui_interface.h" +#include "chrome/browser/vr/vr_export.h" + +namespace vr { + +class AudioDelegate; +class KeyboardDelegate; +class PlatformInputHandler; +class TextInputDelegate; +class UiBrowserInterface; +struct UiInitialState; + +class VR_EXPORT UiFactory { + public: + static std::unique_ptr<UiInterface> Create( + UiBrowserInterface* browser, + PlatformInputHandler* content_input_forwarder, + KeyboardDelegate* keyboard_delegate, + TextInputDelegate* text_input_delegate, + AudioDelegate* audio_delegate, + const UiInitialState& ui_initial_state); +}; + +} // namespace vr + +#endif // CHROME_BROWSER_VR_UI_FACTORY_H_
diff --git a/chrome/browser/vr/ui_initial_state.h b/chrome/browser/vr/ui_initial_state.h index 387e5a8..9a4f841 100644 --- a/chrome/browser/vr/ui_initial_state.h +++ b/chrome/browser/vr/ui_initial_state.h
@@ -5,13 +5,13 @@ #ifndef CHROME_BROWSER_VR_UI_INITIAL_STATE_H_ #define CHROME_BROWSER_VR_UI_INITIAL_STATE_H_ -#include "chrome/browser/vr/vr_export.h" +#include "chrome/browser/vr/vr_base_export.h" namespace vr { // This class describes the initial state of a UI, and may be used by a UI // instances owner to specify a custom state on startup. -struct VR_EXPORT UiInitialState { +struct VR_BASE_EXPORT UiInitialState { UiInitialState(); UiInitialState(const UiInitialState& other); bool in_web_vr = false;
diff --git a/chrome/browser/vr/ui_interface.h b/chrome/browser/vr/ui_interface.h index b649ee9b..8f095e1 100644 --- a/chrome/browser/vr/ui_interface.h +++ b/chrome/browser/vr/ui_interface.h
@@ -10,6 +10,7 @@ #include "base/memory/weak_ptr.h" #include "chrome/browser/vr/browser_ui_interface.h" +#include "chrome/browser/vr/keyboard_ui_interface.h" #include "chrome/browser/vr/platform_controller.h" #include "chrome/browser/vr/ui_element_renderer.h" #include "chrome/browser/vr/ui_input_manager.h" @@ -27,7 +28,7 @@ // This interface represents the methods that should be called by its owner, and // also serves to make all such methods virtual for the sake of separating a UI // feature module. -class UiInterface : public BrowserUiInterface { +class UiInterface : public BrowserUiInterface, public KeyboardUiInterface { public: ~UiInterface() override {}
diff --git a/chrome/browser/vr/vr_base_export.h b/chrome/browser/vr/vr_base_export.h new file mode 100644 index 0000000..58416e5 --- /dev/null +++ b/chrome/browser/vr/vr_base_export.h
@@ -0,0 +1,29 @@ +// Copyright (c) 2018 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. + +#ifndef CHROME_BROWSER_VR_VR_BASE_EXPORT_H_ +#define CHROME_BROWSER_VR_VR_BASE_EXPORT_H_ + +#if defined(COMPONENT_BUILD) +#if defined(WIN32) + +#if defined(VR_BASE_IMPLEMENTATION) +#define VR_BASE_EXPORT __declspec(dllexport) +#else +#define VR_BASE_EXPORT __declspec(dllimport) +#endif // defined(VR_BASE_IMPLEMENTATION) + +#else // defined(WIN32) +#if defined(VR_BASE_IMPLEMENTATION) +#define VR_BASE_EXPORT __attribute__((visibility("default"))) +#else +#define VR_BASE_EXPORT +#endif // defined(VR_BASE_IMPLEMENTATION) +#endif + +#else // defined(COMPONENT_BBASELD) +#define VR_BASE_EXPORT +#endif + +#endif // CHROME_BROWSER_VR_VR_BASE_EXPORT_H_
diff --git a/chrome/browser/vr/vr_geometry_util.h b/chrome/browser/vr/vr_geometry_util.h index bde3952..0a8674f 100644 --- a/chrome/browser/vr/vr_geometry_util.h +++ b/chrome/browser/vr/vr_geometry_util.h
@@ -5,7 +5,7 @@ #ifndef CHROME_BROWSER_VR_VR_GEOMETRY_UTIL_H_ #define CHROME_BROWSER_VR_VR_GEOMETRY_UTIL_H_ -#include "chrome/browser/vr/vr_ui_export.h" +#include "chrome/browser/vr/vr_base_export.h" #include "ui/gfx/geometry/rect.h" namespace gfx { @@ -17,14 +17,15 @@ namespace vr { -VR_UI_EXPORT gfx::Rect CalculatePixelSpaceRect(const gfx::Size& texture_size, - const gfx::RectF& texture_rect); +VR_BASE_EXPORT gfx::Rect CalculatePixelSpaceRect( + const gfx::Size& texture_size, + const gfx::RectF& texture_rect); // Returns the normalized size of the element projected into screen space. // If (1, 1) the element fills the entire buffer. -VR_UI_EXPORT gfx::SizeF CalculateScreenSize(const gfx::Transform& proj_matrix, - float distance, - const gfx::SizeF& size); +VR_BASE_EXPORT gfx::SizeF CalculateScreenSize(const gfx::Transform& proj_matrix, + float distance, + const gfx::SizeF& size); } // namespace vr
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index e37b1c2..6ece51f 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -352,9 +352,6 @@ const base::Feature kMacFullSizeContentView{"MacFullSizeContentView", base::FEATURE_ENABLED_BY_DEFAULT}; -// Enables "Share" submenu in File menu. -const base::Feature kMacSystemShareMenu{"MacSystemShareMenu", - base::FEATURE_ENABLED_BY_DEFAULT}; #endif #if defined(OS_MACOSX)
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index e721825..c9847971 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -192,7 +192,6 @@ #if defined(OS_MACOSX) extern const base::Feature kMacRTL; extern const base::Feature kMacFullSizeContentView; -extern const base::Feature kMacSystemShareMenu; #endif #if defined(OS_MACOSX)
diff --git a/chrome/common/chrome_switches.cc b/chrome/common/chrome_switches.cc index 002e558..594cee4 100644 --- a/chrome/common/chrome_switches.cc +++ b/chrome/common/chrome_switches.cc
@@ -259,6 +259,9 @@ const char kDnsLogDetails[] = "dns-log-details"; +// Enables new UI for net-error page. +const char kNewNetErrorPageUI[] = "new-net-error-page-ui"; + // Requests that a running browser process dump its collected histograms to a // given file. The file is overwritten if it exists. const char kDumpBrowserHistograms[] = "dump-browser-histograms";
diff --git a/chrome/common/chrome_switches.h b/chrome/common/chrome_switches.h index d222c2b..932fdc5 100644 --- a/chrome/common/chrome_switches.h +++ b/chrome/common/chrome_switches.h
@@ -136,6 +136,7 @@ extern const char kMediaCacheSize[]; extern const char kMonitoringDestinationID[]; extern const char kNetLogCaptureMode[]; +extern const char kNewNetErrorPageUI[]; extern const char kNewTabButtonPosition[]; extern const char kNewTabButtonPositionOppositeCaption[]; extern const char kNewTabButtonPositionLeading[];
diff --git a/chrome/common/extensions/docs/templates/articles/a11y.html b/chrome/common/extensions/docs/templates/articles/a11y.html index d410b1fa..9ff9bd4 100644 --- a/chrome/common/extensions/docs/templates/articles/a11y.html +++ b/chrome/common/extensions/docs/templates/articles/a11y.html
@@ -1,110 +1,89 @@ <h1>Accessibility (a11y)</h1> - <p> -When you design an extension, -try to make it as accessible as possible -to people with disabilities such as -visual impairment, hearing loss, and limited dexterity. + Extensions empower users to create their ideal browsing experience, + tailored to an individual's abilities and preferences. + Extensions should include accessibility components that encourage + an inclusive user base by enabling people with visual impairments, + hearing loss, limited dexterity, + and other disabilities to access the extension. </p> <p> -Everyone — not just people with special needs — -can benefit from the alternative access modes -that accessible extensions provide. -For example, keyboard shortcuts are important -for blind people and people with limited dexterity, -but they also help power users get things done -more quickly without using a mouse. -Captions and transcripts give deaf people access to audio content, -but they are also useful to language learners. + Everyone, not just users with special needs, + can benefit from accessibility features. + Vision impaired, low dexterity + and power users all benefit from keyboard shortcuts. + Captions and transcripts are essential to deaf users, + but also help language learners. </p> <p> -People can interact with your extension in a variety of ways. -They might use a standard monitor, keyboard, and mouse, -or they might use a screen magnifier and just a keyboard. -Another possibility is a <em>screen reader</em>, -an assistive application tool that interprets -what's displayed onscreen -for a blind or visually impaired user. -A screen reader might speak out loud or produce Braille output. + People may interact with an extension in a variety of ways. + Some users have a standard monitor, keyboard and mouse + - or they may depend on a screen magnifier + and possibly a + <a href="https://webaim.org/techniques/screenreader/">screen reader</a>. + While it is impossible to predict what tools people will use + to access an extension, + there are steps any developer can take + to make an extension as accessible as possible. </p> + +<h2 id="controls">Integrate Accessible UI Controls</h2> + <p> -Although you can't predict what tools people will use, -by following a few simple guidelines -you can write an extension that is -more likely to be accessible to more people. -The guidelines on this page aren't going to -make your extension accessible for absolutely everyone, -but they're a good starting point. + If users can’t access the user interface controls, + they are unable to use an extension. + The easiest way to create an accessible UI + is to use a standard HTML control. </p> - -<h2 id="controls">Use accessible UI controls</h2> - -<p> -First, use UI controls that support accessibility. -The easiest way to get an accessible control is to use a -standard HTML control. -If you need to build a custom control, -keep in mind that it's much easier -to make the control accessible from the beginning -than to go back and add accessibility support later. +<p class="note"> + Note: If an extension requires a custom control, + it is much easier to make a custom control accessible from the beginning + than to go back an add accessibility support later. </p> - <h3 id="htmlcontrols">Standard controls</h3> <p> -Try to use standard HTML UI controls whenever possible. -Standard HTML controls (shown in the following figure) -are keyboard accessible, scale easily, -and are generally understood by screen readers. + Whenever possible, + use + <a href="https://developer.mozilla.org/en-US/docs/Learn/Accessibility/HTML"> + standard HTML UI controls</a>. + Standard HTML controls are keyboard accessible, scale easily and are generally + understood by screen readers. </p> +<!-- TODO: we should replace the image below with text and controls. --> <img src="{{static}}/images/a11y/standard-html-controls.png" width="550" height="350" alt="Screenshots and code for button, checkbox, radio, text, select/option, and link"> -<h3 id="aria">ARIA in custom controls</h3> +<h3 id="aria">WAI-ARIA in custom controls</h3> <p> -ARIA is a specification for making UI controls accessible to screen readers -by means of a standard set of DOM attributes. -These attributes provide clues to the screen reader -about the function and current state of controls on a web page. -ARIA is a -<a href="https://www.w3.org/WAI/intro/aria">work in progress at the W3C</a>. + The + <a href="https://www.w3.org/WAI/standards-guidelines/aria/"> + Web Accessibility Initiative - Accessible Rich Internet Applications</a>, + WAI-ARIA, is a specification for making UI controls accessible + to screen readers through a standard set of DOM attributes. + These attributes provide information to the screen reader about the function + and current state of controls on a web page. </p> <p> -Adding ARIA support to custom controls in your extension -involves modifying DOM elements to add attributes -Google Chrome uses -to raise events during user interaction. -Screen readers respond to these events -and describe the function of the control. -The DOM attributes specified by ARIA are classified into -<em>roles</em>, <em>states</em>, and <em>properties</em>. -</p> - -<p> -The ARIA attribute <em>role</em> -is an indication of the control type -and describes the way the control should behave. -It is expressed with the DOM attribute <code>role</code>, -with a value set to one of the pre-defined ARIA role strings. -Because ARIA roles are static, -the role attribute should not change its value. -</p> - -<p> -The <a href="https://www.w3.org/WAI/PF/aria/roles">ARIA Role Specification</a> -holds detailed information on how to pick the correct role. -For example, if your extension includes a toolbar, -set the <code>role</code> attribute of the toolbar's DOM element as follows: + To add WAI-ARIA support to custom controls, + the DOM elements of an extension will need to be modified to include + attributes Chrome uses to raise events during user interaction. + Screen readers respond to these events + and describe the function of the control. + DOM attributes specified by WAI-ARIA are classified into + <a href="https://www.w3.org/TR/wai-aria/#roles"><em>roles</em></a>, + <a href="https://www.w3.org/TR/wai-aria/#states_and_properties"> + <em>states</em>, and <em>properties</em></a>. </p> <pre> @@ -112,51 +91,18 @@ </pre> <p> -ARIA attributes are also used to describe -the current state and properties of controls of a particular role. -A <em>state</em> is dynamic and should be updated during user interaction. -For example, a control with the role "checkbox" -could be in the states "checked" or "unchecked". -A <em>property</em> is not generally dynamic, -but is similar to a state -in that it expresses specific information about a control. -For more information on ARIA states and properties, -refer to the -<a href="https://www.w3.org/TR/wai-aria/#introstates">W3C States and Properties specification</a>. -</p> - - -<p class="note"> -<b>Note:</b> -You don't have to use -all of the states and properties available for a particular role. -</p> - -<p> -Here's an example of adding -the ARIA property <code>aria-activedescendant</code> -to the example toolbar control: -</p> - -<pre> -<div role="toolbar" tabindex="0" aria-activedescendant="button1"> -</pre> - -<p> The -<a href="https://www.w3.org/WAI/PF/aria/states_and_properties#aria-activedescendant"><code>aria-activedescendant</code></a> -property specifies which child of the toolbar receives focus -when the toolbar receives focus. -In this example, the toolbar's first button -(which has the <code>id</code> "button1") -is the child that gets focus. -The code <code>tabindex="0"</code> -specifies that the toolbar -receives focus in document order. +<a href="https://www.w3.org/WAI/PF/aria/states_and_properties#aria-activedescendant"> + <code>aria-activedescendant</code></a> + property specifies which child of a toolbar receives focus + when the toolbar receives focus. + The code <code>tabindex="0"</code> + specifies that the toolbar + receives focus in document order. </p> <p> -Here's the complete specification for the example toolbar: + Consider the complete specification for an example toolbar below: </p> <pre> @@ -168,105 +114,77 @@ </pre> <p> -Once ARIA roles, states, and properties are added to the DOM of a control, -Google Chrome raises the appropriate events to the screen reader. -Because ARIA support is still a work in progress, -Google Chrome might not raise an event for every ARIA property, -and screen readers might not recognize all of the events being raised. -You can find more information on ARIA support in Google Chrome in the -<a href="https://www.chromium.org/developers/design-documents/accessibility#TOC-WAI-ARIA-Support">Chromium Accessibility Design Document</a>. + Once WAI-ARIA roles, states, and properties are added to the DOM of a control, + Google Chrome raises the appropriate events to the screen reader. + Because WAI-ARIA support is still a work in progress, + Google Chrome might not raise an event for every WAI-ARIA property, + and screen readers might not recognize all of the events being raised. </p> <p> -For a quick tutorial on adding ARIA controls to custom controls, see -<a href="https://www.w3.org/2010/Talks/www2010-dsr-diy-aria/">Dave Raggett's presentation from WWW2010</a>. + For a quick tutorial on adding WAI-ARIA controls to custom controls, see + <a href="https://www.w3.org/2010/Talks/www2010-dsr-diy-aria/"> + Dave Raggett's presentation from WWW2010</a>. +</p> <h3 id="focus">Focus in custom controls</h3> <p> -Make sure that operation and navigation controls of your extension -can receive keyboard focus. -Operation controls might include -buttons, trees, and list boxes. -Navigation controls might include tabs and menu bars. + Keyboard focus is essentials for users who navigate the web without a mouse. + Make sure operation and navigation controls, + such as buttons, list boxes and menu bars can receive keyboard focus. </p> <p> -By default, the only elements in the HTML DOM -that can receive keyboard focus -are anchors, buttons, and form controls. -However, setting the HTML attribute <code>tabIndex</code> to <code>0</code> -places DOM elements in the default tab sequence, -enabling them to receive keyboard focus. -For example: + By default, the only elements in the HTML DOM + that can receive keyboard focus are anchors, buttons, and form controls. + However, setting the HTML attribute <code>tabIndex</code> to <code>0</code> + places DOM elements in the default tab sequence, + enabling them to receive keyboard focus. </p> <pre> <em>element</em>.tabIndex = 0 </pre> -<p> -Setting <code>tabIndex = -1</code> removes the element from the tab sequence -but still allows the element to receive keyboard focus programmatically. -Here's an example of setting keyboard focus: -</p> - <pre> <em>element</em>.focus(); </pre> <p> -Ensuring that your custom UI controls include keyboard support -is important not only for users who don't use the mouse -but also because screen readers use keyboard focus -to determine which control to describe. + Setting <code>tabIndex = -1</code> + removes the element from the tab sequence but still allows the element + to receive keyboard focus programmatically. </p> <h2 id="keyboard"> Support keyboard access </h2> <p> -People should be able to use your extension -even if they can't or don't want to use a mouse. + Extensions should be usable with just a keyboard, + allowing users who can't use a mouse, + and power users who simply don't, + to access them. </p> <h3 id="navigation"> Navigation </h3> <p> -Check that the user can navigate between -the different parts of your extension -without using the mouse. -Also check that any popups on page actions or browser actions -are keyboard navigable. -</p> - -<p id="builtin"> -On Windows, you can use <b>Shift+Alt+T</b> -to switch the keyboard focus to the toolbar, -which lets you navigate to the icons of page actions and browser actions. -The help topic -<a href="https://support.google.com/chrome/answer/157179">Keyboard and mouse shortcuts</a> -lists all of Google Chrome's keyboard shortcuts; -details about toolbar navigation -are in the section <b>Google Chrome feature shortcuts</b>. -</p> - -<p class="note"> -<b>Note:</b> -The Windows version of Google Chrome 6 was the first -to support keyboard navigation to the toolbar. -Support is also planned for Linux. -On Mac OS X, -access to the toolbar is provided through VoiceOver, -Apple's screenreader. + Check that a user can navigate between different parts of an extension + without using the mouse. + Check that any use of a <a href="/extensions/user_interface#popup">popup</a> + is keyboard navigable. + Use + <a href="https://support.google.com/chrome/answer/157179?hl=en"> + Chrome keyboard shortcuts</a> + to determine if an extension is navigable. </p> <p> -Make sure that it's easy to see -which part of the interface has keyboard focus. -Usually a focus outline moves around the interface, -but if you’re using CSS heavily this outline might be suppressed -or the contrast might be reduced. -Two examples of focus outline follow. + Make sure it's easy to see which parts of the interface have keyboard focus. + Usually a focus outline moves around the interface, + however, + if CSS is used too heavily + the outline might be suppressed or the contrast reduced. </p> <img src="{{static}}/images/a11y/focus-outline-2.png" @@ -281,44 +199,19 @@ <h3 id="shortcuts"> Shortcuts </h3> <p> -Although the most common keyboard navigation strategy involves -using the Tab key to move focus through the extension interface, -that's not always the easiest or most efficient way -to use the interface. -You can make keyboard navigation easier -by providing explicit keyboard shortcuts. + While the most common keyboard navigation strategy involves using the Tab key + to rotate focus through an extension’s interface, + it is not always the easiest or most efficient option. </p> <p> -To implement shortcuts, -connect keyboard event listeners to your controls. -A good reference is the DHTML Style Guide Working Group’s -<a href="http://dev.aol.com/dhtml_style_guide">guidelines for keyboard shortcuts</a>. -</p> - -<p> -A good way to ensure discoverability of keyboard shortcuts -is to list them somewhere. -{{?is_apps}} - Your application's options page -{{:is_apps}} - Your extension's - <a href="options">Options page</a> -{{/is_apps}} -might be a good place to do this. -</p> - -<p> -For the example toolbar, -a simple JavaScript keyboard handler could look like the following. -Note how the ARIA property <code>aria-activedescendant</code> -is updated in response to user input -to reflect the current active toolbar button. + A simple JavaScript keyboard handler could look like the following. + Note how the WAI-ARIA property <code>aria-activedescendant</code> + is updated in response to user input + to reflect the current active toolbar button. </p> <pre> -<head> -<script> function optionKeyEvent(event) { var tb = event.target; var buttonid; @@ -348,8 +241,9 @@ return false; } } -</script> +</pre> +<pre> <div role="toolbar" tabindex="0" aria-activedescendant="button1" id="tb1" onkeydown="return optionKeyEvent(event);" onkeypress="return optionKeyEvent(event);"> @@ -357,114 +251,129 @@ <img src="buttoncopy" role="button" alt="copy" id="button1"> <img src="buttonpaste" role="button" alt="paste" id="button1"> </div> + </pre> +<p> + Extensions can create explicit keyboard shortcuts to + important extension UI elements. + To implement these shortcuts, + connect keyboard event listeners to controls. + Make users aware of the available shortcuts by providing them in the + <a href="/extensions/options">options page</a>. +</p> + <h2 id="more"> Provide accessible content </h2> <p> -The remaining guidelines might be familiar -because they reflect good practices for all web content, -not just extensions. + Providing accessible content is important to all users. + Many of the following guidelines may sound familiar, + as they reflect good practices for all web content. </p> <h3 id="text">Text</h3> <p> -Evaluate your use of text in your extension. -Many people might find it helpful -if you provide a way to increase the text size within your extension. -If you are using keyboard shortcuts, -make sure that they don't interfere with -the zoom shortcuts built into Google Chrome. + Font choices and text size impact how readable an extension’s content is. + Users with sight issues may need to increase an extensions text size. + If using keyboard shortcuts, + make sure they do not interfere with the zoom shortcuts built into Chrome. </p> <p> -As an indicator of the flexibility of your UI, -apply the <a href="https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-scale">200% test</a>. -If you increase the text size or page zoom 200%, -is your extension still usable? + As an indicator of flexibility of an extension's UI, + apply the + <a href="https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-scale"> + 200% test</a>; + if the text size or page zoom is increased 200%, + is it still usable? </p> <p> -Also, avoid baking text into images: -users cannot modify the size of text displayed as an image, -and screenreaders cannot interpret images. -Consider using a web font instead, -such as one of the fonts collected in the -<a href="https://developers.google.com/fonts/">Google Font API</a>. -Text styled in a web font is searchable, -scales to different sizes, -and is accessible to people using screen readers. + Avoid baking text into images. + Users are unable to modify the size and screen readers are + unable to interpret images. + Insead, opt for styled web font, + such as one of the fonts found in the + <a href="https://developers.google.com/fonts/">Google Font API</a>. + Web fonts can scale to different sizes + and can be accessed by people using screen readers. </p> <h3 id="colors">Colors</h3> <p> -Check that there is sufficient contrast between -background color and foreground/text color in your extension. -<a href="https://snook.ca/technical/colour_contrast/colour.html">This contrast checking tool</a> -checks whether your background and foreground colors -provide appropriate contrast. -If you’re developing in a Windows environment, -you can also enable High Contrast Mode -to check the contrast of your extension. -When evaluating contrast, -verify that every part of your extension that relies on -color or graphics to convey information is clearly visible. -For specific images, you can use a tool such as the -<a href="http://www.vischeck.com/vischeck/">Vischeck simulation tool</a> -to see what an image looks like in various forms of color deficiency. + There should be sufficient contrast between background color + and the text color in an extension. + Use a + <a href="https://snook.ca/technical/colour_contrast/colour.html"> + contrast checking tool</a> + to test if the background + and foreground colors provide an appropriate contrast. </p> <p> -You might consider offering different color themes, -or giving the user the ability to customize the color scheme -for better contrast. + When evaluating contrast, + verify that every part of the extension that relies on graphics + to convey information is clearly visible. + For specific images, + tools such as + <a href="http://www.color-blindness.com/coblis-color-blindness-simulator/"> + Coblis — Color Blindness Simulator</a> + can be used to see what an image looks like in various forms + of color deficiency. +</p> + +<p> + Consider offering different color themes, + or giving the user the ability to customize the color scheme, + to create a better contrast. </p> <h3 id="sound">Sound</h3> <p> -If your extension relies upon sound or video to convey information, -ensure that captions or a transcript are available. -See the -<a href="https://dcmp.org/learn/213">Described and Captioned Media Program guidelines</a> -for more information on captions. + If an extension relies upon sound or video to convey information, + ensure that captions or a transcript is available. + See the + <a href="https://dcmp.org/learn/213"> + Described and Captioned Media Program guidelines</a> + for more information on captions. </p> <h3 id="images">Images</h3> <p> -Provide informative alt text for your images. -For example: + Provide informative alt text for images. </p> <pre> -<img src="img.jpg" alt="The logo for the extension"> + <img src="img.jpg" alt="The logo for the extension"> </pre> <p> -Use the alt text to state the purpose of the image -rather than as a literal description of the contents of an image. -Spacer images or purely decorative images -should have blank ("") alt text -or be removed from the HTML entirely and placed in the CSS. + Use the alt text to state the purpose of the image + rather than a literal description of the contents of an image. + Spacer images or purely decorative images should have + a blank <code>""</code> alt text or removed from the HTML entirely + and placed in the CSS. </p> <p> -If you must use text in an image, -include the image text in the alt text. -A good resource to refer to is the -<a href="https://webaim.org/techniques/alttext/">WebAIM article on appropriate alt text</a>. + If the extension must use text in an image, + include the image text in the alt text. + A good resource to refer to is the + <a href="https://webaim.org/techniques/alttext/"> + WebAIM article on appropriate alt text</a>. -<h2 id="examples">Examples</h2> +<h2 id="learn_more">Learn More</h2> <p> -For an example that implements keyboard navigation and ARIA properties, see -<a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/extensions/news_a11y/">examples/extensions/news_a11y</a> -(compare it to -<a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/docs/examples/extensions/news/">examples/extensions/news</a>). -For more examples and for help in viewing the source code, -see <a href="sampleshtml">Samples</a>. + Learn more about accessibility in Chrome by checking out the + <a href="https://www.youtube.com/watch?v=Ag3DMNbL_ig&list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g"> + A11ycasts </a> channel and reading through the + <a href="https://www.chromium.org/developers/design-documents/accessibility#TOC-WAI-ARIA-Support"> + Chromium Accessibility Technical Documentation</a>. +</p>
diff --git a/chrome/common/search.mojom b/chrome/common/search.mojom index ec7187c5..dee1ddf 100644 --- a/chrome/common/search.mojom +++ b/chrome/common/search.mojom
@@ -48,6 +48,12 @@ // Tells InstantExtended to add a custom link. AddCustomLink(int32 page_seq_no, url.mojom.Url url, string title); + // Tells InstantExtended to update a custom link. + UpdateCustomLink(int32 page_seq_no, + url.mojom.Url url, + url.mojom.Url new_url, + string new_title); + // Tells InstantExtended to delete a custom link. DeleteCustomLink(int32 page_seq_no, url.mojom.Url url);
diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn index de0836f..ca093fd 100644 --- a/chrome/installer/linux/BUILD.gn +++ b/chrome/installer/linux/BUILD.gn
@@ -53,10 +53,6 @@ [ "$root_out_dir/$widevine_cdm_path/libwidevinecdm.so" ] } -if (!libcpp_is_static && use_custom_libcxx) { - packaging_files_shlibs += [ "$root_out_dir/libc++.so" ] -} - packaging_files_binaries = packaging_files_executables + packaging_files_shlibs # TODO(mmoss) Any convenient way to get all the relevant build files? @@ -373,10 +369,6 @@ if (!is_chromeos) { public_deps += [ ":rpm_packaging_files" ] } - - if (!libcpp_is_static && use_custom_libcxx) { - public_deps += [ "//buildtools/third_party/libc++:libc++" ] - } } # Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages.
diff --git a/chrome/renderer/autofill/fake_mojo_password_manager_driver.cc b/chrome/renderer/autofill/fake_mojo_password_manager_driver.cc index 1902111..0909f2c 100644 --- a/chrome/renderer/autofill/fake_mojo_password_manager_driver.cc +++ b/chrome/renderer/autofill/fake_mojo_password_manager_driver.cc
@@ -69,13 +69,6 @@ called_user_modified_password_field_ = true; } -void FakeMojoPasswordManagerDriver::SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& password_form, - const base::string16& generation_field) { - called_save_generation_field_ = true; - save_generation_field_ = generation_field; -} - void FakeMojoPasswordManagerDriver::CheckSafeBrowsingReputation( const GURL& form_action, const GURL& frame_url) {
diff --git a/chrome/renderer/autofill/fake_mojo_password_manager_driver.h b/chrome/renderer/autofill/fake_mojo_password_manager_driver.h index 88837d9..9c5d95d 100644 --- a/chrome/renderer/autofill/fake_mojo_password_manager_driver.h +++ b/chrome/renderer/autofill/fake_mojo_password_manager_driver.h
@@ -163,10 +163,6 @@ void UserModifiedPasswordField() override; - void SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& password_form, - const base::string16& generation_field) override; - void CheckSafeBrowsingReputation(const GURL& form_action, const GURL& frame_url) override;
diff --git a/chrome/renderer/autofill/form_classifier_browsertest.cc b/chrome/renderer/autofill/form_classifier_browsertest.cc deleted file mode 100644 index 04f6da41..0000000 --- a/chrome/renderer/autofill/form_classifier_browsertest.cc +++ /dev/null
@@ -1,244 +0,0 @@ -// Copyright 2016 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 "base/macros.h" -#include "base/strings/utf_string_conversions.h" -#include "chrome/test/base/chrome_render_view_test.h" -#include "components/autofill/content/renderer/form_classifier.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/public/platform/web_runtime_features.h" -#include "third_party/blink/public/web/web_document.h" -#include "third_party/blink/public/web/web_form_element.h" -#include "third_party/blink/public/web/web_local_frame.h" -#include "ui/native_theme/native_theme_features.h" - -namespace autofill { - -class FormClassifierTest : public ChromeRenderViewTest { - public: - FormClassifierTest() {} - - void SetUp() override { - blink::WebRuntimeFeatures::EnableOverlayScrollbars( - ui::IsOverlayScrollbarEnabled()); - ChromeRenderViewTest::SetUp(); - } - - void TearDown() override { - LoadHTML(""); - ChromeRenderViewTest::TearDown(); - } - - bool GetGenerationField(std::string* generation_field) { - blink::WebDocument document = GetMainFrame()->GetDocument(); - blink::WebFormElement form = - document.GetElementById("test_form").To<blink::WebFormElement>(); - base::string16 generation_field16; - bool generation_availalbe = - ClassifyFormAndFindGenerationField(form, &generation_field16); - *generation_field = base::UTF16ToUTF8(generation_field16); - return generation_availalbe; - } - - private: - DISALLOW_COPY_AND_ASSIGN(FormClassifierTest); -}; - -const char kSigninFormHTML[] = - "<FORM id = 'test_form'> " - " <SELECT id='account_type'>" - " <OPTION value = 'personal'>" - " <OPTION value = 'corporate'>" - " </SELECT>" - " <INPUT type = 'text' id = 'username'/>" - " <INPUT type = 'password' id = 'password'/>" - " <INPUT type = 'checkbox' id = 'remember_me'/>" - " <INPUT type = 'checkbox' id = 'secure_login'/>" - " <INPUT type = 'submit' id = 'signin' />" - " <INPUT type = 'hidden' id = 'ignore_this' />" - " <INPUT type = 'hidden' id = 'ignore_this_too' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithSeveralTextFieldsFormHTML[] = - "<FORM id = 'test_form'> " - " <INPUT type = 'text' id = 'full_name'/>" - " <INPUT type = 'text' id = 'username'/>" - " <INPUT type = 'password' id = 'password'/>" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithSeveralPasswordFieldsHTML[] = - "<FORM id = 'test_form'> " - " <INPUT type = 'text' id = 'username'/>" - " <INPUT type = 'password' id = 'password'/>" - " <INPUT type = 'password' id = 'confirm_password'/>" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithManyCheckboxesHTML[] = - "<FORM id = 'test_form'> " - " </SELECT>" - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'checkbox' id = 'subscribe_science' />" - " <INPUT type = 'checkbox' id = 'subscribe_music' />" - " <INPUT type = 'checkbox' id = 'subscribe_sport' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithOtherFieldsHTML[] = - "<FORM id = 'test_form'> " - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'color' id = 'account_color' />" - " <INPUT type = 'date' id = 'date_of_birth' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithTextFeatureInInputElementHTML[] = - "<FORM id = 'test_form'> " - " <INPUT type = 'text' id = 'username' class = 'sign-up_field' />" - " <INPUT type = 'password' id = 'password' class = 'sign-up_field' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithTextFeatureInFormTagHTML[] = - "<FORM id = 'test_form' some_attribute='sign_up_form' > " - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSigninFormWithInvisibleFieldsHTML[] = - "<FORM id = 'test_form'> " - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'input' hidden id = 'hidden_field1' />" - " <INPUT type = 'password' hidden id = 'hidden_field2'/>" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithSigninButtonHTML[] = - "<FORM id = 'test_form' >" - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'password' id = 'confirm_password' />" - " <INPUT type = 'submit' id = 'submit' />" - " <INPUT type = 'button' id = 'goto_signin_form' />" - " <INPUT type = 'image' id = 'goto_auth_form' />" - "</FORM>"; - -const char kSomeFormWithoutPasswordFields[] = - "<FORM id = 'test_form' >" - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'text' id = 'fullname' />" - " <INPUT type = 'text' id = 'address' />" - " <INPUT type = 'text' id = 'phone' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kSignupFormWithSigninTextFeatureAndManyFieldsHTML[] = - "<FORM id = 'test_form' class = 'log-on_container'> " - " <INPUT type = 'text' id = 'fullname' />" - " <INPUT type = 'text' id = 'username' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -const char kChangeFormWithTreePasswordFieldsHTML[] = - "<FORM id = 'test_form' >" - " <INPUT type = 'password' id = 'old_password' />" - " <INPUT type = 'password' id = 'password' />" - " <INPUT type = 'password' id = 'confirm_password' />" - " <INPUT type = 'submit' id = 'submit' />" - "</FORM>"; - -TEST_F(FormClassifierTest, SigninForm) { - // Signin form with as many as possible visible elements, - // i.e. if one more text/password/checkbox/other field is added, the form - // will be recognized as a signup form. - LoadHTML(kSigninFormHTML); - std::string generation_field; - EXPECT_FALSE(GetGenerationField(&generation_field)); -} - -TEST_F(FormClassifierTest, SignupFormWithSeveralTextFields) { - LoadHTML(kSignupFormWithSeveralTextFieldsFormHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SignupFormWithSeveralPasswordFieldsHTML) { - LoadHTML(kSignupFormWithSeveralPasswordFieldsHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SignupFormWithManyCheckboxesHTML) { - LoadHTML(kSignupFormWithManyCheckboxesHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SignupFormWithOtherFieldsHTML) { - LoadHTML(kSignupFormWithOtherFieldsHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SignupFormWithTextFeatureInInputElementHTML) { - LoadHTML(kSignupFormWithTextFeatureInInputElementHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SigninFormWithTextFeatureInFormTagHTML) { - LoadHTML(kSignupFormWithTextFeatureInFormTagHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SigninFormWithInvisibleFieldsHTML) { - LoadHTML(kSigninFormWithInvisibleFieldsHTML); - std::string generation_field; - EXPECT_FALSE(GetGenerationField(&generation_field)); -} - -TEST_F(FormClassifierTest, SignupFormWithSigninButtonHTML) { - LoadHTML(kSignupFormWithSigninButtonHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, SomeFormWithoutPasswordFields) { - LoadHTML(kSomeFormWithoutPasswordFields); - std::string generation_field; - EXPECT_FALSE(GetGenerationField(&generation_field)); -} - -TEST_F(FormClassifierTest, SignupFormWithSigninTextFeatureAndManyFieldsHTML) { - // Even if there is signin text feature, the number of fields is more reliable - // signal of signup form. So, this form should be classified as signup. - LoadHTML(kSignupFormWithSigninTextFeatureAndManyFieldsHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -TEST_F(FormClassifierTest, kChangeFormWithTreePasswordFieldsHTML) { - LoadHTML(kChangeFormWithTreePasswordFieldsHTML); - std::string generation_field; - EXPECT_TRUE(GetGenerationField(&generation_field)); - EXPECT_EQ("password", generation_field); -} - -} // namespace autofill
diff --git a/chrome/renderer/autofill/password_generation_agent_browsertest.cc b/chrome/renderer/autofill/password_generation_agent_browsertest.cc index f675a62..ae3f62f 100644 --- a/chrome/renderer/autofill/password_generation_agent_browsertest.cc +++ b/chrome/renderer/autofill/password_generation_agent_browsertest.cc
@@ -126,10 +126,6 @@ fake_pw_client_.reset_called_show_manual_pw_generation_popup(); } - void AllowToRunFormClassifier() { - password_generation_->AllowToRunFormClassifier(); - } - void ExpectFormClassifierVoteReceived( bool received, const base::string16& expected_generation_element) { @@ -816,20 +812,6 @@ EXPECT_EQ(2, fake_driver_.called_show_manual_fallback_for_saving_count()); } -TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSignupForm) { - AllowToRunFormClassifier(); - LoadHTMLWithUserGesture(kAccountCreationFormHTML); - ExpectFormClassifierVoteReceived(true /* vote is expected */, - base::ASCIIToUTF16("first_password")); -} - -TEST_F(PasswordGenerationAgentTest, FormClassifierVotesSigninForm) { - AllowToRunFormClassifier(); - LoadHTMLWithUserGesture(kSigninFormHTML); - ExpectFormClassifierVoteReceived(true /* vote is expected */, - base::string16()); -} - TEST_F(PasswordGenerationAgentTest, FormClassifierDisabled) { LoadHTMLWithUserGesture(kSigninFormHTML); ExpectFormClassifierVoteReceived(false /* vote is not expected */,
diff --git a/chrome/renderer/searchbox/searchbox.cc b/chrome/renderer/searchbox/searchbox.cc index 3b23c5c..90ba39b 100644 --- a/chrome/renderer/searchbox/searchbox.cc +++ b/chrome/renderer/searchbox/searchbox.cc
@@ -328,6 +328,16 @@ embedded_search_service_->AddCustomLink(page_seq_no_, url, title); } +void SearchBox::UpdateCustomLink(InstantRestrictedID link_id, + const GURL& new_url, + const std::string& new_title) { + GURL url = GetURLForMostVisitedItem(link_id); + if (!url.is_valid()) + return; + embedded_search_service_->UpdateCustomLink(page_seq_no_, url, new_url, + new_title); +} + void SearchBox::DeleteCustomLink(InstantRestrictedID most_visited_item_id) { GURL url = GetURLForMostVisitedItem(most_visited_item_id); if (!url.is_valid())
diff --git a/chrome/renderer/searchbox/searchbox.h b/chrome/renderer/searchbox/searchbox.h index 50f0df4..cce8372 100644 --- a/chrome/renderer/searchbox/searchbox.h +++ b/chrome/renderer/searchbox/searchbox.h
@@ -122,6 +122,11 @@ // Sends AddCustomLink to the browser. void AddCustomLink(const GURL& url, const std::string& title); + // Sends UpdateCustomLink to the browser. + void UpdateCustomLink(InstantRestrictedID link_id, + const GURL& new_url, + const std::string& new_title); + // Sends DeleteCustomLink to the browser. void DeleteCustomLink(InstantRestrictedID most_visited_item_id);
diff --git a/chrome/renderer/searchbox/searchbox_extension.cc b/chrome/renderer/searchbox/searchbox_extension.cc index 49ce578..5a64a9e 100644 --- a/chrome/renderer/searchbox/searchbox_extension.cc +++ b/chrome/renderer/searchbox/searchbox_extension.cc
@@ -818,15 +818,19 @@ if (!search_box || !HasOrigin(GURL(chrome::kChromeSearchMostVisitedUrl))) return; + const GURL gurl(url); // If rid is -1, adds a new link. Otherwise, updates the existing link - // indicated by the rid. This will initialize custom links if they have not - // already been initialized. - // TODO(856394): Add support for editing links when edit link API is complete. + // indicated by the rid (empty fields will passed as empty strings). This will + // initialize custom links if they have not already been initialized. if (rid == -1) { - const GURL gurl(url); - if (!gurl.is_valid()) + if (!gurl.is_valid() || title.empty()) return; - search_box->AddCustomLink(std::move(gurl), title); + search_box->AddCustomLink(gurl, title); + } else { + // Check that the URL, if provided, is valid. + if (!url.empty() && !gurl.is_valid()) + return; + search_box->UpdateCustomLink(rid, gurl, title); } }
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index c56047a..b058385 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -911,7 +911,6 @@ "../renderer/autofill/fake_password_manager_client.h", "../renderer/autofill/form_autocomplete_browsertest.cc", "../renderer/autofill/form_autofill_browsertest.cc", - "../renderer/autofill/form_classifier_browsertest.cc", "../renderer/autofill/form_control_click_detection_browsertest.cc", "../renderer/autofill/page_passwords_analyser_browsertest.cc", "../renderer/autofill/password_autofill_agent_browsertest.cc",
diff --git a/chrome/test/data/extensions/api_test/webrequest/test_types.js b/chrome/test/data/extensions/api_test/webrequest/test_types.js index 5790a27..70d2a4cc 100644 --- a/chrome/test/data/extensions/api_test/webrequest/test_types.js +++ b/chrome/test/data/extensions/api_test/webrequest/test_types.js
@@ -129,12 +129,17 @@ }, }], [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', - 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]); - var style = document.createElement('link'); - style.rel = 'stylesheet'; - style.type = 'text/css'; - style.href = getStyleURL(); - document.body.appendChild(style); + 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], + {urls: [getStyleURL()]}); + + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + var style = document.createElement('link'); + style.rel = 'stylesheet'; + style.type = 'text/css'; + style.href = getStyleURL(); + document.body.appendChild(style); + }); }, function typeScript() { @@ -299,9 +304,14 @@ }, }], [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', - 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]); + 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], + {urls: [getFontURL()]}); - new FontFace('allegedly-a-font-family', 'url(' + getFontURL() + ')').load(); + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + new FontFace('allegedly-a-font-family', + 'url(' + getFontURL() + ')').load(); + }); }, function typeWorker() { @@ -377,7 +387,10 @@ 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], getScriptFilter()); - new Worker(getWorkerURL()); + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + new Worker(getWorkerURL()); + }); // TODO(robwu): add tests for SharedWorker and ServiceWorker. // (probably same as above, but using -1 because they are not specific to @@ -465,12 +478,16 @@ }, }], [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', - 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]); + 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], + {urls: [getPingURL()]}); - var a = document.createElement('a'); - a.ping = getPingURL(); - a.href = 'javascript:'; - a.click(); + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + var a = document.createElement('a'); + a.ping = getPingURL(); + a.href = 'javascript:'; + a.click(); + }); }, function typeBeacon() { @@ -553,9 +570,13 @@ }, }], [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', - 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]); + 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], + {urls: [getBeaconURL()]}); - navigator.sendBeacon(getBeaconURL(), 'beacon data'); + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + navigator.sendBeacon(getBeaconURL(), 'beacon data'); + }); }, function sendBeaconInFrameOnUnload() { @@ -644,16 +665,20 @@ }, }], [['onBeforeRequest', 'onBeforeSendHeaders', 'onSendHeaders', - 'onHeadersReceived', 'onResponseStarted', 'onCompleted']]); + 'onHeadersReceived', 'onResponseStarted', 'onCompleted']], + {urls: [getSlowURL()]}); - var frame = document.createElement('iframe'); - document.body.appendChild(frame); - frame.contentWindow.onunload = function() { - console.log('Going to send beacon...'); - var sentBeacon = frame.contentWindow.navigator.sendBeacon(getSlowURL()); - chrome.test.assertTrue(sentBeacon); - }; - frame.remove(); + // Load a page to be sure webRequest listeners are set up. + navigateAndWait(getURL('simpleLoad/a.html'), function() { + var frame = document.createElement('iframe'); + document.body.appendChild(frame); + frame.contentWindow.onunload = function() { + console.log('Going to send beacon...'); + var sentBeacon = frame.contentWindow.navigator.sendBeacon(getSlowURL()); + chrome.test.assertTrue(sentBeacon); + }; + frame.remove(); + }); }, function typeOther_cspreport() {
diff --git a/chrome/test/data/page_load_metrics/use_counter_features.html b/chrome/test/data/page_load_metrics/use_counter_features.html index 533da655..e0235061 100644 --- a/chrome/test/data/page_load_metrics/use_counter_features.html +++ b/chrome/test/data/page_load_metrics/use_counter_features.html
@@ -36,6 +36,6 @@ </script> <img src="http://example.test"/> <audio controls><source src="http://example.test" type="audio/mpeg"></audio> - <video controls><source src="http://example.test" type="video/mp4"></video> + <video controls id="testvideo"><source src="http://example.test" type="video/mp4"></video> </body> </html>
diff --git a/chromecast/browser/extension_request_protocol_handler.cc b/chromecast/browser/extension_request_protocol_handler.cc index d4215595..0c0cb09 100644 --- a/chromecast/browser/extension_request_protocol_handler.cc +++ b/chromecast/browser/extension_request_protocol_handler.cc
@@ -4,12 +4,14 @@ #include "chromecast/browser/extension_request_protocol_handler.h" +#include "base/bind.h" #include "chromecast/common/cast_redirect_manifest_handler.h" #include "content/common/net/url_request_user_data.h" #include "extensions/browser/extension_protocols.h" #include "extensions/browser/extension_system.h" #include "extensions/browser/info_map.h" #include "extensions/common/extension.h" +#include "net/base/upload_data_stream.h" #include "net/url_request/redirect_info.h" #include "net/url_request/url_request_context.h" #include "net/url_request/url_request_job.h" @@ -19,6 +21,72 @@ namespace { +class UploadDataStreamRedirect : public net::UploadDataStream { + public: + UploadDataStreamRedirect(net::UploadDataStream* parent); + ~UploadDataStreamRedirect() override; + + private: + // net::UploadDataStream implementation: + int InitInternal(const net::NetLogWithSource& net_log) override; + int ReadInternal(net::IOBuffer* buf, int buf_len) override; + void ResetInternal() override; + + void PostInit(); + void PostRead(); + + net::UploadDataStream* stream_; + + DISALLOW_COPY_AND_ASSIGN(UploadDataStreamRedirect); +}; + +UploadDataStreamRedirect::UploadDataStreamRedirect( + net::UploadDataStream* parent) + : net::UploadDataStream(parent->is_chunked(), 0), stream_(parent) {} + +UploadDataStreamRedirect::~UploadDataStreamRedirect() {} + +void UploadDataStreamRedirect::PostInit() { + if (!is_chunked()) + SetSize(stream_->size()); +} + +void UploadDataStreamRedirect::PostRead() { + if (is_chunked() && stream_->IsEOF()) + SetIsFinalChunk(); +} + +int UploadDataStreamRedirect::InitInternal( + const net::NetLogWithSource& net_log) { + int ret = stream_->Init(base::BindOnce( + [](UploadDataStreamRedirect* stream, int result) { + stream->PostInit(); + stream->OnInitCompleted(result); + }, + this), + net_log); + if (ret == net::OK) + PostInit(); + return ret; +} + +int UploadDataStreamRedirect::ReadInternal(net::IOBuffer* buf, int buf_len) { + int ret = stream_->Read(buf, buf_len, + base::BindOnce( + [](UploadDataStreamRedirect* stream, int result) { + stream->PostRead(); + stream->OnReadCompleted(result); + }, + this)); + if (ret != net::ERR_IO_PENDING) + PostRead(); + return ret; +} + +void UploadDataStreamRedirect::ResetInternal() { + stream_->Reset(); +} + class CastExtensionURLRequestJob : public net::URLRequestJob, public net::URLRequest::Delegate { public: @@ -93,6 +161,13 @@ // Copy necessary information from the original request. // (|URLRequest| is not copyable.) sub_request_->set_method(request->method()); + sub_request_->SetExtraRequestHeaders(request->extra_request_headers()); + sub_request_->SetReferrer(request->referrer()); + sub_request_->set_referrer_policy(request->referrer_policy()); + if (request->get_upload()) { + sub_request_->set_upload(std::make_unique<UploadDataStreamRedirect>( + const_cast<net::UploadDataStream*>(request->get_upload()))); + } content::URLRequestUserData* user_data = static_cast<content::URLRequestUserData*>( request->GetUserData(content::URLRequestUserData::kUserDataKey));
diff --git a/chromecast/device/bluetooth/OWNERS b/chromecast/device/bluetooth/OWNERS index ff8db018..65f1818 100644 --- a/chromecast/device/bluetooth/OWNERS +++ b/chromecast/device/bluetooth/OWNERS
@@ -1 +1,2 @@ +bcf@chromium.org slan@chromium.org
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc b/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc index 90c98c7..2c3f099 100644 --- a/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc +++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl.cc
@@ -4,9 +4,8 @@ #include "chromecast/device/bluetooth/le/gatt_client_manager_impl.h" -#include <vector> - #include "base/bind.h" +#include "base/logging.h" #include "base/memory/ptr_util.h" #include "base/run_loop.h" #include "chromecast/base/bind_to_task_runner.h" @@ -119,6 +118,18 @@ observers_->Notify(FROM_HERE, &Observer::OnConnectInitated, addr); } +void GattClientManagerImpl::EnqueueReadRemoteRssiRequest( + const bluetooth_v2_shlib::Addr& addr) { + MAKE_SURE_IO_THREAD(EnqueueReadRemoteRssiRequest, addr); + pending_read_remote_rssi_requests_.push_back(addr); + + // Run the request if this is the only request in the queue. Otherwise, it + // will be run when all previous requests complete. + if (pending_read_remote_rssi_requests_.size() == 1) { + RunQueuedReadRemoteRssiRequest(); + } +} + scoped_refptr<base::SingleThreadTaskRunner> GattClientManagerImpl::task_runner() { return io_task_runner_; @@ -141,6 +152,10 @@ connected_devices_.insert(addr); } else { connected_devices_.erase(addr); + pending_read_remote_rssi_requests_.erase( + std::remove(pending_read_remote_rssi_requests_.begin(), + pending_read_remote_rssi_requests_.end(), addr), + pending_read_remote_rssi_requests_.end()); } // We won't declare the device connected until service discovery completes. @@ -220,6 +235,17 @@ auto it = addr_to_device_.find(addr); CHECK_DEVICE_EXISTS_IT(it); it->second->OnReadRemoteRssiComplete(status, rssi); + + if (pending_read_remote_rssi_requests_.empty()) { + NOTREACHED() << "Unexpected call to " << __func__; + } else { + pending_read_remote_rssi_requests_.pop_front(); + } + + // Run the next request if there is one in the queue. + if (!pending_read_remote_rssi_requests_.empty()) { + RunQueuedReadRemoteRssiRequest(); + } } void GattClientManagerImpl::OnMtuChanged(const bluetooth_v2_shlib::Addr& addr, @@ -275,6 +301,28 @@ it->second->GetServicesSync()); } +void GattClientManagerImpl::RunQueuedReadRemoteRssiRequest() { + DCHECK(io_task_runner_->BelongsToCurrentThread()); + DCHECK(!pending_read_remote_rssi_requests_.empty()); + + auto addr = pending_read_remote_rssi_requests_.front(); + while (!gatt_client_->ReadRemoteRssi(addr)) { + // If current request fails, run the next request + LOG(ERROR) << "ReadRemoteRssi failed"; + auto it = addr_to_device_.find(addr); + if (it != addr_to_device_.end()) { + it->second->OnReadRemoteRssiComplete(false, 0); + } + pending_read_remote_rssi_requests_.pop_front(); + + if (pending_read_remote_rssi_requests_.empty()) { + return; + } + + addr = pending_read_remote_rssi_requests_.front(); + } +} + // static void GattClientManagerImpl::FinalizeOnIoThread( std::unique_ptr<base::WeakPtrFactory<GattClientManagerImpl>> weak_factory) {
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h index 2f4719f2..1377b148 100644 --- a/chromecast/device/bluetooth/le/gatt_client_manager_impl.h +++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl.h
@@ -5,6 +5,7 @@ #ifndef CHROMECAST_DEVICE_BLUETOOTH_LE_GATT_CLIENT_MANAGER_IMPL_H_ #define CHROMECAST_DEVICE_BLUETOOTH_LE_GATT_CLIENT_MANAGER_IMPL_H_ +#include <deque> #include <map> #include <set> #include <vector> @@ -42,6 +43,10 @@ void NotifyConnect(const bluetooth_v2_shlib::Addr& addr) override; scoped_refptr<base::SingleThreadTaskRunner> task_runner() override; + // Add a ReadRemoteRssi request to the queue. They can only be executed + // serially. + void EnqueueReadRemoteRssiRequest(const bluetooth_v2_shlib::Addr& addr); + // TODO(bcf): Should be private and passed into objects which need it (e.g. // RemoteDevice, RemoteCharacteristic). bluetooth_v2_shlib::GattClient* gatt_client() const { return gatt_client_; } @@ -84,6 +89,8 @@ const bluetooth_v2_shlib::Addr& addr, const std::vector<bluetooth_v2_shlib::Gatt::Service>& services) override; + void RunQueuedReadRemoteRssiRequest(); + static void FinalizeOnIoThread( std::unique_ptr<base::WeakPtrFactory<GattClientManagerImpl>> weak_factory); @@ -101,6 +108,9 @@ addr_to_device_; std::set<bluetooth_v2_shlib::Addr> connected_devices_; + // Queue for concurrent ReadRemoteRssi requests. + std::deque<bluetooth_v2_shlib::Addr> pending_read_remote_rssi_requests_; + base::WeakPtr<GattClientManagerImpl> weak_this_; std::unique_ptr<base::WeakPtrFactory<GattClientManagerImpl>> weak_factory_; DISALLOW_COPY_AND_ASSIGN(GattClientManagerImpl);
diff --git a/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc b/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc index df6251f..f05b5e1a 100644 --- a/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc +++ b/chromecast/device/bluetooth/le/gatt_client_manager_impl_test.cc
@@ -29,6 +29,10 @@ const bluetooth_v2_shlib::Addr kTestAddr1 = { {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}}; +const bluetooth_v2_shlib::Addr kTestAddr2 = { + {0x10, 0x11, 0x12, 0x13, 0x14, 0x15}}; +const bluetooth_v2_shlib::Addr kTestAddr3 = { + {0x20, 0x21, 0x22, 0x23, 0x24, 0x25}}; class MockGattClientManagerObserver : public GattClientManager::Observer { public: @@ -245,12 +249,43 @@ base::MockCallback<RemoteDevice::RssiCallback> rssi_cb; EXPECT_CALL(*gatt_client_, ReadRemoteRssi(kTestAddr1)).WillOnce(Return(true)); - EXPECT_CALL(rssi_cb, Run(true, kRssi)); device->ReadRemoteRssi(rssi_cb.Get()); + EXPECT_CALL(rssi_cb, Run(true, kRssi)); delegate->OnReadRemoteRssi(kTestAddr1, true /* status */, kRssi); } +TEST_F(GattClientManagerTest, RemoteDeviceReadRssiConcurrent) { + static const int kRssi1 = -34; + static const int kRssi3 = -68; + + bluetooth_v2_shlib::Gatt::Client::Delegate* delegate = + gatt_client_->delegate(); + scoped_refptr<RemoteDevice> device1 = GetDevice(kTestAddr1); + scoped_refptr<RemoteDevice> device2 = GetDevice(kTestAddr2); + scoped_refptr<RemoteDevice> device3 = GetDevice(kTestAddr3); + + base::MockCallback<RemoteDevice::RssiCallback> rssi_cb1; + base::MockCallback<RemoteDevice::RssiCallback> rssi_cb2; + base::MockCallback<RemoteDevice::RssiCallback> rssi_cb3; + + EXPECT_CALL(*gatt_client_, ReadRemoteRssi(kTestAddr1)).WillOnce(Return(true)); + EXPECT_CALL(*gatt_client_, ReadRemoteRssi(kTestAddr2)) + .WillOnce(Return(false)); + EXPECT_CALL(*gatt_client_, ReadRemoteRssi(kTestAddr3)).WillOnce(Return(true)); + + device1->ReadRemoteRssi(rssi_cb1.Get()); + device2->ReadRemoteRssi(rssi_cb2.Get()); + device3->ReadRemoteRssi(rssi_cb3.Get()); + + EXPECT_CALL(rssi_cb1, Run(true, kRssi1)); + EXPECT_CALL(rssi_cb2, Run(false, _)); + EXPECT_CALL(rssi_cb3, Run(true, kRssi3)); + + delegate->OnReadRemoteRssi(kTestAddr1, true, kRssi1); + delegate->OnReadRemoteRssi(kTestAddr3, true, kRssi3); +} + TEST_F(GattClientManagerTest, RemoteDeviceRequestMtu) { static const int kMtu = 512; bluetooth_v2_shlib::Gatt::Client::Delegate* delegate =
diff --git a/chromecast/device/bluetooth/le/remote_device_impl.cc b/chromecast/device/bluetooth/le/remote_device_impl.cc index 7b91b9f..04cb4f5 100644 --- a/chromecast/device/bluetooth/le/remote_device_impl.cc +++ b/chromecast/device/bluetooth/le/remote_device_impl.cc
@@ -135,12 +135,10 @@ LOG(ERROR) << "Read remote RSSI already pending"; EXEC_CB_AND_RET(cb, false, 0); } - if (!gatt_client_manager_->gatt_client()->ReadRemoteRssi(addr_)) { - LOG(ERROR) << __func__ << " failed"; - EXEC_CB_AND_RET(cb, false, 0); - } + rssi_pending_ = true; rssi_cb_ = std::move(cb); + gatt_client_manager_->EnqueueReadRemoteRssiRequest(addr_); } void RemoteDeviceImpl::RequestMtu(int mtu, StatusCallback cb) { @@ -443,7 +441,7 @@ DCHECK(io_task_runner_->BelongsToCurrentThread()); rssi_pending_ = false; if (rssi_cb_) { - std::move(rssi_cb_).Run(true, rssi); + std::move(rssi_cb_).Run(status, rssi); } }
diff --git a/chromecast/graphics/cast_system_gesture_event_handler.cc b/chromecast/graphics/cast_system_gesture_event_handler.cc index 7ca3260..66fbcaf 100644 --- a/chromecast/graphics/cast_system_gesture_event_handler.cc +++ b/chromecast/graphics/cast_system_gesture_event_handler.cc
@@ -184,11 +184,14 @@ VLOG(1) << "side swipe gesture begin @ " << touch_location.ToString(); current_swipe_time_ = base::ElapsedTimer(); - // Stash a copy of the event should we decide to reconstitute it later if we // decide that this isn't in fact a side swipe. StashEvent(*touch_event); + // Avoid corrupt gesture state caused by a missing kGestureScrollEnd event + // as we potentially transition between web views. + root_window_->CleanupGestureState(); + // And then stop the original event from propagating. return ui::EVENT_REWRITE_DISCARD; }
diff --git a/components/arc/BUILD.gn b/components/arc/BUILD.gn index a4216a7d..617e78d 100644 --- a/components/arc/BUILD.gn +++ b/components/arc/BUILD.gn
@@ -284,6 +284,7 @@ "intent_helper/intent_filter_unittest.cc", "intent_helper/link_handler_model_unittest.cc", "metrics/arc_metrics_service_unittest.cc", + "net/arc_net_host_impl_unittest.cc", "power/arc_power_bridge_unittest.cc", "timer/arc_timer_bridge_unittest.cc", "wake_lock/arc_wake_lock_bridge_unittest.cc",
diff --git a/components/arc/arc_prefs.cc b/components/arc/arc_prefs.cc index 71e83b1..9e44f23 100644 --- a/components/arc/arc_prefs.cc +++ b/components/arc/arc_prefs.cc
@@ -12,6 +12,12 @@ namespace arc { namespace prefs { +// A bool preference indicating whether traffic other than the VPN connection +// set via kAlwaysOnVpnPackage should be blackholed. +const char kAlwaysOnVpnLockdown[] = "arc.vpn.always_on.lockdown"; +// A string preference indicating the Android app that will be used for +// "Always On VPN". Should be empty if "Always On VPN" is not enabled. +const char kAlwaysOnVpnPackage[] = "arc.vpn.always_on.vpn_package"; // Stores the user id received from DM Server when enrolling a Play user on an // Active Directory managed device. Used to report to DM Server that the account // is still used. @@ -127,6 +133,8 @@ // Sorted in lexicographical order. registry->RegisterBooleanPref(kVoiceInteractionActivityControlAccepted, false); + registry->RegisterBooleanPref(kAlwaysOnVpnLockdown, false); + registry->RegisterStringPref(kAlwaysOnVpnPackage, std::string()); registry->RegisterBooleanPref(kArcDataRemoveRequested, false); registry->RegisterBooleanPref(kArcEnabled, false); registry->RegisterBooleanPref(kArcInitialSettingsPending, false);
diff --git a/components/arc/arc_prefs.h b/components/arc/arc_prefs.h index 23c8b32..9a43759c 100644 --- a/components/arc/arc_prefs.h +++ b/components/arc/arc_prefs.h
@@ -13,6 +13,8 @@ namespace prefs { // Sorted in lexicographical order. +ARC_EXPORT extern const char kAlwaysOnVpnLockdown[]; +ARC_EXPORT extern const char kAlwaysOnVpnPackage[]; ARC_EXPORT extern const char kArcActiveDirectoryPlayUserId[]; ARC_EXPORT extern const char kArcApps[]; ARC_EXPORT extern const char kArcBackupRestoreEnabled[];
diff --git a/components/arc/common/net.mojom b/components/arc/common/net.mojom index d162a24..c1d51d9 100644 --- a/components/arc/common/net.mojom +++ b/components/arc/common/net.mojom
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -// Next MinVersion: 9 +// Next MinVersion: 10 module arc.mojom; @@ -162,7 +162,7 @@ array<string> domains@8; }; -// Next Method ID: 13 +// Next Method ID: 14 interface NetHost { // Sends a request to get enabled / disabled status of WiFi. GetWifiEnabledState@1() => (bool is_enabled); @@ -209,6 +209,17 @@ // Inform Chrome OS that a VPN is disconnected, reconnecting, or reconnected. [MinVersion=7] AndroidVpnStateChanged@12(ConnectionStateType state); + + // Tells Chrome OS that network traffic should go through a certain VPN + // connection. |vpnPackage| is the package name of the Android VPN app. If + // |lockdown| is true and the VPN connection is down, traffic is blackholed to + // prevent circumventing the VPN connection. This applies to Chrome traffic + // (users 'chronos' and 'debugd'), not other system traffic like the + // update engine. + // TODO(b/111201944): Add Chrome UI to enable the user to escape the lockdown, + // unless the lockdown is dictated via policy. + // Call with empty string as |vpnPackage| to lift the restriction. + [MinVersion=9] SetAlwaysOnVpn@13(string vpnPackage, bool lockdown); }; // Next Method ID: 7
diff --git a/components/arc/net/arc_net_host_impl.cc b/components/arc/net/arc_net_host_impl.cc index aa708cd..2b8d8fd6 100644 --- a/components/arc/net/arc_net_host_impl.cc +++ b/components/arc/net/arc_net_host_impl.cc
@@ -28,6 +28,8 @@ #include "components/arc/arc_bridge_service.h" #include "components/arc/arc_browser_context_keyed_service_factory_base.h" #include "components/arc/arc_features.h" +#include "components/arc/arc_prefs.h" +#include "components/prefs/pref_service.h" #include "components/user_manager/user_manager.h" #include "third_party/cros_system_api/dbus/shill/dbus-constants.h" @@ -359,6 +361,12 @@ return ArcNetHostImplFactory::GetForBrowserContext(context); } +// static +ArcNetHostImpl* ArcNetHostImpl::GetForBrowserContextForTesting( + content::BrowserContext* context) { + return ArcNetHostImplFactory::GetForBrowserContextForTesting(context); +} + ArcNetHostImpl::ArcNetHostImpl(content::BrowserContext* context, ArcBridgeService* bridge_service) : arc_bridge_service_(bridge_service), weak_factory_(this) { @@ -376,6 +384,10 @@ arc_bridge_service_->net()->SetHost(nullptr); } +void ArcNetHostImpl::SetPrefService(PrefService* pref_service) { + pref_service_ = pref_service; +} + void ArcNetHostImpl::OnConnectionReady() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); @@ -930,6 +942,14 @@ base::Bind(&ArcVpnErrorCallback)); } +void ArcNetHostImpl::SetAlwaysOnVpn(const std::string& vpn_package, + bool lockdown) { + // pref_service_ should be set by ArcServiceLauncher. + DCHECK(pref_service_); + pref_service_->SetString(prefs::kAlwaysOnVpnPackage, vpn_package); + pref_service_->SetBoolean(prefs::kAlwaysOnVpnLockdown, lockdown); +} + void ArcNetHostImpl::DisconnectArcVpn() { arc_vpn_service_path_.clear();
diff --git a/components/arc/net/arc_net_host_impl.h b/components/arc/net/arc_net_host_impl.h index fdc133d..e46205ab 100644 --- a/components/arc/net/arc_net_host_impl.h +++ b/components/arc/net/arc_net_host_impl.h
@@ -26,6 +26,8 @@ class BrowserContext; } // namespace content +class PrefService; + namespace arc { class ArcBridgeService; @@ -40,12 +42,16 @@ // Returns singleton instance for the given BrowserContext, // or nullptr if the browser |context| is not allowed to use ARC. static ArcNetHostImpl* GetForBrowserContext(content::BrowserContext* context); + static ArcNetHostImpl* GetForBrowserContextForTesting( + content::BrowserContext* context); // The constructor will register an Observer with ArcBridgeService. ArcNetHostImpl(content::BrowserContext* context, ArcBridgeService* arc_bridge_service); ~ArcNetHostImpl() override; + void SetPrefService(PrefService* pref_service); + // ARC -> Chrome calls: void GetNetworksDeprecated(mojom::GetNetworksRequestType type, @@ -77,6 +83,8 @@ void AndroidVpnStateChanged(mojom::ConnectionStateType state) override; + void SetAlwaysOnVpn(const std::string& vpnPackage, bool lockdown) override; + std::unique_ptr<base::DictionaryValue> TranslateVpnConfigurationToOnc( const mojom::AndroidVpnConfiguration& cfg); @@ -154,6 +162,8 @@ std::string cached_guid_; std::string arc_vpn_service_path_; + // Owned by the user profile whose context was used to initialize |this|. + PrefService* pref_service_ = nullptr; THREAD_CHECKER(thread_checker_); base::WeakPtrFactory<ArcNetHostImpl> weak_factory_;
diff --git a/components/arc/net/arc_net_host_impl_unittest.cc b/components/arc/net/arc_net_host_impl_unittest.cc new file mode 100644 index 0000000..2dab5b41 --- /dev/null +++ b/components/arc/net/arc_net_host_impl_unittest.cc
@@ -0,0 +1,60 @@ +// Copyright 2018 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 "components/arc/net/arc_net_host_impl.h" + +#include <string> + +#include "base/macros.h" +#include "components/arc/arc_prefs.h" +#include "components/arc/arc_service_manager.h" +#include "components/arc/test/test_browser_context.h" +#include "components/prefs/testing_pref_service.h" +#include "content/public/test/test_browser_thread_bundle.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace arc { +namespace { + +class ArcNetHostImplTest : public testing::Test { + protected: + ArcNetHostImplTest() + : arc_service_manager_(std::make_unique<ArcServiceManager>()), + context_(std::make_unique<TestBrowserContext>()), + service_( + ArcNetHostImpl::GetForBrowserContextForTesting(context_.get())) { + arc::prefs::RegisterProfilePrefs(pref_service()->registry()); + service()->SetPrefService(pref_service()); + } + + ~ArcNetHostImplTest() override { service_->Shutdown(); } + + ArcNetHostImpl* service() { return service_; } + TestingPrefServiceSimple* pref_service() { return &pref_service_; } + + private: + content::TestBrowserThreadBundle thread_bundle_; + std::unique_ptr<ArcServiceManager> arc_service_manager_; + TestingPrefServiceSimple pref_service_; + std::unique_ptr<TestBrowserContext> context_; + ArcNetHostImpl* const service_; + + DISALLOW_COPY_AND_ASSIGN(ArcNetHostImplTest); +}; + +TEST_F(ArcNetHostImplTest, SetAlwaysOnVpn_SetPackage) { + EXPECT_EQ(false, pref_service()->GetBoolean(prefs::kAlwaysOnVpnLockdown)); + EXPECT_EQ("", pref_service()->GetString(prefs::kAlwaysOnVpnPackage)); + + const std::string vpn_package = "com.android.vpn"; + const bool lockdown = true; + + service()->SetAlwaysOnVpn(vpn_package, lockdown); + + EXPECT_EQ(lockdown, pref_service()->GetBoolean(prefs::kAlwaysOnVpnLockdown)); + EXPECT_EQ(vpn_package, pref_service()->GetString(prefs::kAlwaysOnVpnPackage)); +} + +} // namespace +} // namespace arc
diff --git a/components/autofill/content/common/autofill_agent.mojom b/components/autofill/content/common/autofill_agent.mojom index 891f2b8..e3fc0fe 100644 --- a/components/autofill/content/common/autofill_agent.mojom +++ b/components/autofill/content/common/autofill_agent.mojom
@@ -122,7 +122,4 @@ // Sent when Autofill manager gets the query response from the Autofill server // and there are fields classified for password generation in the response. FoundFormsEligibleForGeneration(array<PasswordFormGenerationData> forms); - - // Tells the renderer to enable the form classifier. - AllowToRunFormClassifier(); };
diff --git a/components/autofill/content/common/autofill_driver.mojom b/components/autofill/content/common/autofill_driver.mojom index 34be2a1..5f8af515 100644 --- a/components/autofill/content/common/autofill_driver.mojom +++ b/components/autofill/content/common/autofill_driver.mojom
@@ -124,11 +124,6 @@ mojo_base.mojom.String16 typed_username, int32 options, gfx.mojom.RectF bounds); - // Sends the outcome of HTML parsing based form classifier that detects the - // forms where password generation should be available. - SaveGenerationFieldDetectedByClassifier( - PasswordForm password_form, mojo_base.mojom.String16 generation_field); - // Checks the safe browsing reputation of the website where the focused // username/password field is on. CheckSafeBrowsingReputation(
diff --git a/components/autofill/content/renderer/BUILD.gn b/components/autofill/content/renderer/BUILD.gn index 94cc1648..d113256 100644 --- a/components/autofill/content/renderer/BUILD.gn +++ b/components/autofill/content/renderer/BUILD.gn
@@ -10,8 +10,6 @@ "form_autofill_util.h", "form_cache.cc", "form_cache.h", - "form_classifier.cc", - "form_classifier.h", "form_tracker.cc", "form_tracker.h", "html_based_username_detector.cc",
diff --git a/components/autofill/content/renderer/form_classifier.cc b/components/autofill/content/renderer/form_classifier.cc deleted file mode 100644 index 7ab47ad4..0000000 --- a/components/autofill/content/renderer/form_classifier.cc +++ /dev/null
@@ -1,265 +0,0 @@ -// Copyright 2016 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 "components/autofill/content/renderer/form_classifier.h" - -#include <algorithm> - -#include "base/macros.h" -#include "base/strings/string16.h" -#include "base/strings/string_util.h" -#include "components/autofill/content/renderer/form_autofill_util.h" -#include "third_party/blink/public/platform/web_string.h" -#include "third_party/blink/public/platform/web_vector.h" -#include "third_party/blink/public/web/web_form_control_element.h" -#include "third_party/blink/public/web/web_input_element.h" - -using autofill::form_util::WebFormControlElementToFormField; -using blink::WebFormControlElement; -using blink::WebInputElement; -using blink::WebString; -using blink::WebVector; - -namespace autofill { - -namespace { - -// The words that frequently appear in attribute values of signin forms. -const char* const kSigninTextFeatures[] = {"signin", "login", "logon", "auth"}; -constexpr size_t kNumberOfSigninFeatures = arraysize(kSigninTextFeatures); - -// The words that frequently appear in attribute values of signup forms. -const char* const kSignupTextFeatures[] = {"signup", "regist", "creat"}; -constexpr size_t kNumberOfSignupFeatures = arraysize(kSignupTextFeatures); - -// The words that frequently appear in attribute values of captcha elements. -const char* const kCaptchaFeatures[] = {"captcha", "security", "code"}; -constexpr size_t kNumberOfCaptchaFeatures = arraysize(kCaptchaFeatures); - -// Minimal number of input fields to classify form as signup or change password -// form. If at least one of the listed thresholds is reached or exceeded, the -// form is classified as a form where password generation should be available. -constexpr size_t MINIMAL_NUMBER_OF_TEXT_FIELDS = 2; -constexpr size_t MINIMAL_NUMBER_OF_PASSWORD_FIELDS = 2; -constexpr size_t MINIMAL_NUMBER_OF_CHECKBOX_FIELDS = 3; -constexpr size_t MINIMAL_NUMBER_OF_OTHER_FIELDS = 2; - -// Removes some characters from attribute value. -void ClearAttributeValue(std::string* value) { - value->erase(std::remove_if(value->begin(), value->end(), - [](char x) { return x == '-' || x == '_'; }), - value->end()); -} - -// Find |features| in |element|'s attribute values. Returns true if at least one -// text feature was found. -bool FindTextFeaturesForClass(const blink::WebElement& element, - const char* const features[], - size_t number_of_features) { - DCHECK(features); - - for (unsigned i = 0; i < element.AttributeCount(); ++i) { - std::string filtered_value = - base::ToLowerASCII(element.AttributeValue(i).Utf8()); - ClearAttributeValue(&filtered_value); - - if (filtered_value.empty()) - continue; - for (size_t j = 0; j < number_of_features; ++j) { - if (filtered_value.find(features[j]) != std::string::npos) - return true; - } - } - return false; -} - -// Returns true if at least one captcha feature was found in |element|'s -// attribute values. -bool IsCaptchaInput(const blink::WebInputElement& element) { - return FindTextFeaturesForClass(element, kCaptchaFeatures, - kNumberOfCaptchaFeatures); -} - -// Finds <img>'s inside |form| and checks if <img>'s attributes contains captcha -// text features. Returns true, if at least one occurrence was found. -bool FindCaptchaInImgElements(const blink::WebElement& form, - bool ingnore_invisible) { - CR_DEFINE_STATIC_LOCAL(WebString, kImageTag, ("img")); - - blink::WebElementCollection img_elements = - form.GetElementsByHTMLTagName(kImageTag); - for (blink::WebElement element = img_elements.FirstItem(); !element.IsNull(); - element = img_elements.NextItem()) { - if (ingnore_invisible && !form_util::IsWebElementVisible(element)) - continue; - if (FindTextFeaturesForClass(element, kCaptchaFeatures, - kNumberOfCaptchaFeatures)) { - return true; - } - } - return false; -} - -// Finds signin and signup features in |element|'s attribute values. Sets to -// true |found_signin_text_features| or |found_signup_text_features| if -// appropriate features were found. -void FindTextFeaturesInElement(const blink::WebElement& element, - bool* found_signin_text_features, - bool* found_signup_text_features) { - DCHECK(found_signin_text_features); - DCHECK(found_signup_text_features); - - if (!*found_signin_text_features) { - *found_signin_text_features = FindTextFeaturesForClass( - element, kSigninTextFeatures, kNumberOfSigninFeatures); - } - if (!*found_signup_text_features) { - *found_signup_text_features = FindTextFeaturesForClass( - element, kSignupTextFeatures, kNumberOfSignupFeatures); - } -} - -// Returns true if |element| has type "button" or "image". -bool IsButtonOrImageElement(const WebFormControlElement& element) { - CR_DEFINE_STATIC_LOCAL(WebString, kButton, ("button")); - CR_DEFINE_STATIC_LOCAL(WebString, kImage, ("image")); - - return element.FormControlTypeForAutofill() == kButton || - element.FormControlTypeForAutofill() == kImage; -} - -// Returns true if |element| has type "submit". -bool IsSubmitElement(const WebFormControlElement& element) { - CR_DEFINE_STATIC_LOCAL(WebString, kSubmit, ("submit")); - - return element.FormControlTypeForAutofill() == kSubmit; -} - -// Returns true if |element| has type "hidden"; -bool IsHiddenElement(const WebFormControlElement& element) { - CR_DEFINE_STATIC_LOCAL(WebString, kHidden, ("hidden")); - - return element.FormControlTypeForAutofill() == kHidden; -} - -// Returns true if |element| has type "select-multiple" or "select-one". -bool IsSelectElement(const WebFormControlElement& element) { - CR_DEFINE_STATIC_LOCAL(WebString, kSelectOne, ("select-one")); - CR_DEFINE_STATIC_LOCAL(WebString, kSelectMultiple, ("select-multiple")); - - return element.FormControlTypeForAutofill() == kSelectOne || - element.FormControlTypeForAutofill() == kSelectMultiple; -} - -// Return true if |form| contains at least one visible password element. -bool FormContainsVisiblePasswordFields(const blink::WebFormElement& form) { - WebVector<WebFormControlElement> control_elements; - form.GetFormControlElements(control_elements); - for (auto& control_element : control_elements) { - const WebInputElement* input_element = ToWebInputElement(&control_element); - if (!input_element) - continue; - if (input_element->IsPasswordFieldForAutofill() && - form_util::IsWebElementVisible(*input_element)) { - return true; - } - } - return false; -} - -} // namespace - -bool ClassifyFormAndFindGenerationField(const blink::WebFormElement& form, - base::string16* generation_field) { - DCHECK(generation_field); - - if (form.IsNull()) - return false; - - bool ignore_invisible_elements = FormContainsVisiblePasswordFields(form); - - bool found_signin_text_features = false; - bool found_signup_text_features = false; - size_t number_of_text_input_fields = 0; - size_t number_of_password_input_fields = 0; - size_t number_of_checkbox_input_fields = 0; - size_t number_of_other_input_fields = 0; - bool found_captcha = - FindCaptchaInImgElements(form, ignore_invisible_elements); - - FindTextFeaturesInElement(form, &found_signin_text_features, - &found_signup_text_features); - - std::vector<WebInputElement> passwords; - WebVector<WebFormControlElement> control_elements; - form.GetFormControlElements(control_elements); - - for (const WebFormControlElement& control_element : control_elements) { - if (IsHiddenElement(control_element)) - continue; - if (ignore_invisible_elements) { - if (!form_util::IsWebElementVisible(control_element)) - continue; - } - - // If type="button" or "image", skip them, because it might be a link - // to another form. - if (IsButtonOrImageElement(control_element)) - continue; - - FindTextFeaturesInElement(control_element, &found_signin_text_features, - &found_signup_text_features); - - // Since <select> is not WebInputElement, but WebSelectElement, process - // them as a special case. - if (IsSelectElement(control_element)) { - number_of_other_input_fields++; - } else { - const WebInputElement* input_element = - ToWebInputElement(&control_element); - if (!input_element) - continue; - - if (input_element->IsTextField()) { - if (input_element->IsPasswordFieldForAutofill()) { - ++number_of_password_input_fields; - passwords.push_back(*input_element); - } else { - ++number_of_text_input_fields; - found_captcha = found_captcha || IsCaptchaInput(*input_element); - } - } else { // Non-text fields. - if (input_element->IsCheckbox()) - ++number_of_checkbox_input_fields; - else if (!IsSubmitElement(*input_element)) - ++number_of_other_input_fields; - } - } - } - - if (number_of_password_input_fields == 0 || - number_of_password_input_fields > 3) - return false; - - if ((number_of_text_input_fields - found_captcha >= - MINIMAL_NUMBER_OF_TEXT_FIELDS || - number_of_password_input_fields >= MINIMAL_NUMBER_OF_PASSWORD_FIELDS || - number_of_checkbox_input_fields >= MINIMAL_NUMBER_OF_CHECKBOX_FIELDS || - number_of_other_input_fields >= MINIMAL_NUMBER_OF_OTHER_FIELDS) || - (found_signup_text_features && !found_signin_text_features)) { - WebInputElement password_creation_field; - - // TODO(crbug.com/618309): Improve local classifier to distinguish password - // creation and password usage fields on the change password forms. - if (passwords.size() == 3) - password_creation_field = passwords[1]; - else - password_creation_field = passwords[0]; - - *generation_field = password_creation_field.NameForAutofill().Utf16(); - return true; - } - return false; -} -}
diff --git a/components/autofill/content/renderer/form_classifier.h b/components/autofill/content/renderer/form_classifier.h deleted file mode 100644 index 9de893ad..0000000 --- a/components/autofill/content/renderer/form_classifier.h +++ /dev/null
@@ -1,19 +0,0 @@ -// Copyright 2016 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. - -#ifndef COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_CLASSIFIER_H_ -#define COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_CLASSIFIER_H_ - -#include "third_party/blink/public/web/web_form_element.h" - -namespace autofill { - -// Checks if |form| is eligible for password generation. If yes, sets the name -// of the generation field to |generation_field| and returns true. Otherwise, -// returns false (w/o any changes of |generation_field|). -bool ClassifyFormAndFindGenerationField(const blink::WebFormElement& form, - base::string16* generation_field); -} - -#endif // COMPONENTS_AUTOFILL_CONTENT_RENDERER_FORM_CLASSIFIER_H_
diff --git a/components/autofill/content/renderer/password_generation_agent.cc b/components/autofill/content/renderer/password_generation_agent.cc index 36665e7..ec3ef02e 100644 --- a/components/autofill/content/renderer/password_generation_agent.cc +++ b/components/autofill/content/renderer/password_generation_agent.cc
@@ -15,7 +15,6 @@ #include "base/strings/string_number_conversions.h" #include "base/threading/thread_task_runner_handle.h" #include "components/autofill/content/renderer/form_autofill_util.h" -#include "components/autofill/content/renderer/form_classifier.h" #include "components/autofill/content/renderer/password_autofill_agent.h" #include "components/autofill/core/common/autofill_switches.h" #include "components/autofill/core/common/form_data.h" @@ -209,7 +208,6 @@ generation_popup_shown_(false), editing_popup_shown_(false), enabled_(password_generation::IsPasswordGenerationEnabled()), - form_classifier_enabled_(false), mark_generation_element_( base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kShowAutofillSignatures)), @@ -308,21 +306,6 @@ PasswordNoLongerGenerated(); } -void PasswordGenerationAgent::AllowToRunFormClassifier() { - form_classifier_enabled_ = true; -} - -void PasswordGenerationAgent::RunFormClassifierAndSaveVote( - const WebFormElement& web_form, - const PasswordForm& form) { - DCHECK(form_classifier_enabled_); - - base::string16 generation_field; - ClassifyFormAndFindGenerationField(web_form, &generation_field); - GetPasswordManagerDriver()->SaveGenerationFieldDetectedByClassifier( - form, generation_field); -} - void PasswordGenerationAgent::FindPossibleGenerationForm() { if (!enabled_ || !render_frame()) return; @@ -363,8 +346,6 @@ web_frame->GetDocument().All(), nullptr) : form_util::ExtractAutofillableElementsInForm(web_form), &passwords)) { - if (form_classifier_enabled_ && !web_form.IsNull()) - RunFormClassifierAndSaveVote(web_form, *password_form); possible_account_creation_forms_.emplace_back( make_linked_ptr(form.first.release()), std::move(passwords)); }
diff --git a/components/autofill/content/renderer/password_generation_agent.h b/components/autofill/content/renderer/password_generation_agent.h index cf9beef..f69ab035 100644 --- a/components/autofill/content/renderer/password_generation_agent.h +++ b/components/autofill/content/renderer/password_generation_agent.h
@@ -51,9 +51,6 @@ // generation popup at this field. void UserTriggeredGeneratePassword() override; - // Enables the form classifier. - void AllowToRunFormClassifier() override; - // Returns true if the field being changed is one where a generated password // is being offered. Updates the state of the popup if necessary. bool TextDidChangeInTextField(const blink::WebInputElement& element); @@ -219,9 +216,6 @@ // If this feature is enabled. Controlled by Finch. bool enabled_; - // If the form classifier should run. - bool form_classifier_enabled_; - // True iff the generation element should be marked with special HTML // attribute (only for experimental purposes). bool mark_generation_element_;
diff --git a/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc b/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc index c9c75857..f79fac8 100644 --- a/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc +++ b/components/autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc
@@ -71,10 +71,6 @@ void UserModifiedPasswordField() override {} - void SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& password_form, - const base::string16& generation_field) override {} - void CheckSafeBrowsingReputation(const GURL& form_action, const GURL& frame_url) override {}
diff --git a/components/autofill/core/browser/autofill_field.cc b/components/autofill/core/browser/autofill_field.cc index 0d427d70..d846092 100644 --- a/components/autofill/core/browser/autofill_field.cc +++ b/components/autofill/core/browser/autofill_field.cc
@@ -28,7 +28,6 @@ only_fill_when_focused_(false), generation_type_(AutofillUploadContents::Field::NO_GENERATION), generated_password_changed_(false), - form_classifier_outcome_(AutofillUploadContents::Field::NO_OUTCOME), vote_type_(AutofillUploadContents::Field::NO_INFORMATION) {} AutofillField::AutofillField(const FormFieldData& field, @@ -47,7 +46,6 @@ parseable_name_(field.name), generation_type_(AutofillUploadContents::Field::NO_GENERATION), generated_password_changed_(false), - form_classifier_outcome_(AutofillUploadContents::Field::NO_OUTCOME), vote_type_(AutofillUploadContents::Field::NO_INFORMATION) {} AutofillField::~AutofillField() {}
diff --git a/components/autofill/core/browser/autofill_field.h b/components/autofill/core/browser/autofill_field.h index 7b616def..50a98cf 100644 --- a/components/autofill/core/browser/autofill_field.h +++ b/components/autofill/core/browser/autofill_field.h
@@ -133,15 +133,6 @@ return generated_password_changed_; } - void set_form_classifier_outcome( - AutofillUploadContents::Field::FormClassifierOutcome outcome) { - form_classifier_outcome_ = outcome; - } - AutofillUploadContents::Field::FormClassifierOutcome form_classifier_outcome() - const { - return form_classifier_outcome_; - } - void set_vote_type(AutofillUploadContents::Field::VoteType type) { vote_type_ = type; } @@ -220,9 +211,6 @@ // Whether the generated password was changed by user. bool generated_password_changed_; - // The outcome of HTML parsing based form classifier. - AutofillUploadContents::Field::FormClassifierOutcome form_classifier_outcome_; - // The vote type, if the autofill type is USERNAME or any password vote. // Otherwise, the field is ignored. |vote_type_| provides context as to what // triggered the vote.
diff --git a/components/autofill/core/browser/form_structure.cc b/components/autofill/core/browser/form_structure.cc index 85747f24..847da60 100644 --- a/components/autofill/core/browser/form_structure.cc +++ b/components/autofill/core/browser/form_structure.cc
@@ -1606,11 +1606,6 @@ field->generated_password_changed()); } - if (field->form_classifier_outcome()) { - added_field->set_form_classifier_outcome( - field->form_classifier_outcome()); - } - if (field->vote_type()) { added_field->set_vote_type(field->vote_type()); }
diff --git a/components/autofill/core/browser/form_structure_unittest.cc b/components/autofill/core/browser/form_structure_unittest.cc index ee8a503..8d54b05 100644 --- a/components/autofill/core/browser/form_structure_unittest.cc +++ b/components/autofill/core/browser/form_structure_unittest.cc
@@ -2616,11 +2616,6 @@ AutofillUploadContents::Field:: MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM); form_structure->field(i)->set_generated_password_changed(true); - form_structure->field(i)->set_form_classifier_outcome( - AutofillUploadContents::Field::GENERATION_ELEMENT); - } else { - form_structure->field(i)->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); } if (form_structure->field(i)->name == ASCIIToUTF16("username")) { form_structure->field(i)->set_vote_type( @@ -2649,34 +2644,24 @@ AutofillUploadContents::Field* upload_firstname_field = upload.add_field(); test::FillUploadField(upload_firstname_field, 4224610201U, "firstname", "", "given-name", 3U); - upload_firstname_field->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); AutofillUploadContents::Field* upload_lastname_field = upload.add_field(); test::FillUploadField(upload_lastname_field, 2786066110U, "lastname", "", "family-name", 5U); - upload_lastname_field->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); AutofillUploadContents::Field* upload_email_field = upload.add_field(); test::FillUploadField(upload_email_field, 1029417091U, "email", "email", "email", 9U); - upload_email_field->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); AutofillUploadContents::Field* upload_username_field = upload.add_field(); test::FillUploadField(upload_username_field, 239111655U, "username", "text", "email", 86U); - upload_username_field->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); upload_username_field->set_vote_type( AutofillUploadContents::Field::CREDENTIALS_REUSED); AutofillUploadContents::Field* upload_password_field = upload.add_field(); test::FillUploadField(upload_password_field, 2051817934U, "password", "password", "email", 76U); - upload_password_field->set_form_classifier_outcome( - AutofillUploadContents::Field::GENERATION_ELEMENT); upload_password_field->set_generation_type( AutofillUploadContents::Field:: MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM);
diff --git a/components/autofill/core/browser/proto/server.proto b/components/autofill/core/browser/proto/server.proto index b450b855..32878d25 100644 --- a/components/autofill/core/browser/proto/server.proto +++ b/components/autofill/core/browser/proto/server.proto
@@ -99,14 +99,6 @@ // The type of password generation, if it happened. optional PasswordGenerationType generation_type = 17; - enum FormClassifierOutcome { - NO_OUTCOME = 0; - NON_GENERATION_ELEMENT = 1; - GENERATION_ELEMENT = 2; - } - // The outcome of HTML parsing based form classifier. - optional FormClassifierOutcome form_classifier_outcome = 18; - // The value of the class attribute on the field, if present. optional string css_classes = 19;
diff --git a/components/autofill_assistant/browser/BUILD.gn b/components/autofill_assistant/browser/BUILD.gn index 06d56ab..48787b41 100644 --- a/components/autofill_assistant/browser/BUILD.gn +++ b/components/autofill_assistant/browser/BUILD.gn
@@ -13,10 +13,17 @@ static_library("browser") { sources = [ "actions/assistant_action.h", + "actions/assistant_action_delegate.h", "actions/assistant_click_action.cc", "actions/assistant_click_action.h", "actions/assistant_tell_action.cc", "actions/assistant_tell_action.h", + "actions/assistant_use_address_action.cc", + "actions/assistant_use_address_action.h", + "actions/assistant_use_card_action.cc", + "actions/assistant_use_card_action.h", + "actions/assistant_wait_for_dom_action.cc", + "actions/assistant_wait_for_dom_action.h", "assistant_controller.cc", "assistant_controller.h", "assistant_protocol_utils.cc", @@ -27,6 +34,8 @@ "assistant_script_executor_delegate.h", "assistant_service.cc", "assistant_service.h", + "assistant_ui_controller.h", + "assistant_ui_delegate.h", ] public_deps = [
diff --git a/components/autofill_assistant/browser/actions/assistant_action.h b/components/autofill_assistant/browser/actions/assistant_action.h index ef80ba5a..7bc18b9e 100644 --- a/components/autofill_assistant/browser/actions/assistant_action.h +++ b/components/autofill_assistant/browser/actions/assistant_action.h
@@ -8,6 +8,9 @@ #include "base/callback.h" namespace autofill_assistant { + +class AssistantActionDelegate; + // An action that performs a single step of a script on the website. class AssistantAction { public: @@ -15,7 +18,8 @@ // Callback returns whether process action is succeed or not. using ProcessActionCallback = base::OnceCallback<void(bool)>; - virtual void ProcessAction(ProcessActionCallback callback) = 0; + virtual void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) = 0; protected: AssistantAction() = default;
diff --git a/components/autofill_assistant/browser/actions/assistant_action_delegate.h b/components/autofill_assistant/browser/actions/assistant_action_delegate.h new file mode 100644 index 0000000..3c24a375 --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_action_delegate.h
@@ -0,0 +1,21 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_ACTION_DELEGATE_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_ACTION_DELEGATE_H_ + +namespace autofill_assistant { +// Assistant action delegate called when processing assistant actions. +class AssistantActionDelegate { + public: + virtual ~AssistantActionDelegate() = default; + + // Show status message on the assistant bottom bar. + virtual void ShowStatusMessage(const std::string& message) = 0; + + protected: + AssistantActionDelegate() = default; +}; +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_ACTION_DELEGATE_H_
diff --git a/components/autofill_assistant/browser/actions/assistant_click_action.cc b/components/autofill_assistant/browser/actions/assistant_click_action.cc index c8dde06..8af534d4 100644 --- a/components/autofill_assistant/browser/actions/assistant_click_action.cc +++ b/components/autofill_assistant/browser/actions/assistant_click_action.cc
@@ -4,6 +4,8 @@ #include "components/autofill_assistant/browser/actions/assistant_click_action.h" +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" + namespace autofill_assistant { AssistantClickAction::AssistantClickAction( @@ -12,7 +14,8 @@ AssistantClickAction::~AssistantClickAction() {} -void AssistantClickAction::ProcessAction(ProcessActionCallback callback) { +void AssistantClickAction::ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) { NOTIMPLEMENTED(); }
diff --git a/components/autofill_assistant/browser/actions/assistant_click_action.h b/components/autofill_assistant/browser/actions/assistant_click_action.h index 6f5f348..663a10a 100644 --- a/components/autofill_assistant/browser/actions/assistant_click_action.h +++ b/components/autofill_assistant/browser/actions/assistant_click_action.h
@@ -22,7 +22,8 @@ ~AssistantClickAction() override; // Overrides AssistantAction: - void ProcessAction(ProcessActionCallback callback) override; + void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) override; private: std::vector<std::string> target_element_selectors_;
diff --git a/components/autofill_assistant/browser/actions/assistant_tell_action.cc b/components/autofill_assistant/browser/actions/assistant_tell_action.cc index 874b361..ab54192 100644 --- a/components/autofill_assistant/browser/actions/assistant_tell_action.cc +++ b/components/autofill_assistant/browser/actions/assistant_tell_action.cc
@@ -4,6 +4,8 @@ #include "components/autofill_assistant/browser/actions/assistant_tell_action.h" +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" + namespace autofill_assistant { AssistantTellAction::AssistantTellAction(const std::string& message) @@ -11,8 +13,10 @@ AssistantTellAction::~AssistantTellAction() {} -void AssistantTellAction::ProcessAction(ProcessActionCallback callback) { - NOTIMPLEMENTED(); +void AssistantTellAction::ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) { + delegate->ShowStatusMessage(message_); + std::move(callback).Run(true); } } // namespace autofill_assistant. \ No newline at end of file
diff --git a/components/autofill_assistant/browser/actions/assistant_tell_action.h b/components/autofill_assistant/browser/actions/assistant_tell_action.h index ef8afa8..3bcf2ff 100644 --- a/components/autofill_assistant/browser/actions/assistant_tell_action.h +++ b/components/autofill_assistant/browser/actions/assistant_tell_action.h
@@ -20,7 +20,8 @@ ~AssistantTellAction() override; // Overrides AssistantAction: - void ProcessAction(ProcessActionCallback callback) override; + void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) override; private: std::string message_;
diff --git a/components/autofill_assistant/browser/actions/assistant_use_address_action.cc b/components/autofill_assistant/browser/actions/assistant_use_address_action.cc new file mode 100644 index 0000000..25b5f5d --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_use_address_action.cc
@@ -0,0 +1,23 @@ +// Copyright 2018 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 "components/autofill_assistant/browser/actions/assistant_use_address_action.h" + +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" + +namespace autofill_assistant { + +AssistantUseAddressAction::AssistantUseAddressAction( + const std::string& usage_message, + const std::vector<std::string>& selectors) + : usage_message_(usage_message), target_element_selectors_(selectors) {} + +AssistantUseAddressAction::~AssistantUseAddressAction() {} + +void AssistantUseAddressAction::ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) { + NOTIMPLEMENTED(); +} + +} // namespace autofill_assistant.
diff --git a/components/autofill_assistant/browser/actions/assistant_use_address_action.h b/components/autofill_assistant/browser/actions/assistant_use_address_action.h new file mode 100644 index 0000000..1d08034 --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_use_address_action.h
@@ -0,0 +1,38 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_ADDRESS_ACTION_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_ADDRESS_ACTION_H_ + +#include "components/autofill_assistant/browser/actions/assistant_action.h" + +#include <string> +#include <vector> + +#include "base/macros.h" + +namespace autofill_assistant { +// An action to ask user to choose a local address to fill the form. +class AssistantUseAddressAction : public AssistantAction { + public: + // The |usage_message| indicates the usage of the address, like billing + // address or shipping address. The |selectors| specifies an element in the + // form to be filled. + AssistantUseAddressAction(const std::string& usage_message, + const std::vector<std::string>& selectors); + ~AssistantUseAddressAction() override; + + // Overrides AssistantAction: + void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) override; + + private: + std::string usage_message_; + std::vector<std::string> target_element_selectors_; + + DISALLOW_COPY_AND_ASSIGN(AssistantUseAddressAction); +}; + +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_ADDRESS_ACTION_H_
diff --git a/components/autofill_assistant/browser/actions/assistant_use_card_action.cc b/components/autofill_assistant/browser/actions/assistant_use_card_action.cc new file mode 100644 index 0000000..d4952ac --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_use_card_action.cc
@@ -0,0 +1,22 @@ +// Copyright 2018 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 "components/autofill_assistant/browser/actions/assistant_use_card_action.h" + +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" + +namespace autofill_assistant { + +AssistantUseCardAction::AssistantUseCardAction( + const std::vector<std::string>& selectors) + : target_element_selectors_(selectors) {} + +AssistantUseCardAction::~AssistantUseCardAction() {} + +void AssistantUseCardAction::ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) { + NOTIMPLEMENTED(); +} + +} // namespace autofill_assistant.
diff --git a/components/autofill_assistant/browser/actions/assistant_use_card_action.h b/components/autofill_assistant/browser/actions/assistant_use_card_action.h new file mode 100644 index 0000000..b16ea6e --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_use_card_action.h
@@ -0,0 +1,34 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_CARD_ACTION_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_CARD_ACTION_H_ + +#include "components/autofill_assistant/browser/actions/assistant_action.h" + +#include <string> +#include <vector> + +#include "base/macros.h" + +namespace autofill_assistant { +// An action to ask user to choose a local card to fill the form. +class AssistantUseCardAction : public AssistantAction { + public: + // The |selectors| specifies the card number field in the form to be filled. + explicit AssistantUseCardAction(const std::vector<std::string>& selectors); + ~AssistantUseCardAction() override; + + // Overrides AssistantAction: + void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) override; + + private: + std::vector<std::string> target_element_selectors_; + + DISALLOW_COPY_AND_ASSIGN(AssistantUseCardAction); +}; + +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_USE_CARD_ACTION_H_
diff --git a/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.cc b/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.cc new file mode 100644 index 0000000..ebe8bb4f --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.cc
@@ -0,0 +1,24 @@ +// Copyright 2018 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 "components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.h" + +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" + +namespace autofill_assistant { + +AssistantWaitForDomAction::AssistantWaitForDomAction( + int timeout_ms, + const std::vector<std::string>& selectors, + bool for_absence) + : target_element_selectors_(selectors) {} + +AssistantWaitForDomAction::~AssistantWaitForDomAction() {} + +void AssistantWaitForDomAction::ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) { + NOTIMPLEMENTED(); +} + +} // namespace autofill_assistant.
diff --git a/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.h b/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.h new file mode 100644 index 0000000..3ac7c73 --- /dev/null +++ b/components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.h
@@ -0,0 +1,38 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_WAIT_FOR_DOM_ACTION_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_WAIT_FOR_DOM_ACTION_H_ + +#include "components/autofill_assistant/browser/actions/assistant_action.h" + +#include <string> +#include <vector> + +#include "base/macros.h" + +namespace autofill_assistant { +// An action to ask Chrome to wait for a DOM element to process next action. +class AssistantWaitForDomAction : public AssistantAction { + public: + // |timeout_ms| indicates waiting timeout period. |selectors| specifies the + // DOM element to wait. |for_absence| indicates whether waiting for absence of + // the element. + AssistantWaitForDomAction(int timeout_ms, + const std::vector<std::string>& selectors, + bool for_absence); + ~AssistantWaitForDomAction() override; + + // Overrides AssistantAction: + void ProcessAction(AssistantActionDelegate* delegate, + ProcessActionCallback callback) override; + + private: + std::vector<std::string> target_element_selectors_; + + DISALLOW_COPY_AND_ASSIGN(AssistantWaitForDomAction); +}; + +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ACTIONS_ASSISTANT_WAIT_FOR_DOM_ACTION_H_ \ No newline at end of file
diff --git a/components/autofill_assistant/browser/assistant.proto b/components/autofill_assistant/browser/assistant.proto index 98a1056..04ce5148 100644 --- a/components/autofill_assistant/browser/assistant.proto +++ b/components/autofill_assistant/browser/assistant.proto
@@ -46,7 +46,7 @@ } // Initial request to get a script's actions. -message InitialScriptActionRequestProto { +message InitialScriptActionsRequestProto { message QueryProto { required string script_path = 1; optional PolicyType policy = 2; @@ -54,6 +54,12 @@ required QueryProto query = 1; } +// Next request to get a script's actions. +message NextScriptActionsRequestProto { + // The server payload received from the previous response. + required bytes server_payload = 1; +} + // Response of a script's actions. message ActionsResponseProto { // Opaque data that should not be interpreted and must pass this back @@ -71,6 +77,9 @@ oneof action_info { ClickSpecificationProto click_specification = 1; TellSpecificationProto tell_specification = 2; + UseAddressSpecificationProto use_address_specification = 3; + UseCreditCardSpecificationProto use_card_specification = 4; + WaitForDomSpecificationProto wait_for_dom_specification = 5; } } @@ -84,12 +93,46 @@ repeated string selectors = 1; } -// Contains all arguments to perform a click. +// Contain all arguments to perform a click. message ClickSpecificationProto { required ElementReferenceProto element_to_click = 1; } -// Contains a message to tell the user. +// Contain a message to tell the user. message TellSpecificationProto { required string message = 1; } + +// TODO(crbug.com/806868): Handle it better when there is no local address. +// Ask user to fill a form with a local address if there is, otherwise fail this +// action. +message UseAddressSpecificationProto { + // Optional message to show usage of the address, like billing or shipping + // address. + optional string usage = 1; + + // Reference to an element in the form that should be filled. + required ElementReferenceProto form_field_element = 2; +} + +// TODO(crbug.com/806868): Handle it better when there is no local credit card. +// Ask user to fill a form with a local credit card if there is, otherwise fail +// this action. +message UseCreditCardSpecificationProto { + // A reference to the card number field in the form that should be filled. + optional ElementReferenceProto form_field_element = 1; +} + +// Ask Chrome to wait for an element in the DOM. This can be used to only +// proceed to the next action once the page is ready. +message WaitForDomSpecificationProto { + // Fail after waiting this amount of time. + required int32 timeout_ms = 1; + + // The element to wait. + required ElementReferenceProto element = 2; + + // If true, wait for the given element to be absent, otherwise wait for + // existence. + optional bool check_for_absence = 3; +}
diff --git a/components/autofill_assistant/browser/assistant_controller.cc b/components/autofill_assistant/browser/assistant_controller.cc index bc4eb78..62c97ca 100644 --- a/components/autofill_assistant/browser/assistant_controller.cc +++ b/components/autofill_assistant/browser/assistant_controller.cc
@@ -11,18 +11,28 @@ namespace autofill_assistant { // static void AssistantController::CreateAndStartForWebContents( - content::WebContents* web_contents) { - new AssistantController(web_contents); + content::WebContents* web_contents, + std::unique_ptr<AssistantUiController> ui_controller) { + new AssistantController(web_contents, std::move(ui_controller)); } AssistantService* AssistantController::GetAssistantService() { return assistant_service_.get(); } -AssistantController::AssistantController(content::WebContents* web_contents) +AssistantUiController* AssistantController::GetAssistantUiController() { + return assistant_ui_controller_.get(); +} + +AssistantController::AssistantController( + content::WebContents* web_contents, + std::unique_ptr<AssistantUiController> ui_controller) : content::WebContentsObserver(web_contents), + assistant_ui_controller_(std::move(ui_controller)), assistant_service_(std::make_unique<AssistantService>( web_contents->GetBrowserContext())) { + assistant_ui_controller_->SetUiDelegate(this); + assistant_ui_controller_->ShowOverlay(); if (!web_contents->IsLoading()) { GetAssistantScripts(); } @@ -45,11 +55,18 @@ // TODO(crbug.com/806868): Terminate Autofill Assistant. return; } - assistant_scripts_ = AssistantProtocolUtils::ParseAssistantScripts(response); + bool parse_result = AssistantProtocolUtils::ParseAssistantScripts( + response, &assistant_scripts_); + DCHECK(parse_result); // TODO(crbug.com/806868): Present assistant scripts if necessary or auto // start a script. } +void AssistantController::OnClickOverlay() { + assistant_ui_controller_->HideOverlay(); + // TODO(crbug.com/806868): Stop executing scripts. +} + void AssistantController::DidFinishLoad( content::RenderFrameHost* render_frame_host, const GURL& validated_url) {
diff --git a/components/autofill_assistant/browser/assistant_controller.h b/components/autofill_assistant/browser/assistant_controller.h index bdfd56fb..5a9ea6e 100644 --- a/components/autofill_assistant/browser/assistant_controller.h +++ b/components/autofill_assistant/browser/assistant_controller.h
@@ -8,6 +8,8 @@ #include "components/autofill_assistant/browser/assistant_script.h" #include "components/autofill_assistant/browser/assistant_script_executor_delegate.h" #include "components/autofill_assistant/browser/assistant_service.h" +#include "components/autofill_assistant/browser/assistant_ui_controller.h" +#include "components/autofill_assistant/browser/assistant_ui_delegate.h" #include "content/public/browser/web_contents_observer.h" namespace content { @@ -20,25 +22,34 @@ // display, execution and so on. The instance of this object self deletes when // the web contents is being destroyed. class AssistantController : public AssistantScriptExecutorDelegate, + public AssistantUiDelegate, private content::WebContentsObserver { public: - static void CreateAndStartForWebContents(content::WebContents* web_contents); + static void CreateAndStartForWebContents( + content::WebContents* web_contents, + std::unique_ptr<AssistantUiController> ui_controller); // Overrides AssistantScriptExecutorDelegate: AssistantService* GetAssistantService() override; + AssistantUiController* GetAssistantUiController() override; private: - explicit AssistantController(content::WebContents* web_contents); + AssistantController(content::WebContents* web_contents, + std::unique_ptr<AssistantUiController> ui_controller); ~AssistantController() override; void GetAssistantScripts(); void OnGetAssistantScripts(bool result, const std::string& response); + // Overrides content::AssistantUiDelegate: + void OnClickOverlay() override; + // Overrides content::WebContentsObserver: void DidFinishLoad(content::RenderFrameHost* render_frame_host, const GURL& validated_url) override; void WebContentsDestroyed() override; + std::unique_ptr<AssistantUiController> assistant_ui_controller_; std::unique_ptr<AssistantService> assistant_service_; std::map<AssistantScript*, std::unique_ptr<AssistantScript>> assistant_scripts_;
diff --git a/components/autofill_assistant/browser/assistant_protocol_utils.cc b/components/autofill_assistant/browser/assistant_protocol_utils.cc index 7a7f913..76d5a155 100644 --- a/components/autofill_assistant/browser/assistant_protocol_utils.cc +++ b/components/autofill_assistant/browser/assistant_protocol_utils.cc
@@ -7,6 +7,9 @@ #include "base/logging.h" #include "components/autofill_assistant/browser/actions/assistant_click_action.h" #include "components/autofill_assistant/browser/actions/assistant_tell_action.h" +#include "components/autofill_assistant/browser/actions/assistant_use_address_action.h" +#include "components/autofill_assistant/browser/actions/assistant_use_card_action.h" +#include "components/autofill_assistant/browser/actions/assistant_wait_for_dom_action.h" #include "components/autofill_assistant/browser/assistant.pb.h" #include "components/version_info/version_info.h" #include "url/gurl.h" @@ -31,15 +34,17 @@ } // static -AssistantProtocolUtils::AssistantScripts -AssistantProtocolUtils::ParseAssistantScripts(const std::string& response) { +bool AssistantProtocolUtils::ParseAssistantScripts( + const std::string& response, + std::map<AssistantScript*, std::unique_ptr<AssistantScript>>* + assistant_scripts) { DCHECK(!response.empty()); - AssistantScripts scripts; + DCHECK(assistant_scripts); SupportsScriptResponseProto response_proto; if (!response_proto.ParseFromString(response)) { LOG(ERROR) << "Failed to parse getting assistant scripts response."; - return scripts; + return false; } for (const auto& script : response_proto.scripts()) { @@ -50,20 +55,20 @@ auto assistant_script = std::make_unique<AssistantScript>(); assistant_script->name = name; assistant_script->path = script.path(); - scripts[assistant_script.get()] = std::move(assistant_script); + (*assistant_scripts)[assistant_script.get()] = std::move(assistant_script); } - return scripts; + return true; } // static -std::string AssistantProtocolUtils::CreateInitialScriptActionRequest( +std::string AssistantProtocolUtils::CreateInitialScriptActionsRequest( const std::string& script_path) { - InitialScriptActionRequestProto::QueryProto query; + InitialScriptActionsRequestProto::QueryProto query; query.set_script_path(script_path); query.set_policy(PolicyType::SCRIPT); - InitialScriptActionRequestProto initial_request_proto; + InitialScriptActionsRequestProto initial_request_proto; initial_request_proto.set_allocated_query(&query); std::string serialized_initial_request_proto; @@ -74,17 +79,29 @@ } // static -AssistantProtocolUtils::AssistantActions -AssistantProtocolUtils::ParseAssistantActions( +std::string AssistantProtocolUtils::CreateNextScriptActionsRequest( + const std::string& previous_server_payload) { + NextScriptActionsRequestProto request_proto; + request_proto.set_server_payload(previous_server_payload); + + std::string serialized_request_proto; + bool success = request_proto.SerializeToString(&serialized_request_proto); + DCHECK(success); + return serialized_request_proto; +} + +// static +bool AssistantProtocolUtils::ParseAssistantActions( const std::string& response, - std::string* return_server_payload) { + std::string* return_server_payload, + std::vector<std::unique_ptr<AssistantAction>>* assistant_actions) { DCHECK(!response.empty()); - AssistantActions actions; + DCHECK(assistant_actions); ActionsResponseProto response_proto; if (!response_proto.ParseFromString(response)) { LOG(ERROR) << "Failed to parse assistant actions response."; - return actions; + return false; } if (return_server_payload && response_proto.has_server_payload()) { @@ -101,15 +118,60 @@ selectors.emplace_back(selector); } DCHECK(!selectors.empty()); - actions.emplace_back(std::make_unique<AssistantClickAction>(selectors)); + assistant_actions->emplace_back( + std::make_unique<AssistantClickAction>(selectors)); break; } case AssistantActionProto::ActionInfoCase::kTellSpecification: { DCHECK(action.has_tell_specification()); - actions.emplace_back(std::make_unique<AssistantTellAction>( + assistant_actions->emplace_back(std::make_unique<AssistantTellAction>( action.tell_specification().message())); break; } + case AssistantActionProto::ActionInfoCase::kUseAddressSpecification: { + DCHECK(action.has_use_address_specification()); + std::vector<std::string> selectors; + for (const auto& selector : action.use_address_specification() + .form_field_element() + .selectors()) { + selectors.emplace_back(selector); + } + DCHECK(!selectors.empty()); + assistant_actions->emplace_back( + std::make_unique<AssistantUseAddressAction>( + action.use_address_specification().has_usage() + ? action.use_address_specification().usage() + : "", + selectors)); + break; + } + case AssistantActionProto::ActionInfoCase::kUseCardSpecification: { + DCHECK(action.has_use_card_specification()); + std::vector<std::string> selectors; + for (const auto& selector : + action.use_card_specification().form_field_element().selectors()) { + selectors.emplace_back(selector); + } + DCHECK(!selectors.empty()); + assistant_actions->emplace_back( + std::make_unique<AssistantUseCardAction>(selectors)); + break; + } + case AssistantActionProto::ActionInfoCase::kWaitForDomSpecification: { + DCHECK(action.has_wait_for_dom_specification()); + std::vector<std::string> selectors; + for (const auto& selector : + action.wait_for_dom_specification().element().selectors()) { + selectors.emplace_back(selector); + } + DCHECK(!selectors.empty()); + assistant_actions->emplace_back( + std::make_unique<AssistantWaitForDomAction>( + action.wait_for_dom_specification().timeout_ms(), selectors, + action.wait_for_dom_specification().has_check_for_absence() && + action.wait_for_dom_specification().check_for_absence())); + break; + } case AssistantActionProto::ActionInfoCase::ACTION_INFO_NOT_SET: { LOG(ERROR) << "Unknown or unspported assistant action."; break; @@ -117,7 +179,7 @@ } } - return actions; + return true; } } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/assistant_protocol_utils.h b/components/autofill_assistant/browser/assistant_protocol_utils.h index 9968ef3..0bd54ed 100644 --- a/components/autofill_assistant/browser/assistant_protocol_utils.h +++ b/components/autofill_assistant/browser/assistant_protocol_utils.h
@@ -27,18 +27,31 @@ std::map<AssistantScript*, std::unique_ptr<AssistantScript>>; // Parse assistant scripts from the given |response|, which should not be an // empty string. - static AssistantScripts ParseAssistantScripts(const std::string& response); + // Parsed assistant scripts are returned through |assistant_scripts|, which + // should not be nullptr. Return false if parse failed, otherwise return true. + static bool ParseAssistantScripts( + const std::string& response, + std::map<AssistantScript*, std::unique_ptr<AssistantScript>>* + assistant_scripts); // Create initial request to get script actions for the given |script_path|. - static std::string CreateInitialScriptActionRequest( + static std::string CreateInitialScriptActionsRequest( const std::string& script_path); - using AssistantActions = std::vector<std::unique_ptr<AssistantAction>>; + // Create request to get next sequence of actions for a script. + static std::string CreateNextScriptActionsRequest( + const std::string& previous_server_payload); + + // Parse assistant actions from the given |response|, which should not be an + // empty string. // Pass in nullptr for |return_server_payload| to indicate no need to return - // server payload. - static AssistantActions ParseAssistantActions( + // server payload. Parsed assistant actions are returned through + // assistant_actions|, which should not be nullptr. Return false if parse + // failed, otherwise return true. + static bool ParseAssistantActions( const std::string& response, - std::string* return_server_payload); + std::string* return_server_payload, + std::vector<std::unique_ptr<AssistantAction>>* assistant_actions); private: // To avoid instantiate this class by accident.
diff --git a/components/autofill_assistant/browser/assistant_script_executor.cc b/components/autofill_assistant/browser/assistant_script_executor.cc index 33f015c..287d12b 100644 --- a/components/autofill_assistant/browser/assistant_script_executor.cc +++ b/components/autofill_assistant/browser/assistant_script_executor.cc
@@ -7,6 +7,7 @@ #include "base/bind.h" #include "components/autofill_assistant/browser/assistant_protocol_utils.h" #include "components/autofill_assistant/browser/assistant_service.h" +#include "components/autofill_assistant/browser/assistant_ui_controller.h" namespace autofill_assistant { AssistantScriptExecutor::AssistantScriptExecutor( @@ -24,11 +25,15 @@ delegate_->GetAssistantService()->GetAssistantActions( script_->path, - base::BindOnce(&AssistantScriptExecutor::onGetAssistantActions, + base::BindOnce(&AssistantScriptExecutor::OnGetAssistantActions, weak_ptr_factory_.GetWeakPtr())); } -void AssistantScriptExecutor::onGetAssistantActions( +void AssistantScriptExecutor::ShowStatusMessage(const std::string& message) { + delegate_->GetAssistantUiController()->ShowStatusMessage(message); +} + +void AssistantScriptExecutor::OnGetAssistantActions( bool result, const std::string& response) { if (!result) { @@ -37,10 +42,40 @@ } DCHECK(!response.empty()); - actions_ = AssistantProtocolUtils::ParseAssistantActions( - response, &last_server_payload_); - // TODO(crbug.com/806868): Check parsed actions and perform them. - std::move(callback_).Run(true); + bool parse_result = AssistantProtocolUtils::ParseAssistantActions( + response, &last_server_payload_, &actions_); + if (!parse_result) { + std::move(callback_).Run(false); + return; + } + + if (actions_.empty()) { + // Finished executing the script if there are no more actions. + std::move(callback_).Run(true); + } +} + +void AssistantScriptExecutor::ProcessActions(size_t index) { + // Request next sequence of actions after process current sequence of actions. + if (index >= actions_.size()) { + GetNextAssistantActions(); + return; + } + + actions_[index]->ProcessAction( + this, base::BindOnce(&AssistantScriptExecutor::OnProcessedAction, + base::Unretained(this), index)); +} + +void AssistantScriptExecutor::GetNextAssistantActions() {} + +void AssistantScriptExecutor::OnProcessedAction(size_t index, bool status) { + if (!status) { + std::move(callback_).Run(false); + return; + } + + ProcessActions(index++); } } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/assistant_script_executor.h b/components/autofill_assistant/browser/assistant_script_executor.h index 87c48ce..3bec1bc2 100644 --- a/components/autofill_assistant/browser/assistant_script_executor.h +++ b/components/autofill_assistant/browser/assistant_script_executor.h
@@ -7,25 +7,32 @@ #include "base/callback.h" #include "base/memory/weak_ptr.h" -#include "components/autofill_assistant/browser/actions/assistant_click_action.h" +#include "components/autofill_assistant/browser/actions/assistant_action.h" +#include "components/autofill_assistant/browser/actions/assistant_action_delegate.h" #include "components/autofill_assistant/browser/assistant_script.h" #include "components/autofill_assistant/browser/assistant_script_executor_delegate.h" namespace autofill_assistant { // Class to execute an assistant script. -class AssistantScriptExecutor { +class AssistantScriptExecutor : public AssistantActionDelegate { public: // |script| and |delegate| should outlive this object and should not be // nullptr. AssistantScriptExecutor(AssistantScript* script, AssistantScriptExecutorDelegate* delegate); - ~AssistantScriptExecutor(); + ~AssistantScriptExecutor() override; using RunScriptCallback = base::OnceCallback<void(bool)>; void Run(RunScriptCallback callback); + // Override AssistantActionDelegate: + void ShowStatusMessage(const std::string& message) override; + private: - void onGetAssistantActions(bool result, const std::string& response); + void OnGetAssistantActions(bool result, const std::string& response); + void ProcessActions(size_t index); + void GetNextAssistantActions(); + void OnProcessedAction(size_t index, bool status); AssistantScript* script_; AssistantScriptExecutorDelegate* delegate_;
diff --git a/components/autofill_assistant/browser/assistant_script_executor_delegate.h b/components/autofill_assistant/browser/assistant_script_executor_delegate.h index 49d1b69..4de2ec6 100644 --- a/components/autofill_assistant/browser/assistant_script_executor_delegate.h +++ b/components/autofill_assistant/browser/assistant_script_executor_delegate.h
@@ -8,11 +8,14 @@ namespace autofill_assistant { class AssistantService; +class AssistantUiController; class AssistantScriptExecutorDelegate { public: virtual AssistantService* GetAssistantService() = 0; + virtual AssistantUiController* GetAssistantUiController() = 0; + protected: virtual ~AssistantScriptExecutorDelegate() {} };
diff --git a/components/autofill_assistant/browser/assistant_service.cc b/components/autofill_assistant/browser/assistant_service.cc index 824a4f16..e33faef 100644 --- a/components/autofill_assistant/browser/assistant_service.cc +++ b/components/autofill_assistant/browser/assistant_service.cc
@@ -85,7 +85,23 @@ assistant_loader->callback = std::move(callback); assistant_loader->loader = CreateAndStartLoader( assistant_script_action_server_url_, - AssistantProtocolUtils::CreateInitialScriptActionRequest(script_path), + AssistantProtocolUtils::CreateInitialScriptActionsRequest(script_path), + assistant_loader.get()); + assistant_loaders_[assistant_loader.get()] = std::move(assistant_loader); +} + +void AssistantService::GetNextAssistantActions( + const std::string& previous_server_payload, + ResponseCallback callback) { + DCHECK(!previous_server_payload.empty()); + + std::unique_ptr<AssistantLoader> assistant_loader = + std::make_unique<AssistantLoader>(); + assistant_loader->callback = std::move(callback); + assistant_loader->loader = CreateAndStartLoader( + assistant_script_action_server_url_, + AssistantProtocolUtils::CreateNextScriptActionsRequest( + previous_server_payload), assistant_loader.get()); assistant_loaders_[assistant_loader.get()] = std::move(assistant_loader); }
diff --git a/components/autofill_assistant/browser/assistant_service.h b/components/autofill_assistant/browser/assistant_service.h index 50dd7577..48edb44 100644 --- a/components/autofill_assistant/browser/assistant_service.h +++ b/components/autofill_assistant/browser/assistant_service.h
@@ -33,6 +33,11 @@ void GetAssistantActions(const std::string& script_path, ResponseCallback callback); + // Get next sequence of assistant actions according to server payload in + // previous reponse. + void GetNextAssistantActions(const std::string& previous_server_payload, + ResponseCallback callback); + private: // Struct to store assistant scripts and actions request. struct AssistantLoader {
diff --git a/components/autofill_assistant/browser/assistant_ui_controller.h b/components/autofill_assistant/browser/assistant_ui_controller.h new file mode 100644 index 0000000..e8674950 --- /dev/null +++ b/components/autofill_assistant/browser/assistant_ui_controller.h
@@ -0,0 +1,32 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_CONTROLLER_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_CONTROLLER_H_ + +#include "components/autofill_assistant/browser/assistant_ui_delegate.h" + +namespace autofill_assistant { +// Controller to control autofill assistant UI. +class AssistantUiController { + public: + virtual ~AssistantUiController() = default; + + // Set assistant UI delegate called by assistant UI controller. + virtual void SetUiDelegate(AssistantUiDelegate* ui_delegate) = 0; + + // Show status message on the bottom bar. + virtual void ShowStatusMessage(const std::string& message) = 0; + + // Show the overlay. + virtual void ShowOverlay() = 0; + + // Hide the overlay. + virtual void HideOverlay() = 0; + + protected: + AssistantUiController() = default; +}; +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_CONTROLLER_H_ \ No newline at end of file
diff --git a/components/autofill_assistant/browser/assistant_ui_delegate.h b/components/autofill_assistant/browser/assistant_ui_delegate.h new file mode 100644 index 0000000..57b9da0 --- /dev/null +++ b/components/autofill_assistant/browser/assistant_ui_delegate.h
@@ -0,0 +1,21 @@ +// Copyright 2018 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. + +#ifndef COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_DELEGATE_H_ +#define COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_DELEGATE_H_ + +namespace autofill_assistant { +// UI delegate called by assistant UI. +class AssistantUiDelegate { + public: + virtual ~AssistantUiDelegate() = default; + + // Called when the overlay has been clicked by user. + virtual void OnClickOverlay() = 0; + + protected: + AssistantUiDelegate() = default; +}; +} // namespace autofill_assistant. +#endif // COMPONENTS_AUTOFILL_ASSISTANT_BROWSER_ASSISTANT_UI_DELEGATE_H_ \ No newline at end of file
diff --git a/components/download/database/in_progress/in_progress_cache_impl.cc b/components/download/database/in_progress/in_progress_cache_impl.cc index a02ec939..6a662ab 100644 --- a/components/download/database/in_progress/in_progress_cache_impl.cc +++ b/components/download/database/in_progress/in_progress_cache_impl.cc
@@ -160,9 +160,10 @@ if (!entries.empty()) { if (!entries_.ParseFromArray(entries.data(), entries.size())) { // TODO(crbug.com/778425): Get UMA for errors. + // If the data cannot be parsed, just call the callback and the cache + // will be overwritten by the next write. LOG(ERROR) << "Could not read download entries from file " << "because there was a parse failure."; - return; } }
diff --git a/components/nacl/loader/BUILD.gn b/components/nacl/loader/BUILD.gn index cdf2ffa..a3096b7 100644 --- a/components/nacl/loader/BUILD.gn +++ b/components/nacl/loader/BUILD.gn
@@ -2,6 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import("//build/config/c++/c++.gni") import("//build/config/compiler/compiler.gni") import("//build/config/nacl/config.gni") import("//components/nacl/features.gni") @@ -161,8 +162,8 @@ # The only symbols that nacl_helper needs to export are those specified by # its direct dependencies, so -rdynamic would only serve to unnecessarily # increase the binary size. - if (is_desktop_linux) { - configs -= [ "//build/config/linux:export_dynamic" ] + if (!export_libcxxabi_from_executables) { + configs -= [ "//build/config/compiler:export_dynamic" ] } data_deps = [
diff --git a/components/ntp_tiles/custom_links_manager.h b/components/ntp_tiles/custom_links_manager.h index fd06622..cdbfa07 100644 --- a/components/ntp_tiles/custom_links_manager.h +++ b/components/ntp_tiles/custom_links_manager.h
@@ -50,6 +50,13 @@ // custom links is not initialized, |url| is invalid, we're at the maximum // number of links, or |url| already exists in the list. virtual bool AddLink(const GURL& url, const base::string16& title) = 0; + // Updates the URL and/or title of the link specified by |url|. Returns + // false and does nothing if custom links is not initialized, either URL is + // invalid, |url| does not exist in the list, |new_url| already exists in the + // list, or both parameters are empty. + virtual bool UpdateLink(const GURL& url, + const GURL& new_url, + const base::string16& new_title) = 0; // Deletes the link with the specified |url|. Returns false and does nothing // if custom links is not initialized, |url| is invalid, or |url| does not // exist in the list.
diff --git a/components/ntp_tiles/custom_links_manager_impl.cc b/components/ntp_tiles/custom_links_manager_impl.cc index 7eaaea0..8dcec8f 100644 --- a/components/ntp_tiles/custom_links_manager_impl.cc +++ b/components/ntp_tiles/custom_links_manager_impl.cc
@@ -70,6 +70,34 @@ return true; } +bool CustomLinksManagerImpl::UpdateLink(const GURL& url, + const GURL& new_url, + const base::string16& new_title) { + if (!IsInitialized() || !url.is_valid() || + (new_url.is_empty() && new_title.empty())) { + return false; + } + + auto it = FindLinkWithUrl(url); + if (it == current_links_.end()) + return false; + + if (!new_url.is_empty()) { + // Do not update if |new_url| already exists in the list. + if (!new_url.is_valid() || + FindLinkWithUrl(new_url) != current_links_.end()) { + return false; + } + it->url = new_url; + } + + if (!new_title.empty()) + it->title = new_title; + + store_.StoreLinks(current_links_); + return true; +} + bool CustomLinksManagerImpl::DeleteLink(const GURL& url) { if (!IsInitialized() || !url.is_valid()) return false;
diff --git a/components/ntp_tiles/custom_links_manager_impl.h b/components/ntp_tiles/custom_links_manager_impl.h index 8335f109..ff3570ba 100644 --- a/components/ntp_tiles/custom_links_manager_impl.h +++ b/components/ntp_tiles/custom_links_manager_impl.h
@@ -39,6 +39,9 @@ const std::vector<Link>& GetLinks() const override; bool AddLink(const GURL& url, const base::string16& title) override; + bool UpdateLink(const GURL& url, + const GURL& new_url, + const base::string16& new_title) override; bool DeleteLink(const GURL& url) override; bool UndoDeleteLink() override;
diff --git a/components/ntp_tiles/custom_links_manager_impl_unittest.cc b/components/ntp_tiles/custom_links_manager_impl_unittest.cc index 4c9e2d0..5ab41bfd 100644 --- a/components/ntp_tiles/custom_links_manager_impl_unittest.cc +++ b/components/ntp_tiles/custom_links_manager_impl_unittest.cc
@@ -183,6 +183,83 @@ EXPECT_EQ(initial_links, custom_links_->GetLinks()); } +TEST_F(CustomLinksManagerImplTest, UpdateLink) { + NTPTilesVector initial_tiles = FillTestTiles(kTestCase1); + std::vector<CustomLinksManager::Link> initial_links = + FillTestLinks(kTestCase1); + std::vector<CustomLinksManager::Link> links_after_update_url(initial_links); + links_after_update_url[0].url = GURL(kTestUrl); + std::vector<CustomLinksManager::Link> links_after_update_title( + links_after_update_url); + links_after_update_title[0].title = base::UTF8ToUTF16(kTestTitle); + + // Initialize. + ASSERT_TRUE(custom_links_->Initialize(initial_tiles)); + ASSERT_EQ(initial_links, custom_links_->GetLinks()); + + // Update the link's URL. + EXPECT_TRUE(custom_links_->UpdateLink(GURL(kTestCase1[0].url), GURL(kTestUrl), + base::string16())); + EXPECT_EQ(links_after_update_url, custom_links_->GetLinks()); + + // Update the link's title. + EXPECT_TRUE(custom_links_->UpdateLink(GURL(kTestUrl), GURL(), + base::UTF8ToUTF16(kTestTitle))); + EXPECT_EQ(links_after_update_title, custom_links_->GetLinks()); + + // Update the link's URL and title. + EXPECT_TRUE( + custom_links_->UpdateLink(GURL(kTestUrl), GURL(kTestCase1[0].url), + base::UTF8ToUTF16(kTestCase1[0].title))); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); +} + +TEST_F(CustomLinksManagerImplTest, UpdateLinkWithInvalidParams) { + const GURL kInvalidUrl = GURL("test"); + NTPTilesVector initial_tiles = FillTestTiles(kTestCase1); + std::vector<CustomLinksManager::Link> initial_links = + FillTestLinks(kTestCase1); + + // Initialize. + ASSERT_TRUE(custom_links_->Initialize(initial_tiles)); + ASSERT_EQ(initial_links, custom_links_->GetLinks()); + + // Try to update a link that does not exist. This should fail and not modify + // the list. + EXPECT_FALSE(custom_links_->UpdateLink(GURL(kTestUrl), GURL(), + base::UTF8ToUTF16(kTestTitle))); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); + + // Try to pass empty params. This should fail and not modify the list. + EXPECT_FALSE(custom_links_->UpdateLink(GURL(kTestCase1[0].url), GURL(), + base::string16())); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); + + // Try to pass an invalid URL. This should fail and not modify the list. + EXPECT_FALSE(custom_links_->UpdateLink(kInvalidUrl, GURL(), + base::UTF8ToUTF16(kTestTitle))); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); + EXPECT_FALSE(custom_links_->UpdateLink(GURL(kTestCase1[0].url), kInvalidUrl, + base::string16())); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); +} + +TEST_F(CustomLinksManagerImplTest, UpdateLinkWhenUrlAlreadyExists) { + NTPTilesVector initial_tiles = FillTestTiles(kTestCase2); + std::vector<CustomLinksManager::Link> initial_links = + FillTestLinks(kTestCase2); + + // Initialize. + ASSERT_TRUE(custom_links_->Initialize(initial_tiles)); + ASSERT_EQ(initial_links, custom_links_->GetLinks()); + + // Try to update a link with a URL that exists in the list. This should fail + // and not modify the list. + EXPECT_FALSE(custom_links_->UpdateLink( + GURL(kTestCase2[0].url), GURL(kTestCase2[1].url), base::string16())); + EXPECT_EQ(initial_links, custom_links_->GetLinks()); +} + TEST_F(CustomLinksManagerImplTest, DeleteLink) { NTPTilesVector initial_tiles; AddTile(&initial_tiles, kTestUrl, kTestTitle);
diff --git a/components/ntp_tiles/most_visited_sites.cc b/components/ntp_tiles/most_visited_sites.cc index 644b5213..9be64496 100644 --- a/components/ntp_tiles/most_visited_sites.cc +++ b/components/ntp_tiles/most_visited_sites.cc
@@ -239,6 +239,16 @@ BuildCurrentTiles(); } +void MostVisitedSites::UpdateCustomLink(const GURL& url, + const GURL& new_url, + const base::string16& new_title) { + if (!custom_links_) + return; + + if (custom_links_->UpdateLink(url, new_url, new_title)) + BuildCurrentTiles(); +} + void MostVisitedSites::DeleteCustomLink(const GURL& url) { if (!custom_links_) return;
diff --git a/components/ntp_tiles/most_visited_sites.h b/components/ntp_tiles/most_visited_sites.h index da230db..a1f3672 100644 --- a/components/ntp_tiles/most_visited_sites.h +++ b/components/ntp_tiles/most_visited_sites.h
@@ -171,6 +171,12 @@ // Adds a custom link. If the number of current links is maxed, does nothing. // Custom links must be enabled. void AddCustomLink(const GURL& url, const base::string16& title); + // Updates the URL and/or title of the custom link specified by |url|. If + // |url| does not exist or |new_url| already exists in the custom link list, + // does nothing. Custom links must be enabled. + void UpdateCustomLink(const GURL& url, + const GURL& new_url, + const base::string16& new_title); // Deletes the custom link with the specified |url|. If |url| does not exist // in the custom link list, does nothing. Custom links must be enabled. void DeleteCustomLink(const GURL& url);
diff --git a/components/ntp_tiles/most_visited_sites_unittest.cc b/components/ntp_tiles/most_visited_sites_unittest.cc index 9bf6b1b..a697864 100644 --- a/components/ntp_tiles/most_visited_sites_unittest.cc +++ b/components/ntp_tiles/most_visited_sites_unittest.cc
@@ -272,6 +272,10 @@ MOCK_CONST_METHOD0(IsInitialized, bool()); MOCK_CONST_METHOD0(GetLinks, const std::vector<CustomLinksManager::Link>&()); MOCK_METHOD2(AddLink, bool(const GURL& url, const base::string16& title)); + MOCK_METHOD3(UpdateLink, + bool(const GURL& url, + const GURL& new_url, + const base::string16& new_title)); MOCK_METHOD1(DeleteLink, bool(const GURL& url)); MOCK_METHOD0(UndoDeleteLink, bool()); };
diff --git a/components/omnibox/browser/search_provider.cc b/components/omnibox/browser/search_provider.cc index 2a19a421..834de6f 100644 --- a/components/omnibox/browser/search_provider.cc +++ b/components/omnibox/browser/search_provider.cc
@@ -892,8 +892,14 @@ search_term_args.prefetch_query_type = base::UTF16ToUTF8(prefetch_data_.query_type); } + + // If the request is from omnibox focus, send empty search term args. The + // purpose of such a request is to signal the server to warm up; no info + // is required. GURL suggest_url(template_url->suggestions_url_ref().ReplaceSearchTerms( - search_term_args, + input.from_omnibox_focus() + ? TemplateURLRef::SearchTermsArgs(base::string16()) + : search_term_args, client()->GetTemplateURLService()->search_terms_data())); if (!suggest_url.is_valid()) return nullptr;
diff --git a/components/password_manager/content/browser/content_password_manager_driver.cc b/components/password_manager/content/browser/content_password_manager_driver.cc index 232702f..ddd9ca6c 100644 --- a/components/password_manager/content/browser/content_password_manager_driver.cc +++ b/components/password_manager/content/browser/content_password_manager_driver.cc
@@ -157,10 +157,6 @@ client_->GetLogManager()->IsLoggingActive()); } -void ContentPasswordManagerDriver::AllowToRunFormClassifier() { - GetPasswordGenerationAgent()->AllowToRunFormClassifier(); -} - autofill::AutofillDriver* ContentPasswordManagerDriver::GetAutofillDriver() { return autofill::ContentAutofillDriver::GetForRenderFrameHost( render_frame_host_);
diff --git a/components/password_manager/content/browser/content_password_manager_driver.h b/components/password_manager/content/browser/content_password_manager_driver.h index d2507515..6e85cdc 100644 --- a/components/password_manager/content/browser/content_password_manager_driver.h +++ b/components/password_manager/content/browser/content_password_manager_driver.h
@@ -74,7 +74,6 @@ PasswordManager* GetPasswordManager() override; PasswordAutofillManager* GetPasswordAutofillManager() override; void SendLoggingAvailability() override; - void AllowToRunFormClassifier() override; autofill::AutofillDriver* GetAutofillDriver() override; bool IsMainFrame() const override;
diff --git a/components/password_manager/core/browser/browser_save_password_progress_logger.cc b/components/password_manager/core/browser/browser_save_password_progress_logger.cc index 7b02a6a..86a54bd 100644 --- a/components/password_manager/core/browser/browser_save_password_progress_logger.cc +++ b/components/password_manager/core/browser/browser_save_password_progress_logger.cc
@@ -55,20 +55,6 @@ return std::string(); } -std::string ClassifierOutcomeToString( - AutofillUploadContents::Field::FormClassifierOutcome outcome) { - switch (outcome) { - case AutofillUploadContents::Field::NO_OUTCOME: - return std::string(); - case AutofillUploadContents::Field::NON_GENERATION_ELEMENT: - return "Non generation element"; - case AutofillUploadContents::Field::GENERATION_ELEMENT: - return "Generation element"; - } - NOTREACHED(); - return std::string(); -} - std::string VoteTypeToString( AutofillUploadContents::Field::VoteType vote_type) { switch (vote_type) { @@ -200,11 +186,6 @@ if (!generation.empty()) field_info += ", GENERATION_EVENT: " + generation; - std::string classifier_outcome = - ClassifierOutcomeToString(field->form_classifier_outcome()); - if (!classifier_outcome.empty()) - field_info += ", CLIENT_SIDE_CLASSIFIER: " + classifier_outcome; - result += field_info + "\n"; }
diff --git a/components/password_manager/core/browser/browser_save_password_progress_logger_unittest.cc b/components/password_manager/core/browser/browser_save_password_progress_logger_unittest.cc index 07c6a9c..a806a0f 100644 --- a/components/password_manager/core/browser/browser_save_password_progress_logger_unittest.cc +++ b/components/password_manager/core/browser/browser_save_password_progress_logger_unittest.cc
@@ -88,8 +88,6 @@ form_structure.field(0)->set_generation_type( autofill::AutofillUploadContents::Field:: MANUALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM); - form_structure.field(0)->set_form_classifier_outcome( - autofill::AutofillUploadContents::Field::GENERATION_ELEMENT); // Add a server prediction for the text field. form_structure.field(1)->set_server_type(autofill::EMAIL_ADDRESS); @@ -106,8 +104,7 @@ "password: 2051817934, type=password, renderer_id = 10, " "autocomplete=new-password, VOTE: " "NEW_PASSWORD, GENERATION_EVENT: " - "Manual generation on sign-up, CLIENT_SIDE_CLASSIFIER: Generation " - "element")); + "Manual generation on sign-up")); EXPECT_TRUE( logger.LogsContainSubstring("email: 420638584, type=text, renderer_id = " "42, SERVER_PREDICTION: EMAIL_ADDRESS"));
diff --git a/components/password_manager/core/browser/new_password_form_manager.cc b/components/password_manager/core/browser/new_password_form_manager.cc index 184be713..cee460a6 100644 --- a/components/password_manager/core/browser/new_password_form_manager.cc +++ b/components/password_manager/core/browser/new_password_form_manager.cc
@@ -547,8 +547,11 @@ SetUserAction(UserAction::kOverrideUsernameAndPassword); // TODO(https://crbug.com/831123): Replace parsing of the observed form with // usage of already parsed submitted form. - pending_credentials_ = *ParseFormAndMakeLogging( + std::unique_ptr<PasswordForm> parsed_observed_form = ParseFormAndMakeLogging( client_, observed_form_, predictions_, FormParsingMode::FILLING); + if (!parsed_observed_form) + return; + pending_credentials_ = *parsed_observed_form; pending_credentials_.username_element = submitted_password_form.username_element; pending_credentials_.username_value = submitted_password_form.username_value;
diff --git a/components/password_manager/core/browser/new_password_form_manager_unittest.cc b/components/password_manager/core/browser/new_password_form_manager_unittest.cc index daad122..a4b8a58 100644 --- a/components/password_manager/core/browser/new_password_form_manager_unittest.cc +++ b/components/password_manager/core/browser/new_password_form_manager_unittest.cc
@@ -31,6 +31,11 @@ namespace password_manager { namespace { + +// Indices of username and password fields in the observed form. +const int kUsernameFieldIndex = 1; +const int kPasswordFieldIndex = 2; + class MockPasswordManagerDriver : public StubPasswordManagerDriver { public: MockPasswordManagerDriver() {} @@ -337,8 +342,8 @@ fetcher.SetNonFederated({}, 0u); FormData submitted_form = observed_form_; - submitted_form.fields[1].value = ASCIIToUTF16("user1"); - submitted_form.fields[2].value = ASCIIToUTF16("pw1"); + submitted_form.fields[kUsernameFieldIndex].value = ASCIIToUTF16("user1"); + submitted_form.fields[kPasswordFieldIndex].value = ASCIIToUTF16("pw1"); PasswordForm expected = parsed_form_; expected.username_value = ASCIIToUTF16("user1"); @@ -362,8 +367,8 @@ FormData submitted_form = observed_form_; base::string16 username = saved_match_.username_value + ASCIIToUTF16("1"); base::string16 password = saved_match_.password_value + ASCIIToUTF16("1"); - submitted_form.fields[1].value = username; - submitted_form.fields[2].value = password; + submitted_form.fields[kUsernameFieldIndex].value = username; + submitted_form.fields[kPasswordFieldIndex].value = password; PasswordForm expected = parsed_form_; expected.username_value = username; expected.password_value = password; @@ -384,8 +389,10 @@ fetcher.SetNonFederated({&saved_match_}, 0u); FormData submitted_form = observed_form_; - submitted_form.fields[1].value = saved_match_.username_value; - submitted_form.fields[2].value = saved_match_.password_value; + submitted_form.fields[kUsernameFieldIndex].value = + saved_match_.username_value; + submitted_form.fields[kPasswordFieldIndex].value = + saved_match_.password_value; EXPECT_TRUE( form_manager.SetSubmittedFormIfIsManaged(submitted_form, &driver_)); CheckPendingCredentials(/* expected */ saved_match_, @@ -409,8 +416,10 @@ fetcher.SetNonFederated({&saved_match_}, 0u); FormData submitted_form = observed_form_; - submitted_form.fields[1].value = saved_match_.username_value; - submitted_form.fields[2].value = saved_match_.password_value; + submitted_form.fields[kUsernameFieldIndex].value = + saved_match_.username_value; + submitted_form.fields[kPasswordFieldIndex].value = + saved_match_.password_value; EXPECT_TRUE( form_manager.SetSubmittedFormIfIsManaged(submitted_form, &driver_)); @@ -431,8 +440,9 @@ expected.password_value += ASCIIToUTF16("1"); FormData submitted_form = observed_form_; - submitted_form.fields[1].value = saved_match_.username_value; - submitted_form.fields[2].value = expected.password_value; + submitted_form.fields[kUsernameFieldIndex].value = + saved_match_.username_value; + submitted_form.fields[kPasswordFieldIndex].value = expected.password_value; EXPECT_TRUE( form_manager.SetSubmittedFormIfIsManaged(submitted_form, &driver_)); CheckPendingCredentials(expected, form_manager.GetPendingCredentials()); @@ -487,4 +497,25 @@ CheckPendingCredentials(expected, form_manager.GetPendingCredentials()); } +// Tests that there is no crash even when the observed form is a not password +// form and the submitted form is password form. +TEST_F(NewPasswordFormManagerTest, NoCrashOnNonPasswordForm) { + TestMockTimeTaskRunner::ScopedContext scoped_context(task_runner_.get()); + FakeFormFetcher fetcher; + fetcher.Fetch(); + FormData form_without_password_fields = observed_form_; + // Remove the password field. + form_without_password_fields.fields.resize(kPasswordFieldIndex); + NewPasswordFormManager form_manager(&client_, driver_.AsWeakPtr(), + form_without_password_fields, &fetcher); + fetcher.SetNonFederated({}, 0u); + + FormData submitted_form = observed_form_; + submitted_form.fields[kUsernameFieldIndex].value = ASCIIToUTF16("username"); + submitted_form.fields[kPasswordFieldIndex].value = ASCIIToUTF16("password"); + + // Expect no crash. + form_manager.SetSubmittedFormIfIsManaged(submitted_form, &driver_); +} + } // namespace password_manager
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc index 8f58dadd..1f556f02 100644 --- a/components/password_manager/core/browser/password_form_manager.cc +++ b/components/password_manager/core/browser/password_form_manager.cc
@@ -958,11 +958,6 @@ &preferred_match_); } -void PasswordFormManager::SaveGenerationFieldDetectedByClassifier( - const base::string16& generation_field) { - votes_uploader_.SaveGenerationFieldDetectedByClassifier(generation_field); -} - void PasswordFormManager::ResetStoredMatches() { preferred_match_ = nullptr; best_matches_.clear();
diff --git a/components/password_manager/core/browser/password_form_manager.h b/components/password_manager/core/browser/password_form_manager.h index a7b38aca..14cbbb41 100644 --- a/components/password_manager/core/browser/password_form_manager.h +++ b/components/password_manager/core/browser/password_form_manager.h
@@ -199,10 +199,6 @@ // 'test@gmail.com' and 'test@googlemail.com', those will be wiped). void WipeStoreCopyIfOutdated(); - // Saves the outcome of HTML parsing based form classifier to upload proto. - void SaveGenerationFieldDetectedByClassifier( - const base::string16& generation_field); - FormSaver* form_saver() { return form_saver_.get(); } // Clears references to matches derived from the associated FormFetcher data.
diff --git a/components/password_manager/core/browser/password_form_manager_unittest.cc b/components/password_manager/core/browser/password_form_manager_unittest.cc index 4f1dde27..e5e5a6d 100644 --- a/components/password_manager/core/browser/password_form_manager_unittest.cc +++ b/components/password_manager/core/browser/password_form_manager_unittest.cc
@@ -3327,47 +3327,6 @@ form_manager()->PasswordNoLongerGenerated(); } -TEST_F(PasswordFormManagerTest, FormClassifierVoteUpload) { - const bool kFalseTrue[] = {false, true}; - for (bool found_generation_element : kFalseTrue) { - SCOPED_TRACE(testing::Message() << "found_generation_element=" - << found_generation_element); - PasswordForm form(*observed_form()); - form.form_data = saved_match()->form_data; - - // Create submitted form. - PasswordForm submitted_form(form); - submitted_form.preferred = true; - submitted_form.username_value = saved_match()->username_value; - submitted_form.password_value = saved_match()->password_value; - - FakeFormFetcher fetcher; - fetcher.Fetch(); - PasswordFormManager form_manager( - password_manager(), client(), client()->driver(), form, - std::make_unique<NiceMock<MockFormSaver>>(), &fetcher); - form_manager.Init(nullptr); - base::string16 generation_element = form.password_element; - if (found_generation_element) - form_manager.SaveGenerationFieldDetectedByClassifier(generation_element); - else - form_manager.SaveGenerationFieldDetectedByClassifier(base::string16()); - - fetcher.SetNonFederated(std::vector<const PasswordForm*>(), 0u); - - autofill::FormStructure form_structure(submitted_form.form_data); - - EXPECT_CALL( - *client()->mock_driver()->mock_autofill_download_manager(), - StartUploadRequest(UploadedFormClassifierVoteIs( - found_generation_element, generation_element), - false, _, _, true)); - - form_manager.ProvisionallySave(submitted_form); - form_manager.Save(); - } -} - TEST_F(PasswordFormManagerTest, FieldPropertiesMasksUpload) { PasswordForm form(*observed_form()); form.form_data = saved_match()->form_data;
diff --git a/components/password_manager/core/browser/password_generation_manager.cc b/components/password_manager/core/browser/password_generation_manager.cc index bfd7960..b83e6510 100644 --- a/components/password_manager/core/browser/password_generation_manager.cc +++ b/components/password_manager/core/browser/password_generation_manager.cc
@@ -132,11 +132,6 @@ return client_->GetHistorySyncState() == SYNCING_NORMAL_ENCRYPTION; } -void PasswordGenerationManager::CheckIfFormClassifierShouldRun() { - if (autofill::FormStructure::IsAutofillFieldMetadataEnabled()) - driver_->AllowToRunFormClassifier(); -} - base::string16 PasswordGenerationManager::GeneratePassword( const GURL& last_committed_url, autofill::FormSignature form_signature,
diff --git a/components/password_manager/core/browser/password_generation_manager.h b/components/password_manager/core/browser/password_generation_manager.h index b103944..734ffd2 100644 --- a/components/password_manager/core/browser/password_generation_manager.h +++ b/components/password_manager/core/browser/password_generation_manager.h
@@ -60,12 +60,6 @@ // fetch domain wide password requirements from gstatic.com. bool IsRequirementsFetchingEnabled() const; - // Determine if the form classifier should run. If yes, sends a message to the - // renderer. - // TODO(crbug.com/621442): Remove client-side form classifier when server-side - // classifier is ready. - void CheckIfFormClassifierShouldRun(); - // Returns a randomly generated password that should (but is not guaranteed // to) match the requirements of the site. // |last_committed_url| refers to the main frame URL and may impact the
diff --git a/components/password_manager/core/browser/password_generation_manager_unittest.cc b/components/password_manager/core/browser/password_generation_manager_unittest.cc index 6104485..179d23b5 100644 --- a/components/password_manager/core/browser/password_generation_manager_unittest.cc +++ b/components/password_manager/core/browser/password_generation_manager_unittest.cc
@@ -469,23 +469,4 @@ EXPECT_FALSE(IsGenerationEnabled()); } -TEST_F(PasswordGenerationManagerTest, CheckIfFormClassifierShouldRun) { - const bool kFalseTrue[] = {false, true}; - for (bool is_autofill_field_metadata_enabled : kFalseTrue) { - SCOPED_TRACE(testing::Message() << "is_autofill_field_metadata_enabled=" - << is_autofill_field_metadata_enabled); - std::unique_ptr<base::FieldTrialList> field_trial_list; - scoped_refptr<base::FieldTrial> field_trial; - if (is_autofill_field_metadata_enabled) { - field_trial_list.reset(new base::FieldTrialList( - std::make_unique<variations::SHA1EntropyProvider>("foo"))); - field_trial = base::FieldTrialList::CreateFieldTrial( - "AutofillFieldMetadata", "Enabled"); - EXPECT_CALL(*GetTestDriver(), AllowToRunFormClassifier()) - .WillOnce(testing::Return()); - } - GetGenerationManager()->CheckIfFormClassifierShouldRun(); - } -} - } // namespace password_manager
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc index 689ecb9..5cedc475 100644 --- a/components/password_manager/core/browser/password_manager.cc +++ b/components/password_manager/core/browser/password_manager.cc
@@ -377,16 +377,6 @@ pending_login_managers_.push_back(std::move(manager)); } -void PasswordManager::SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& form, - const base::string16& generation_field) { - if (!client_->IsSavingAndFillingEnabledForCurrentPage()) - return; - PasswordFormManager* form_manager = GetMatchingPendingManager(form); - if (form_manager) - form_manager->SaveGenerationFieldDetectedByClassifier(generation_field); -} - void PasswordManager::ProvisionallySavePassword( const PasswordForm& form, const password_manager::PasswordManagerDriver* driver) {
diff --git a/components/password_manager/core/browser/password_manager.h b/components/password_manager/core/browser/password_manager.h index 0998e368..f54a51c 100644 --- a/components/password_manager/core/browser/password_manager.h +++ b/components/password_manager/core/browser/password_manager.h
@@ -87,11 +87,6 @@ const base::string16& generation_element, bool is_manually_triggered); - // Saves the outcome of HTML parsing based form classifier to uploaded proto. - void SaveGenerationFieldDetectedByClassifier( - const autofill::PasswordForm& form, - const base::string16& generation_field); - // TODO(isherman): This should not be public, but is currently being used by // the LoginPrompt code. // When a form is submitted, we prepare to save the password but wait
diff --git a/components/password_manager/core/browser/password_manager_driver.h b/components/password_manager/core/browser/password_manager_driver.h index 557a038..e1a8c6e2 100644 --- a/components/password_manager/core/browser/password_manager_driver.h +++ b/components/password_manager/core/browser/password_manager_driver.h
@@ -109,9 +109,6 @@ // chrome://password-manager-internals is available. virtual void SendLoggingAvailability() {} - // Allows the form classifier to find generation fields. - virtual void AllowToRunFormClassifier() {} - // Return the associated AutofillDriver. virtual autofill::AutofillDriver* GetAutofillDriver() = 0;
diff --git a/components/password_manager/core/browser/vote_uploads_test_matchers.h b/components/password_manager/core/browser/vote_uploads_test_matchers.h index 9f0076b..1f5d307 100644 --- a/components/password_manager/core/browser/vote_uploads_test_matchers.h +++ b/components/password_manager/core/browser/vote_uploads_test_matchers.h
@@ -145,22 +145,4 @@ return true; } -MATCHER_P2(UploadedFormClassifierVoteIs, - found_generation_element, - generation_element, - "") { - for (const auto& field : arg) { - if (found_generation_element && field->name == generation_element) { - if (field->form_classifier_outcome() != - autofill::AutofillUploadContents::Field::GENERATION_ELEMENT) - return false; - } else { - if (field->form_classifier_outcome() != - autofill::AutofillUploadContents::Field::NON_GENERATION_ELEMENT) - return false; - } - } - return true; -} - #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_VOTE_UPLOADS_TEST_MATCHERS_H_
diff --git a/components/password_manager/core/browser/votes_uploader.cc b/components/password_manager/core/browser/votes_uploader.cc index b36493e5..3f8850b 100644 --- a/components/password_manager/core/browser/votes_uploader.cc +++ b/components/password_manager/core/browser/votes_uploader.cc
@@ -262,8 +262,6 @@ if (autofill_type != autofill::ACCOUNT_CREATION_PASSWORD) { if (generation_popup_was_shown_) AddGeneratedVote(&form_structure); - if (form_classifier_outcome_ != kNoOutcome) - AddFormClassifierVote(&form_structure); if (has_username_edited_vote_) { field_types[form_to_upload.username_element] = autofill::USERNAME; username_vote_type = AutofillUploadContents::Field::USERNAME_EDITED; @@ -408,23 +406,6 @@ } } -void VotesUploader::AddFormClassifierVote(FormStructure* form_structure) { - DCHECK(form_structure); - DCHECK(form_classifier_outcome_ != kNoOutcome); - - for (size_t i = 0; i < form_structure->field_count(); ++i) { - AutofillField* field = form_structure->field(i); - if (form_classifier_outcome_ == kFoundGenerationElement && - field->name == generation_element_detected_by_classifier_) { - field->set_form_classifier_outcome( - AutofillUploadContents::Field::GENERATION_ELEMENT); - } else { - field->set_form_classifier_outcome( - AutofillUploadContents::Field::NON_GENERATION_ELEMENT); - } - } -} - void VotesUploader::SetKnownValueFlag( const PasswordForm& pending_credentials, const std::map<base::string16, const PasswordForm*>& best_matches, @@ -451,13 +432,6 @@ } } -void VotesUploader::SaveGenerationFieldDetectedByClassifier( - const base::string16& generation_field) { - form_classifier_outcome_ = - generation_field.empty() ? kNoGenerationElement : kFoundGenerationElement; - generation_element_detected_by_classifier_ = generation_field; -} - bool VotesUploader::FindUsernameInOtherPossibleUsernames( const PasswordForm& match, const base::string16& username) {
diff --git a/components/password_manager/core/browser/votes_uploader.h b/components/password_manager/core/browser/votes_uploader.h index 0756586..bdcaf4a 100644 --- a/components/password_manager/core/browser/votes_uploader.h +++ b/components/password_manager/core/browser/votes_uploader.h
@@ -67,10 +67,6 @@ const autofill::PasswordForm& pending_credentials, const autofill::PasswordForm& form_to_upload); - // Saves the outcome of HTML parsing based form classifier to upload proto. - void SaveGenerationFieldDetectedByClassifier( - const base::string16& generation_field); - // Searches for |username| in |other_possible_usernames| of |best_matches| // and |not_best_matches|. If the username value is found in // |other_possible_usernames| and the password value of the match is equal to @@ -166,13 +162,6 @@ // The client which implements embedder-specific PasswordManager operations. PasswordManagerClient* client_; - // The outcome of HTML parsing based form classifier. - FormClassifierOutcome form_classifier_outcome_ = kNoOutcome; - - // If |form_classifier_outcome_| == kFoundGenerationElement, the field - // contains the name of the detected generation element. - base::string16 generation_element_detected_by_classifier_; - // Whether generation popup was shown at least once. bool generation_popup_was_shown_ = false;
diff --git a/components/policy/core/common/cloud/component_cloud_policy_service.cc b/components/policy/core/common/cloud/component_cloud_policy_service.cc index 9dce7f4..43217fc5 100644 --- a/components/policy/core/common/cloud/component_cloud_policy_service.cc +++ b/components/policy/core/common/cloud/component_cloud_policy_service.cc
@@ -74,7 +74,8 @@ scoped_refptr<base::SequencedTaskRunner> task_runner, scoped_refptr<base::SequencedTaskRunner> service_task_runner, std::unique_ptr<ResourceCache> cache, - std::unique_ptr<ExternalPolicyDataFetcher> external_policy_data_fetcher); + std::unique_ptr<ExternalPolicyDataFetcher> external_policy_data_fetcher, + const std::string& policy_type); ~Backend() override; @@ -136,13 +137,14 @@ scoped_refptr<base::SequencedTaskRunner> task_runner, scoped_refptr<base::SequencedTaskRunner> service_task_runner, std::unique_ptr<ResourceCache> cache, - std::unique_ptr<ExternalPolicyDataFetcher> external_policy_data_fetcher) + std::unique_ptr<ExternalPolicyDataFetcher> external_policy_data_fetcher, + const std::string& policy_type) : service_(service), task_runner_(task_runner), service_task_runner_(service_task_runner), cache_(std::move(cache)), external_policy_data_fetcher_(std::move(external_policy_data_fetcher)), - store_(this, cache_.get()) { + store_(this, cache_.get(), policy_type) { // This class is allowed to be instantiated on any thread. DETACH_FROM_SEQUENCE(sequence_checker_); } @@ -296,7 +298,8 @@ new Backend(weak_ptr_factory_.GetWeakPtr(), backend_task_runner_, base::ThreadTaskRunnerHandle::Get(), std::move(cache), external_policy_data_fetcher_backend_->CreateFrontend( - backend_task_runner_))); + backend_task_runner_), + policy_type)); // Observe the schema registry for keeping |current_schema_map_| up to date. schema_registry_->AddObserver(this);
diff --git a/components/policy/core/common/cloud/component_cloud_policy_store.cc b/components/policy/core/common/cloud/component_cloud_policy_store.cc index 3c0e818..4596126 100644 --- a/components/policy/core/common/cloud/component_cloud_policy_store.cc +++ b/components/policy/core/common/cloud/component_cloud_policy_store.cc
@@ -55,6 +55,12 @@ "signinextension-policy-data", dm_protocol::kChromeSigninExtensionPolicyType, }, + { + POLICY_DOMAIN_EXTENSIONS, + "extension-policy", + "extension-policy-data", + dm_protocol::kChromeMachineLevelExtensionCloudPolicyType, + }, }; const DomainConstants* GetDomainConstants(PolicyDomain domain) { @@ -77,12 +83,15 @@ ComponentCloudPolicyStore::Delegate::~Delegate() {} -ComponentCloudPolicyStore::ComponentCloudPolicyStore(Delegate* delegate, - ResourceCache* cache) - : delegate_(delegate), cache_(cache) { +ComponentCloudPolicyStore::ComponentCloudPolicyStore( + Delegate* delegate, + ResourceCache* cache, + const std::string& policy_type) + : delegate_(delegate), cache_(cache), policy_type_(policy_type) { // Allow the store to be created on a different thread than the thread that // will end up using it. DETACH_FROM_SEQUENCE(sequence_checker_); + DCHECK(GetDomainConstantsForType(policy_type_)); } ComponentCloudPolicyStore::~ComponentCloudPolicyStore() { @@ -95,15 +104,6 @@ } // static -bool ComponentCloudPolicyStore::GetPolicyType(PolicyDomain domain, - std::string* policy_type) { - const DomainConstants* constants = GetDomainConstants(domain); - if (constants) - *policy_type = constants->policy_type; - return constants != nullptr; -} - -// static bool ComponentCloudPolicyStore::GetPolicyDomain(const std::string& policy_type, PolicyDomain* domain) { const DomainConstants* constants = GetDomainConstantsForType(policy_type); @@ -140,51 +140,53 @@ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); typedef std::map<std::string, std::string> ContentMap; - // Load all cached policy protobufs for each domain. - for (const DomainConstants& constants : kDomains) { - ContentMap protos; - cache_->LoadAllSubkeys(constants.proto_cache_key, &protos); - for (ContentMap::iterator it = protos.begin(); it != protos.end(); ++it) { - const std::string& id(it->first); - const PolicyNamespace ns(constants.domain, id); + // Load cached policy protobuf for the assoicated domain. + const DomainConstants* constants = GetDomainConstantsForType(policy_type_); + if (!constants) + return; - // Validate the protobuf. - auto proto = std::make_unique<em::PolicyFetchResponse>(); - if (!proto->ParseFromString(it->second)) { - LOG(ERROR) << "Failed to parse the cached policy fetch response."; - Delete(ns); - continue; - } - em::ExternalPolicyData payload; - em::PolicyData policy_data; - if (!ValidatePolicy(ns, std::move(proto), &policy_data, &payload)) { - // The policy fetch response is corrupted. Note that the error details - // are logged by ValidatePolicy(). - Delete(ns); - continue; - } + ContentMap protos; + cache_->LoadAllSubkeys(constants->proto_cache_key, &protos); + for (ContentMap::iterator it = protos.begin(); it != protos.end(); ++it) { + const std::string& id(it->first); + const PolicyNamespace ns(constants->domain, id); - // The protobuf looks good; load the policy data. - std::string data; - if (!cache_->Load(constants.data_cache_key, id, &data)) { - LOG(ERROR) << "Failed to load the cached policy data."; - Delete(ns); - continue; - } - PolicyMap policy; - if (!ValidateData(data, payload.secure_hash(), &policy)) { - // The data for this proto is corrupted. Note that the error details - // are logged by ValidateData(). - Delete(ns); - continue; - } - - // The data is also good; expose the policies. - policy_bundle_.Get(ns).Swap(&policy); - cached_hashes_[ns] = payload.secure_hash(); - stored_policy_times_[ns] = - base::Time::FromJavaTime(policy_data.timestamp()); + // Validate the protobuf. + auto proto = std::make_unique<em::PolicyFetchResponse>(); + if (!proto->ParseFromString(it->second)) { + LOG(ERROR) << "Failed to parse the cached policy fetch response."; + Delete(ns); + continue; } + em::ExternalPolicyData payload; + em::PolicyData policy_data; + if (!ValidatePolicy(ns, std::move(proto), &policy_data, &payload)) { + // The policy fetch response is corrupted. Note that the error details + // are logged by ValidatePolicy(). + Delete(ns); + continue; + } + + // The protobuf looks good; load the policy data. + std::string data; + if (!cache_->Load(constants->data_cache_key, id, &data)) { + LOG(ERROR) << "Failed to load the cached policy data."; + Delete(ns); + continue; + } + PolicyMap policy; + if (!ValidateData(data, payload.secure_hash(), &policy)) { + // The data for this proto is corrupted. Note that the error details + // are logged by ValidateData(). + Delete(ns); + continue; + } + + // The data is also good; expose the policies. + policy_bundle_.Get(ns).Swap(&policy); + cached_hashes_[ns] = payload.secure_hash(); + stored_policy_times_[ns] = + base::Time::FromJavaTime(policy_data.timestamp()); } } @@ -290,10 +292,13 @@ void ComponentCloudPolicyStore::Clear() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - for (const DomainConstants& constants : kDomains) { - cache_->Clear(constants.proto_cache_key); - cache_->Clear(constants.data_cache_key); - } + + const DomainConstants* constants = GetDomainConstantsForType(policy_type_); + if (!constants) + return; + cache_->Clear(constants->proto_cache_key); + cache_->Clear(constants->data_cache_key); + cached_hashes_.clear(); stored_policy_times_.clear(); const PolicyBundle empty_bundle; @@ -310,11 +315,12 @@ em::ExternalPolicyData* payload) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - std::string policy_type; - if (!GetPolicyType(ns.domain, &policy_type)) { - LOG(ERROR) << "Bad policy type " << ns.domain << "."; + PolicyDomain domain; + + if (!ComponentCloudPolicyStore::GetPolicyDomain(policy_type_, &domain) || + domain != ns.domain) return false; - } + if (ns.component_id.empty()) { LOG(ERROR) << "Empty component id."; return false; @@ -342,7 +348,7 @@ ComponentCloudPolicyValidator::DM_TOKEN_REQUIRED); validator->ValidateDeviceId(device_id_, CloudPolicyValidatorBase::DEVICE_ID_REQUIRED); - validator->ValidatePolicyType(policy_type); + validator->ValidatePolicyType(policy_type_); validator->ValidateSettingsEntityId(ns.component_id); validator->ValidatePayload(); validator->ValidateSignature(public_key_); @@ -413,6 +419,13 @@ return false; } + // Chrome extension policy and signin extension policy on ChromeOS are user + // level policy. Machine level extension policy and is machine level policy. + PolicyScope scope = + policy_type_ == dm_protocol::kChromeMachineLevelExtensionCloudPolicyType + ? POLICY_SCOPE_MACHINE + : POLICY_SCOPE_USER; + // Each top-level key maps a policy name to its description. // // Each description is an object that contains the policy value under the @@ -440,11 +453,8 @@ level = POLICY_LEVEL_RECOMMENDED; } - // If policy for components is ever used for device-level settings then - // this must support a configurable scope; assuming POLICY_SCOPE_USER is - // fine for now. - policy->Set(it.key(), level, POLICY_SCOPE_USER, POLICY_SOURCE_CLOUD, - std::move(value), nullptr); + policy->Set(it.key(), level, scope, POLICY_SOURCE_CLOUD, std::move(value), + nullptr); } return true;
diff --git a/components/policy/core/common/cloud/component_cloud_policy_store.h b/components/policy/core/common/cloud/component_cloud_policy_store.h index bf49f7e..f333311 100644 --- a/components/policy/core/common/cloud/component_cloud_policy_store.h +++ b/components/policy/core/common/cloud/component_cloud_policy_store.h
@@ -45,19 +45,19 @@ }; // Both the |delegate| and the |cache| must outlive this object. + // |policy_type| only supports kChromeSigninExtensionPolicyType, + // kChromeExtensionPolicyType, kChromeMachineLevelExtensionCloudPolicyType. + // Please update component_cloud_policy_store.cc in case there is new policy + // type added. ComponentCloudPolicyStore(Delegate* delegate, - ResourceCache* cache); + ResourceCache* cache, + const std::string& policy_type); ~ComponentCloudPolicyStore(); // Helper that returns true for PolicyDomains that can be managed by this // store. static bool SupportsDomain(PolicyDomain domain); - // Returns true if |domain| can be managed by this store; in that case, the - // dm_protocol policy type that corresponds to |domain| is stored in - // |policy_type|. Otherwise returns false. - static bool GetPolicyType(PolicyDomain domain, std::string* policy_type); - // Returns true if |policy_type| corresponds to a policy domain that can be // managed by this store; in that case, the domain constants is assigned to // |domain|. Otherwise returns false. @@ -80,7 +80,8 @@ const std::string& public_key, int public_key_version); - // Loads and validates all the currently cached protobufs and policy data. + // Loads and validates the currently cached protobufs and policy data that are + // owned by this PolicyStore. // This is performed synchronously, and policy() will return the cached // policies after this call. void Load(); @@ -106,7 +107,7 @@ void Purge(PolicyDomain domain, const ResourceCache::SubkeyFilter& filter); - // Deletes the storage of every component. + // Deletes the storage of every component that is owned by this PolicyStore. void Clear(); // Validates |proto| and returns the parsed PolicyData in |policy_data| and @@ -152,6 +153,8 @@ // exposed component. std::map<PolicyNamespace, base::Time> stored_policy_times_; + std::string policy_type_; + SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(ComponentCloudPolicyStore);
diff --git a/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc b/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc index c3693c52..5ee6f19 100644 --- a/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc +++ b/components/policy/core/common/cloud/component_cloud_policy_store_unittest.cc
@@ -86,13 +86,7 @@ public_key_ = builder_.GetPublicSigningKeyAsString(); - PolicyMap& policy = expected_bundle_.Get(kTestPolicyNS); - policy.Set("Name", POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER, - POLICY_SOURCE_CLOUD, std::make_unique<base::Value>("disabled"), - nullptr); - policy.Set("Second", POLICY_LEVEL_RECOMMENDED, POLICY_SCOPE_USER, - POLICY_SOURCE_CLOUD, std::make_unique<base::Value>("maybe"), - nullptr); + SetupExpectBundleWithScope(POLICY_SCOPE_USER); } void SetUp() override { @@ -100,13 +94,22 @@ cache_.reset( new ResourceCache(temp_dir_.GetPath(), base::MakeRefCounted<base::TestSimpleTaskRunner>())); - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, PolicyBuilder::kFakeDeviceId, public_key_, PolicyBuilder::kFakePublicKeyVersion); } + void SetupExpectBundleWithScope(const PolicyScope& scope) { + PolicyMap& policy = expected_bundle_.Get(kTestPolicyNS); + policy.Clear(); + policy.Set("Name", POLICY_LEVEL_MANDATORY, scope, POLICY_SOURCE_CLOUD, + std::make_unique<base::Value>("disabled"), nullptr); + policy.Set("Second", POLICY_LEVEL_RECOMMENDED, scope, POLICY_SOURCE_CLOUD, + std::make_unique<base::Value>("maybe"), nullptr); + } + std::unique_ptr<em::PolicyFetchResponse> CreateResponse() { builder_.Build(); return std::make_unique<em::PolicyFetchResponse>(builder_.policy()); @@ -122,17 +125,31 @@ return builder_.GetBlob(); } + std::unique_ptr<ComponentCloudPolicyStore> CreateStore() { + return CreateStoreWithPolicyType(dm_protocol::kChromeExtensionPolicyType); + } + + std::unique_ptr<ComponentCloudPolicyStore> CreateStoreWithPolicyType( + const std::string& policy_type) { + return std::make_unique<ComponentCloudPolicyStore>( + &store_delegate_, cache_.get(), policy_type); + } + // Returns true if the policy exposed by the |store| is empty. bool IsStoreEmpty(const ComponentCloudPolicyStore& store) { return store.policy().Equals(PolicyBundle()); } void StoreTestPolicy(ComponentCloudPolicyStore* store) { - EXPECT_TRUE(store->ValidatePolicy(kTestPolicyNS, CreateResponse(), + StoreTestPolicyWithNamespace(store, kTestPolicyNS); + } + void StoreTestPolicyWithNamespace(ComponentCloudPolicyStore* store, + const PolicyNamespace& ns) { + EXPECT_TRUE(store->ValidatePolicy(ns, CreateResponse(), nullptr /* policy_data */, nullptr /* payload */)); EXPECT_CALL(store_delegate_, OnComponentCloudPolicyStoreUpdated()); - EXPECT_TRUE(store->Store(kTestPolicyNS, CreateSerializedResponse(), + EXPECT_TRUE(store->Store(ns, CreateSerializedResponse(), CreatePolicyData().get(), TestPolicyHash(), kTestPolicy)); Mock::VerifyAndClearExpectations(&store_delegate_); @@ -148,7 +165,11 @@ const PolicyNamespace kTestPolicyNS; std::unique_ptr<ResourceCache> cache_; + std::unique_ptr<ComponentCloudPolicyStore> store_; + std::unique_ptr<ComponentCloudPolicyStore> another_store_; + std::unique_ptr<ComponentCloudPolicyStore> yet_another_store_; + MockComponentCloudPolicyStoreDelegate store_delegate_; ComponentCloudPolicyBuilder builder_; PolicyBundle expected_bundle_; @@ -294,14 +315,14 @@ } TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentials) { - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); EXPECT_FALSE(store_->ValidatePolicy(kTestPolicyNS, CreateResponse(), nullptr /* policy_data */, nullptr /* payload */)); } TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentialsUser) { - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); store_->SetCredentials(AccountId(), PolicyBuilder::kFakeToken, PolicyBuilder::kFakeDeviceId, public_key_, PolicyBuilder::kFakePublicKeyVersion); @@ -311,7 +332,7 @@ } TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentialsDMToken) { - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), std::string() /* dm_token */, PolicyBuilder::kFakeDeviceId, public_key_, @@ -322,7 +343,7 @@ } TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentialsDeviceId) { - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, std::string() /* device_id */, public_key_, @@ -333,7 +354,7 @@ } TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentialsPublicKey) { - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_ = CreateStore(); store_->SetCredentials( PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, PolicyBuilder::kFakeDeviceId, std::string() /* public_key */, @@ -345,63 +366,92 @@ TEST_F(ComponentCloudPolicyStoreTest, ValidateNoCredentialsPublicKeyVersion) { StoreTestPolicy(store_.get()); - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials( + another_store_ = CreateStore(); + another_store_->SetCredentials( PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, PolicyBuilder::kFakeDeviceId, public_key_, -1 /* public_key_version */); - another_store.Load(); - EXPECT_TRUE(IsStoreEmpty(another_store)); + another_store_->Load(); + EXPECT_TRUE(IsStoreEmpty(*another_store_)); EXPECT_TRUE(LoadCacheExtensionsSubkeys().empty()); } TEST_F(ComponentCloudPolicyStoreTest, ValidateWrongCredentialsDMToken) { StoreTestPolicy(store_.get()); - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - "wrongtoken", PolicyBuilder::kFakeDeviceId, - public_key_, - PolicyBuilder::kFakePublicKeyVersion); - another_store.Load(); - EXPECT_TRUE(IsStoreEmpty(another_store)); + another_store_ = CreateStore(); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + "wrongtoken", PolicyBuilder::kFakeDeviceId, + public_key_, + PolicyBuilder::kFakePublicKeyVersion); + another_store_->Load(); + EXPECT_TRUE(IsStoreEmpty(*another_store_)); EXPECT_TRUE(LoadCacheExtensionsSubkeys().empty()); } TEST_F(ComponentCloudPolicyStoreTest, ValidateWrongCredentialsDeviceId) { StoreTestPolicy(store_.get()); - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials( + another_store_ = CreateStore(); + another_store_->SetCredentials( PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, "wrongdeviceid", public_key_, PolicyBuilder::kFakePublicKeyVersion); - another_store.Load(); - EXPECT_TRUE(IsStoreEmpty(another_store)); + another_store_->Load(); + EXPECT_TRUE(IsStoreEmpty(*another_store_)); EXPECT_TRUE(LoadCacheExtensionsSubkeys().empty()); } TEST_F(ComponentCloudPolicyStoreTest, ValidateWrongCredentialsPublicKey) { StoreTestPolicy(store_.get()); - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - PolicyBuilder::kFakeToken, - PolicyBuilder::kFakeDeviceId, "wrongkey", - PolicyBuilder::kFakePublicKeyVersion); - another_store.Load(); - EXPECT_TRUE(IsStoreEmpty(another_store)); + another_store_ = CreateStore(); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, "wrongkey", + PolicyBuilder::kFakePublicKeyVersion); + another_store_->Load(); + EXPECT_TRUE(IsStoreEmpty(*another_store_)); EXPECT_TRUE(LoadCacheExtensionsSubkeys().empty()); } TEST_F(ComponentCloudPolicyStoreTest, ValidateWrongCredentialsPublicKeyVersion) { StoreTestPolicy(store_.get()); - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - PolicyBuilder::kFakeToken, - PolicyBuilder::kFakeDeviceId, public_key_, - PolicyBuilder::kFakePublicKeyVersion + 1); - another_store.Load(); - EXPECT_TRUE(IsStoreEmpty(another_store)); + another_store_ = CreateStore(); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion + 1); + another_store_->Load(); + EXPECT_TRUE(IsStoreEmpty(*another_store_)); EXPECT_TRUE(LoadCacheExtensionsSubkeys().empty()); } +TEST_F(ComponentCloudPolicyStoreTest, + ValidatePolicyWithInvalidCombinationOfDomainAndPolicyType) { + PolicyNamespace ns_chrome(POLICY_DOMAIN_CHROME, std::string()); + PolicyNamespace ns_extension(POLICY_DOMAIN_EXTENSIONS, kTestExtension); + PolicyNamespace ns_signin_extension(POLICY_DOMAIN_SIGNIN_EXTENSIONS, + kTestExtension); + + store_ = CreateStoreWithPolicyType( + dm_protocol::kChromeMachineLevelExtensionCloudPolicyType); + EXPECT_FALSE(store_->ValidatePolicy(ns_chrome, CreateResponse(), + nullptr /*policy_data*/, + nullptr /*payload*/)); + EXPECT_FALSE(store_->ValidatePolicy(ns_signin_extension, CreateResponse(), + nullptr, nullptr)); + + store_ = + CreateStoreWithPolicyType(dm_protocol::kChromeSigninExtensionPolicyType); + EXPECT_FALSE( + store_->ValidatePolicy(ns_chrome, CreateResponse(), nullptr, nullptr)); + EXPECT_FALSE( + store_->ValidatePolicy(ns_extension, CreateResponse(), nullptr, nullptr)); + + store_ = CreateStoreWithPolicyType(dm_protocol::kChromeExtensionPolicyType); + EXPECT_FALSE( + store_->ValidatePolicy(ns_chrome, CreateResponse(), nullptr, nullptr)); + EXPECT_FALSE(store_->ValidatePolicy(ns_signin_extension, CreateResponse(), + nullptr, nullptr)); +} + TEST_F(ComponentCloudPolicyStoreTest, StoreAndLoad) { // Initially empty. EXPECT_TRUE(IsStoreEmpty(*store_)); @@ -452,14 +502,40 @@ EXPECT_EQ(TestPolicyHash(), store_->GetCachedHash(kTestPolicyNS)); // Loading from the cache validates the policy data again. - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); - another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - PolicyBuilder::kFakeToken, - PolicyBuilder::kFakeDeviceId, public_key_, - PolicyBuilder::kFakePublicKeyVersion); - another_store.Load(); - EXPECT_TRUE(another_store.policy().Equals(expected_bundle_)); - EXPECT_EQ(TestPolicyHash(), another_store.GetCachedHash(kTestPolicyNS)); + another_store_ = CreateStore(); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion); + another_store_->Load(); + EXPECT_TRUE(another_store_->policy().Equals(expected_bundle_)); + EXPECT_EQ(TestPolicyHash(), another_store_->GetCachedHash(kTestPolicyNS)); +} + +TEST_F(ComponentCloudPolicyStoreTest, StoreAndLoadMachineLevelUserPolicy) { + store_ = CreateStoreWithPolicyType( + dm_protocol::kChromeMachineLevelExtensionCloudPolicyType); + store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion); + + builder_.policy_data().set_policy_type( + dm_protocol::kChromeMachineLevelExtensionCloudPolicyType); + builder_.payload().set_secure_hash(TestPolicyHash()); + SetupExpectBundleWithScope(POLICY_SCOPE_MACHINE); + + StoreTestPolicyWithNamespace(store_.get(), kTestPolicyNS); + + another_store_ = CreateStoreWithPolicyType( + dm_protocol::kChromeMachineLevelExtensionCloudPolicyType); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion); + another_store_->Load(); + EXPECT_TRUE(another_store_->policy().Equals(expected_bundle_)); + EXPECT_EQ(TestPolicyHash(), another_store_->GetCachedHash(kTestPolicyNS)); } TEST_F(ComponentCloudPolicyStoreTest, Updates) { @@ -501,15 +577,15 @@ EXPECT_TRUE(store_->policy().Equals(expected_bundle_)); // Loading the store again will still see |kTestPolicyNS|. - ComponentCloudPolicyStore another_store(&store_delegate_, cache_.get()); + another_store_ = CreateStore(); const PolicyBundle empty_bundle; - EXPECT_TRUE(another_store.policy().Equals(empty_bundle)); - another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - PolicyBuilder::kFakeToken, - PolicyBuilder::kFakeDeviceId, public_key_, - PolicyBuilder::kFakePublicKeyVersion); - another_store.Load(); - EXPECT_TRUE(another_store.policy().Equals(expected_bundle_)); + EXPECT_TRUE(another_store_->policy().Equals(empty_bundle)); + another_store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), + PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion); + another_store_->Load(); + EXPECT_TRUE(another_store_->policy().Equals(expected_bundle_)); // Now purge everything. EXPECT_CALL(store_delegate_, OnComponentCloudPolicyStoreUpdated()); @@ -520,13 +596,13 @@ EXPECT_TRUE(store_->policy().Equals(empty_bundle)); // And they aren't loaded anymore either. - ComponentCloudPolicyStore yet_another_store(&store_delegate_, cache_.get()); - yet_another_store.SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), - PolicyBuilder::kFakeToken, - PolicyBuilder::kFakeDeviceId, public_key_, - PolicyBuilder::kFakePublicKeyVersion); - yet_another_store.Load(); - EXPECT_TRUE(yet_another_store.policy().Equals(empty_bundle)); + yet_another_store_ = CreateStore(); + yet_another_store_->SetCredentials( + PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, + PolicyBuilder::kFakeDeviceId, public_key_, + PolicyBuilder::kFakePublicKeyVersion); + yet_another_store_->Load(); + EXPECT_TRUE(yet_another_store_->policy().Equals(empty_bundle)); } } // namespace policy
diff --git a/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc b/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc index 4cf052f..1702bce 100644 --- a/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc +++ b/components/policy/core/common/cloud/component_cloud_policy_updater_unittest.cc
@@ -118,7 +118,8 @@ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); task_runner_ = new base::TestMockTimeTaskRunner(); cache_.reset(new ResourceCache(temp_dir_.GetPath(), task_runner_)); - store_.reset(new ComponentCloudPolicyStore(&store_delegate_, cache_.get())); + store_.reset(new ComponentCloudPolicyStore( + &store_delegate_, cache_.get(), dm_protocol::kChromeExtensionPolicyType)); store_->SetCredentials(PolicyBuilder::GetFakeAccountIdForTesting(), PolicyBuilder::kFakeToken, PolicyBuilder::kFakeDeviceId, public_key_,
diff --git a/components/policy/resources/policy_templates_ar.xtb b/components/policy/resources/policy_templates_ar.xtb index e01c4e2..659e177 100644 --- a/components/policy/resources/policy_templates_ar.xtb +++ b/components/policy/resources/policy_templates_ar.xtb
@@ -1122,6 +1122,15 @@ ..........إذا لم تتعيَّن تلك السياسة، فستُستخدَم القيمة التلقائية العامة لجميع المواقع إما من السياسة 'DefaultKeygenSetting' إذا كان قد تم تعيينها أو من التهيئة الشخصية للمستخدم.</translation> <translation id="4239720644496144453">لا تُستخدم ذاكرة التخزين المؤقت مع تطبيقات Android. في حالة تثبيت عدة مستخدمين لنفس تطبيق Android، سيتم تنزيله من جديد لكلّ مستخدم.</translation> +<translation id="4243336580717651045">تعمل هذه السياسة على تفعيل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL في <ph name="PRODUCT_NAME" /> وتمنع المستخدمين من تغيير هذا الإعداد. + + ترسل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL عناوين URL للصفحات التي يزورها المستخدم إلى Google لإجراء عمليات البحث والتصفُّح بشكلٍ أفضل. + + في حال تفعيل هذه السياسة، ستكون مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL نشطة دائمًا. + + وفي حال إيقاف هذه السياسة، لن تكون مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL نشطة مطلقًا. + + وفي حال ترك هذه السياسة بدون تحديد، سيتم تفعيل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL، ولكن سيتمكَّن المستخدم من تغييرها.</translation> <translation id="4250680216510889253">لا</translation> <translation id="4261820385751181068">لغة شاشة تسجيل الدخول إلى الجهاز</translation> <translation id="427220754384423013">تُحدد السياسة الطابعات التي يمكن لأي مستخدم استخدامها. @@ -1723,6 +1732,7 @@ <translation id="6083631234867522991">Windows (عملاء Windows):</translation> <translation id="6093156968240188330">السماح للمستخدمين عن بُعد بالتفاعل مع النوافذ المتطورة في جلسات المساعدة عن بُعد</translation> <translation id="6095999036251797924">لتحديد طول مدة توقف نشاط الإدخال لدى المستخدم التي يتم بعدها قفل الشاشة عند التشغيل على تيار متردد أو على البطارية. وعند تعيين المدة على قيمة أكبر من صفر، فذلك يمثل طول المدة التي يجب أن ينتظرها المستخدم في وضع بعيد حتى يتم قفل شاشة جهاز <ph name="PRODUCT_OS_NAME" />. وعند تعيين المدة على صفر، لن يتم قفل شاشة جهاز <ph name="PRODUCT_OS_NAME" /> عندما يتحول المستخدم إلى وضع بعيد. وعند ترك المدة بدون تعيين، يتم استخدام مدة تلقائية. والطريقة التي يوصى باتباعها لقفل الشاشة عند دخول المستخدم في وضع بعيد هي تفعيل قفل الشاشة على التعليق وطلب تعليق <ph name="PRODUCT_OS_NAME" /> بعد تأخر الدخول في وضع بعيد. يجب عدم استخدام هذه السياسة إلا عندما يتعين ظهور قفل الشاشة لمدة أطول من التعليق أو عند عدم الرغبة تمامًا في التعليق عند الدخول في وضع بعيد. يجب تحديد قيمة السياسة باستخدام الميللي ثانية. ويتم تثبيت القيم بحيث تكون أقل من تأخر الدخول في وضع بعيد.</translation> +<translation id="6097601282776163274">تفعيل مجموعة البيانات مجهولة المصدر والمستندة إلى عنوان URL</translation> <translation id="6111936128861357925">السماح بلعبة Dinosaur Easter Egg</translation> <translation id="6114416803310251055">تم تجاهله</translation> <translation id="6133088669883929098">السماح لجميع المواقع باستخدام إنشاء مفتاح</translation>
diff --git a/components/policy/resources/policy_templates_bn.xtb b/components/policy/resources/policy_templates_bn.xtb index 9c2edf71..5b3b2f4 100644 --- a/components/policy/resources/policy_templates_bn.xtb +++ b/components/policy/resources/policy_templates_bn.xtb
@@ -283,13 +283,13 @@ অন্যথায়, যদি একটি ক্রুটিযুক্ত সার্ভারের সাথে সঙ্গতি বজায় রাখা আবশ্যক হয়, তাহলে একে "tls1.1" এ সেট করা যেতে পারে। এটি একটি অস্থায়ী সমাধান এবং সার্ভারটি দ্রুত সংশোধন করা উচিত।</translation> <translation id="1864269674877167562">এই নীতিটি যদি একটি ফাঁকা স্ট্রিং হিসাবে সেট করা থাকে বা কনফিগার করা না থাকে, তাহলে <ph name="PRODUCT_OS_NAME" /> ব্যবহারকারীকে সাইন ইন প্রবাহের সময় কোনো স্বয়ংপূর্ণ বিকল্প দেখাবে না। এই নীতিটি যদি একটি ডোমেন নাম প্রতিনিধিত্ব করে এমন একটি স্ট্রিং হিসাবে সেট করা থাকে, তাহলে <ph name="PRODUCT_OS_NAME" /> ব্যবহারকারীকে সাইন ইনের সময়ে স্বয়ংপূর্ণ বিকল্প দেখাবে যেখানে ব্যবহারকারী ডোমেন নাম এক্সটেনশান ছাড়া শুধুমাত্র তার ইউজারনেম লেখার অনুমতি পাবেন। ব্যবহারকারী এই ডোমেন নাম এক্সটেনশান ওভাররাইট করতে পারবেন।</translation> -<translation id="1864382791685519617"><ph name="PRODUCT_NAME" /> -এ নেটওয়ার্ক পূর্বাভাস চালু করে এবং ব্যবহারকারীদের এই সেটিংটি পরিবর্তন করতে বাধা দেয়। +<translation id="1864382791685519617"><ph name="PRODUCT_NAME" />-এ নেটওয়ার্ক পূর্বানুমান চালু করে এবং ব্যবহারকারীদের এই সেটিং পরিবর্তন করতে বাধা দেয়। এটি ডিএনএস প্রি-ফেচিং, ওয়েব পেজের TCP এবং SSL প্রি-কানেকশন এবং প্রি-রেন্ডারিং নিয়ন্ত্রণ করে। - আপনি এই নীতি সেট করলে, ব্যবহারকারীরা <ph name="PRODUCT_NAME" />-এ এই সেটিংটি পরিবর্তন বা ওভাররাইড করতে পারবে না। + আপনি এই নীতি সেট করলে, ব্যবহারকারীরা <ph name="PRODUCT_NAME" />-এ এই সেটিং পরিবর্তন বা ওভাররাইড করতে পারবে না। - এই নীতিটি যদি সেট না করে রাখা হয়, তাহলে নেটওয়ার্ক পূর্বাভাষ চালু করা হবে কিন্তু ব্যবহারকারী এটি পরিবর্তন করতে পারবেন।</translation> + এই নীতিটি যদি সেট না করে রাখা হয়, তাহলে নেটওয়ার্ক পূর্বানুমান চালু করা হবে কিন্তু ব্যবহারকারী এটি পরিবর্তন করতে পারবেন।</translation> <translation id="1865417998205858223">মূল অনুমতিগুলি</translation> <translation id="186719019195685253">AC পাওয়ার ব্যবহার করে চালনা করার সময় নিষ্ক্রিয়তা বিলম্বের সময়সীমা পেরিয়ে গেলে যে পদক্ষেপ নেওয়া হবে</translation> <translation id="187819629719252111">ফাইল নির্বাচন কথোপকথনগুলি প্রদর্শন করতে <ph name="PRODUCT_NAME" />এর অনুমতি দিয়ে মেশিনে স্থানীয় ফাইলগুলিতে অ্যাক্সেসের অনুমতি দেয়৷ আপনি এই সেটিং সক্ষম করলে, ব্যবহারকারীরা সাধারণ হিসাবে ফাইল নির্বাচন কথোপকথনগুলি খুলতে পারে৷ আপনি এই সেটিং অক্ষম করলে, যখনই ব্যবহারকারী এমন কোনো কার্য করে যা কোনো ফাইল নির্বাচন কথোপকথন (যেমন বুকমার্কগুলির আমদানি, ফাইলগুলি আপলোড করা, লিঙ্কগুলি সংরক্ষণ করা ইত্যাদি)কে প্রণোদনা দেয় একটি বার্তা পরিবর্তে প্রদর্শিত হয় এবং ব্যবহারকারী ফাইল নির্বাচন কথোপকথনে বাতিল ক্লিক করেছে বলে ধরা হয়৷ এই সেটিংটি সেট করা না থাকলে, ব্যবহারকারীগণ সাধারণভাবে ফাইল নির্বাচন কথোপকথনগুলি খুলতে পারে৷</translation> @@ -824,7 +824,7 @@ <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> প্রমাণীকরণের জন্য অ্যাকাউন্টের ধরন</translation> <translation id="2959469725686993410">সময় অঞ্চল নির্ধারণ করার সময়ে সবসময় সার্ভারে ওয়াই ফাই অ্যাক্সেস-পয়েন্ট পাঠান</translation> <translation id="2959898425599642200">প্রক্সি বাইপাস বিধিসমূহ</translation> -<translation id="2960128438010718932">একটি নতুন আপডেট প্রয়োগ করার জন্য স্ট্যাগিং সময়সূচি</translation> +<translation id="2960128438010718932">একটি নতুন আপডেট প্রয়োগ করার জন্য স্টেজিং সময়সূচি</translation> <translation id="2960691910306063964">দূরবর্তী অ্যাক্সেস হোস্টের জন্য পিন বিহীন প্রমাণীকরণ অক্ষম বা সক্ষম করে</translation> <translation id="2972261849442778817">ব্যবহারকারীকে জিজ্ঞাসা করুন যে তারা মাইগ্রেট করতে নাকি তা এড়িয়ে যেতে চান এবং ARC-কেও অনুমতি দিতে চান কিনা।</translation> <translation id="2976002782221275500">ব্যবহারকারীর ইনপুট ছাড়াই সময়কাল নির্দিষ্ট করে, তারপর ব্যাটারি শক্তি চলতে থাকলেও স্ক্রিনটির উজ্জ্বলতা হ্রাস হয়ে যায়৷ @@ -1562,11 +1562,11 @@ এই সাজেশনগুলি Google সার্ভার থেকে আনা হয়। যদি এই সেটিং ফলসে সেট করা হয়, সাজেশনগুলি আনা হবে না বা প্রদর্শিত হবে না।</translation> -<translation id="4788252609789586009"><ph name="PRODUCT_NAME" />-এর AutoFill বৈশিষ্ট্যটি চালু করে এবং ব্যবহারকারীদের ঠিকানার মতো আগে থেকে থাকা তথ্য ব্যবহার করে ওয়েব ফর্ম পূরণ করার অনুমতি দেয়। +<translation id="4788252609789586009"><ph name="PRODUCT_NAME" />-এর AutoFill বৈশিষ্ট্যটি চালু করে এবং ব্যবহারকারীদের আগে থেকে থাকা তথ্য ব্যবহার করে ক্রেডিট কার্ডের তথ্য ওয়েব ফর্মে নিজে থেকে পূরণ করার অনুমতি দেয়। - যদি আপনি এই সেটিসংটি বন্ধ করেন তবে Autofill ক্রেডিট কার্ডের তথ্যগুলি সুপারিশ করবে না বা এটি অতিরিক্ত ক্রেডিট কার্ডের তথ্য সেভ করবে না যা ওয়েব ব্রাউজ করার সময় ব্যবহারকারী জমা দিতে পারে। + যদি আপনি এই সেটিং বন্ধ করেন তবে Autofill ক্রেডিট কার্ডের তথ্যগুলি প্রস্তাবিত করবে না বা এটি অতিরিক্ত ক্রেডিট কার্ডের তথ্য সেভ করবে না যা ওয়েব ব্রাউজ করার সময় ব্যবহারকারী জমা দিতে পারেন। - আপনি যদি এই সেটিসংটি চালু করেন বা একটি মান সেট না করেন তবে ব্যবহারকারী UI-তে ক্রেডিট কার্ডের জন্য Autofill নিয়ন্ত্রণ করতে পারবেন।</translation> + আপনি যদি এই সেটিং চালু করেন বা একটি মান সেট না করেন তবে ব্যবহারকারী UI-তে ক্রেডিট কার্ডের জন্য Autofill নিয়ন্ত্রণ করতে পারবেন।</translation> <translation id="4791031774429044540">বড় কার্সার অ্যাক্সেসযোগ্যতার বৈশিষ্ট্য সক্ষম করে৷ যদি এই নীতি সত্যতে সেট করা থাকে, তাহলে বড় কার্সার সর্বদা সক্ষম থাকবে৷ @@ -1737,9 +1737,9 @@ যদি নীতিটিকে সেট না করে ফেলে রাখা হয় বা মিথ্যাতে সেট করা থাকে, তাহলে ডেভেলপার মোড ডিভাইসটিতে উপলব্ধ থাকবে৷</translation> <translation id="520403427390290017">খুলে রাখা কোনও ট্যাব দীর্ঘক্ষণ ব্যবহার করা না হলে সেটির জন্য খরচ হওয়া মেমরি খালি করা এবং সিপিইউ-এ চলা প্রসেস বন্ধ করার কাজটি ট্যাব লাইফসাইকেল ফিচারের মাধ্যমে করা যায়। প্রথমে সেগুলি নিয়ন্ত্রণ করে, তারপর আলাদা করে এবং অবশেষে বাতিল করে। - নীতিটি ফলসে সেট করা থাকলে ট্যাব লাইফসাইকেলগুলি বন্ধ থাকে এবং সমস্ত ট্যাবগুলি স্বাভাবিকভাবে চলতে থাকবে। + নীতিটি ফলসে সেট করা থাকলে ট্যাব লাইফসাইকেল বন্ধ থাকে এবং সমস্ত ট্যাবগুলি স্বাভাবিকভাবে চলতে থাকবে। - যদি নীতি ট্রু তে সেট করা থাকে বা তথ্য না দিয়েই ছেড়ে দেওয়া হয় তাহলে ট্যাব লাইফসাইকেলগুলি চালু থাকে।</translation> + যদি নীতি ট্রুতে সেট করা থাকে বা তথ্য না দিয়েই ছেড়ে দেওয়া হয় তাহলে ট্যাব লাইফসাইকেল চালু থাকে।</translation> <translation id="5208240613060747912">বিজ্ঞপ্তিগুলি প্রদর্শনের জন্য অনুমোদিত এমন সাইটগুলি নির্দিষ্ট করে এমন url ধরণগুলির একটি তালিকা আপনাকে সেট করার অনুমতি দেয়৷ যদি এই নীতিটি বামে সেট না করে ছেড়ে যাওয়া হয়, তাহলে গ্লোবাল ডিফল্ট মান সব সাইটগুলির জন্য ব্যবহার করা হবে যদি 'ডিফল্ট বিজ্ঞপ্তি সেটিং' নীতি সেট করা হয় তা থেকে, নয়তো ব্যবহারকারীদের ব্যক্তিগত কনফিগারেশান থেকে৷</translation> @@ -2625,7 +2625,7 @@ এই নীতি সেট না করে রাখা হলে, এন্টারপ্রাইজ-পরিচালিত ব্যবহারকারীদের জন্য ডিফল্টের অনুমতি দেওয়া হয় না এবং অ-পরিচালিত ব্যবহারকারীদের জন্য অনুমতি দেওয়া হয়।</translation> <translation id="729492886167634859">আপডেটটি প্রথম যখন খুঁজে পাওয়া যাবে, সেদিন থেকে শুরু করে প্রতি সপ্তাহে OU-এর যতগুলি <ph name="PRODUCT_OS_NAME" /> ডিভাইস আপডেট করতে হবে, তার শতকরা হারের একটি তালিকা এই নীতিতে নির্দিষ্ট করা থাকে। আপডেট দেখার সময়টি আপডেট প্রকাশিত হওয়ার সময়ের পরে আসে, কারণ প্রকাশ করার বেশ কিছুক্ষণ বা কিছু দিন পরে ডিভাইসটি আপডেট খুঁজতে পারে। - কত শতাংশ ডিভাইসে পরবর্তী ভার্সনে আপডেট করার কাজটি আপডেট খুঁজে পাওয়ার পরে n সংখ্যক সপ্তাহের মধ্যে করতে হবে, সেটি তালিকার h মান হিসেবে উল্লেখ করা থাকে। যেমন, আজ যদি একটি আপডেট খুঁজে পাওয়া যায় তাহলে আজ থেকে এক সপ্তাহের মধ্যে OU-এর যত শতাংশ ডিভাইস সেই ভার্সনে আপডেট করতে হবে, সেটি তালিকার প্রথম মান হিসেবে উল্লেখ করা থাকবে। OU-এর যত শতাংশ ডিভাইস আজ থেকে দুই সপ্তাহের মধ্যে সেই ভার্সনে আপডেট করতে হবে, সেটি দ্বিতীয় মান হিসেবে উল্লেখ করা থাকবে। + কত শতাংশ ডিভাইসে পরবর্তী ভার্সনে আপডেট করার কাজটি আপডেট খুঁজে পাওয়ার পরে n সংখ্যক সপ্তাহের মধ্যে করতে হবে, সেটি তালিকার n মান হিসেবে উল্লেখ করা থাকে। যেমন, আজ যদি একটি আপডেট খুঁজে পাওয়া যায় তাহলে আজ থেকে এক সপ্তাহের মধ্যে OU-এর যত শতাংশ ডিভাইস সেই ভার্সনে আপডেট করতে হবে, সেটি তালিকার প্রথম মান হিসেবে উল্লেখ করা থাকবে। OU-এর যত শতাংশ ডিভাইস আজ থেকে ২ সপ্তাহের মধ্যে সেই ভার্সনে আপডেট করতে হবে, সেটি দ্বিতীয় মান হিসেবে উল্লেখ করা থাকবে। এই নীতির জন্য যদি কোনও মান উল্লেখ করা থাকে তাহলে আপডেটগুলি <ph name="DEVICE_UPDATE_SCATTER_FACTOR_POLICY_NAME" /> নীতির বদলে এটি অনুসরণ করবে। @@ -3164,12 +3164,12 @@ প্যাটার্নের উদাহরণগুলির জন্য http://www.chromium.org/developers/how-tos/chrome-frame-getting-started দেখুন।</translation> <translation id="8493645415242333585">ব্রাউজার ইতিহাস সংরক্ষণ করা অক্ষম করুন</translation> -<translation id="8498293625012059298">পাসওয়ার্ড পরিবর্তনের ইউআরএল কনফিগার করুন (HTTP এবং HTTPS স্কিম শুধুমাত্র)। ব্রাউজারে সতর্কতা দেখার পর পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা এই ইউআরএলে পাঠিয়ে দেবে। +<translation id="8498293625012059298">পাসওয়ার্ড পরিবর্তনের ইউআরএল কনফিগার করুন (শুধুমাত্র HTTP এবং HTTPS স্কিম)। ব্রাউজারে সতর্কতা দেখার পর পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা এই ইউআরএলে পাঠিয়ে দেবে। পাসওয়ার্ড পরিবর্তন করার পৃষ্ঠাতে <ph name="PRODUCT_NAME" /> যাতে নতুন পাসওয়ার্ড ফিঙ্গারপ্রিন্টটি সঠিকভাবে চিনে নিতে পারে, তার জন্য দেখে নিন এই পৃষ্ঠাটি https://www.chromium.org/developers/design-documents/create-amazing-password-forms-এ উল্লেখ করা নির্দেশাবলী মেনে চলছে কিনা। - যদি এই সেটিংসটি চালু থাকে, ব্রাউজারে সতর্কতা দেখার পর পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা এই ইউআরএলে পাঠিয়ে দেবে। - যদি এই সেটিংসটি বন্ধ থাকে অথবা সেট না করা হয়, তাহলে পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা https://myaccounts.google.com এ পাঠিয়ে দেবে। - এই নীতিটি সেই উইন্ডোর ইনস্ট্যান্সগুলিতে কাজ করবে না যেগুলি <ph name="MS_AD_NAME" />-এ ডোমেনের সাথে যুক্ত নয়।</translation> + যদি এই সেটিং চালু থাকে, ব্রাউজারে সতর্কতা দেখার পর পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা এই ইউআরএলে পাঠিয়ে দেবে। + যদি এই সেটিং বন্ধ থাকে অথবা সেট না করা হয়, তাহলে পাসওয়ার্ড পরিবর্তনের জন্য আপনাকে পাসওয়ার্ড সুরক্ষা পরিষেবা https://myaccounts.google.com এ পাঠিয়ে দেবে। + <ph name="MS_AD_NAME" /> ডোমেনে যুক্ত নয় এমন Windows দৃষ্টান্তগুলিতে এই নীতিটি উপলভ্য নয়।</translation> <translation id="8499172469244085141">ডিফল্ট সেটিংস (ব্যবহারকারীরা পাল্টাতে পারেন)</translation> <translation id="8507835864888987300">অটোমেটিক আপডেটের জন্য টার্গেট ভার্সন সেট করুন। @@ -3231,7 +3231,7 @@ যদি এই নীতিটি 'PasswordProtectionWarningOff'-এ সেট করা হয় তাহলে পাসওয়ার্ডের নিরাপত্তা সম্পর্কিত কোনও সতর্কতা দেখানো হবে না। যদি এই নীতিটি 'PasswordProtectionWarningOnPasswordReuse'-এ সেট করা হয় তাহলে ব্যবহারকারী সাদা-তালিকাভুক্ত নয় এমন সাইটে পাসওয়ার্ড আবার ব্যবহার করলে পাসওয়ার্ডের নিরাপত্তা সম্পর্কিত সতর্কতা দেখানো হবে। যদি এই নীতিটি 'PasswordProtectionWarningOnPhishingReuse'-এ সেট করা হয় তাহলে ব্যবহারকারী ফিশিং সাইটে পাসওয়ার্ড আবার ব্যবহার করলে পাসওয়ার্ডের নিরাপত্তা সম্পর্কিত সতর্কতা দেখানো হবে। - যদি এই নীতিটি সেট না করেই ছেড়ে দেওয়া হয় তাহলে পাসওয়ার্ড সুরক্ষা পরিষেবা শুধুমাত্র Google-এর পাসওয়ার্ড সুরক্ষিত রাখবে কিন্তু ব্যবহারকারীরা এই সেটিংসটি পরিবর্তন করতে পারবেন।</translation> + যদি এই নীতিটি সেট না করেই ছেড়ে দেওয়া হয় তাহলে পাসওয়ার্ড সুরক্ষা পরিষেবা শুধুমাত্র Google-এর পাসওয়ার্ড সুরক্ষিত রাখবে কিন্তু ব্যবহারকারীরা এই সেটিং পরিবর্তন করতে পারবেন।</translation> <translation id="8672321184841719703">লক্ষ্য স্বয়ংক্রিয়ভাবে আপডেট করা সংস্করণ</translation> <translation id="867410340948518937">U2F (সর্বজনীন দ্বিতীয় পদক্ষেপ)</translation> <translation id="8685024486845674965">আবার পাসওয়ার্ড ব্যবহার করা হয়েছে বলে পাসওয়ার্ড সুরক্ষার সতর্কতা জানানো হয়েছে</translation>
diff --git a/components/policy/resources/policy_templates_cs.xtb b/components/policy/resources/policy_templates_cs.xtb index eab78cc..c3895ed 100644 --- a/components/policy/resources/policy_templates_cs.xtb +++ b/components/policy/resources/policy_templates_cs.xtb
@@ -1129,6 +1129,15 @@ Pokud tuto zásadu nenastavíte, použije se pro všechny webové stránky globální výchozí hodnota buď ze zásady DefaultKeygenSetting (pokud je nastavena), nebo z osobního nastavení uživatele.</translation> <translation id="4239720644496144453">Pro aplikace Android se mezipaměť nepoužívá. Pokud několik uživatelů nainstaluje stejnou aplikaci Android, stáhne se aplikace pro každého uživatele znovu.</translation> +<translation id="4243336580717651045">Zapne v prohlížeči <ph name="PRODUCT_NAME" /> shromažďování anonymizovaných dat přidružených k adresám URL a znemožňuje uživatelům toto nastavení změnit. + + Při shromažďování anonymizovaných dat přidružených k adresám URL se adresy URL navštívených stránek odesílají do Googlu kvůli usnadnění vyhledávání a prohlížení. + + Pokud zapnete tuto zásadu, shromažďování anonymizovaných dat přidružených k adresám URL bude vždy aktivní. + + Pokud tuto zásadu vypnete, shromažďování anonymizovaných dat nebude nikdy aktivní. + + Pokud tuto zásadu ponecháte nenastavenou, bude shromažďování anonymizovaných dat zapnuto, ale uživatel to bude moci změnit.</translation> <translation id="4250680216510889253">Ne</translation> <translation id="4261820385751181068">Jazyk přihlašovací obrazovky zařízení</translation> <translation id="427220754384423013">Určuje, které tiskárny uživatel může používat. @@ -1786,6 +1795,7 @@ Doporučený způsob uzamknutí obrazovky při nečinnosti je povolit uzamčení obrazovky při pozastavení a zapnout pozastavení systému <ph name="PRODUCT_OS_NAME" /> po uplynutí časové prodlevy nečinnosti. Tuto zásadu použijte, pouze pokud chcete obrazovku uzamknout podstatně dříve, než má dojít k pozastavení, nebo pokud pozastavení při nečinnosti vůbec nechcete používat. Hodnota této zásady se zadává v milisekundách. Pokud zadáte hodnotu vyšší než je prodleva při nečinnosti, použije se hodnota prodlevy při nečinnosti.</translation> +<translation id="6097601282776163274">Zapnout shromažďování anonymizovaných dat přidružených k adresám URL</translation> <translation id="6111936128861357925">Povolit hru s dinosaurem</translation> <translation id="6114416803310251055">zastaralé</translation> <translation id="6133088669883929098">Povolit všem webům generovat klíče</translation>
diff --git a/components/policy/resources/policy_templates_da.xtb b/components/policy/resources/policy_templates_da.xtb index 3039799..a38d2db 100644 --- a/components/policy/resources/policy_templates_da.xtb +++ b/components/policy/resources/policy_templates_da.xtb
@@ -1138,6 +1138,15 @@ Hvis denne politik ikke angives, anvendes den globale standardværdi på alle websites, enten fra politikken "DefaultKeygenSetting", hvis den er angivet, eller fra brugerens personlige konfiguration.</translation> <translation id="4239720644496144453">Cachen bruges ikke til Android-apps. Hvis flere brugere installerer den samme Android-app, downloades den på ny for hver bruger.</translation> +<translation id="4243336580717651045">Aktiverer anonym dataindsamling fra indtastede webadresser i <ph name="PRODUCT_NAME" /> og forhindrer brugerne i at ændre denne indstilling. + + Den anonyme dataindsamling fra indtastede webadresser sender webadresser for de sider, brugeren besøger, til Google med henblik på at forbedre søgninger og browsing. + + Hvis politikken aktiveres, er den anonyme dataindsamling fra indtastede webadresser altid aktiv. + + Hvis politikken deaktiveres, er den anonyme dataindsamling fra indtastede webadresser aldrig aktiv. + + Hvis politikken ikke konfigureres, aktiveres den anonyme dataindsamling fra indtastede webadresser, men brugeren kan ændre den.</translation> <translation id="4250680216510889253">Nej</translation> <translation id="4261820385751181068">Landestandard for loginskærme på enheder</translation> <translation id="427220754384423013">Angiver, hvilke printere en bruger kan anvende. @@ -1761,6 +1770,7 @@ Den anbefalede metode til skærmlåsning, når brugeren er inaktiv, er at aktivere skærmlåsning ved midlertidigt stop og få <ph name="PRODUCT_OS_NAME" /> til at stoppe midlertidigt efter den angivne forsinkelse for inaktivitet. Denne politik bør kun anvendes, når skærmen skal låses en betydelig mængde tid før det midlertidige stop, eller når det midlertidige stop i forbindelse inaktivitet slet ikke ønskes. Værdien for politikken bør angives i millisekunder. Værdierne skal være mindre end forsinkelsen for inaktivitet.</translation> +<translation id="6097601282776163274">Aktivér anonym dataindsamling fra indtastede webadresser</translation> <translation id="6111936128861357925">Tillad det ekstra dinosaurspil</translation> <translation id="6114416803310251055">frarådet</translation> <translation id="6133088669883929098">Tillad alle websites at anvende nøglegenerering</translation>
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb index 29add80..a7048c2 100644 --- a/components/policy/resources/policy_templates_de.xtb +++ b/components/policy/resources/policy_templates_de.xtb
@@ -1121,6 +1121,15 @@ Wenn diese Richtlinie nicht konfiguriert ist, wird für alle Websites entweder der globale Standardwert der Richtlinie "DefaultKeygenSetting", sofern festgelegt, oder die persönliche Konfiguration des Nutzers verwendet.</translation> <translation id="4239720644496144453">Der Cache wird nicht für Android-Apps verwendet. Wenn mehrere Nutzer die gleiche Android-App installieren, wird sie für jeden Nutzer neu heruntergeladen.</translation> +<translation id="4243336580717651045">Unter <ph name="PRODUCT_NAME" /> können Sie die anonymisierte URL-Erfassung von Daten aktivieren und Nutzer daran hindern, diese Einstellung zu ändern. + + Bei der anonymisierten URL-Erfassung von Daten werden die URLs der vom Nutzer besuchten Seiten an Google gesendet, um die Suche und das Surfen zu verbessern. + + Wenn Sie diese Richtlinie aktivieren, ist die anonymisierte URL-Erfassung von Daten immer aktiviert. + + Wenn Sie diese Richtlinie deaktivieren, ist die anonymisierte URL-Erfassung von Daten immer deaktiviert. + + Wenn diese Richtlinie nicht festgelegt wird, ist die anonymisierte URL-Erfassung von Daten aktiviert, aber der Nutzer kann diese Einstellung ändern.</translation> <translation id="4250680216510889253">Nein</translation> <translation id="4261820385751181068">Sprache der Anmeldeseite</translation> <translation id="427220754384423013">Gibt die Drucker an, die ein Nutzer verwenden kann. @@ -1746,6 +1755,7 @@ Wenn der Bildschirm bei Inaktivität gesperrt werden soll, empfehlen wir, die Bildschirmsperre für den Wechsel in den Suspend-Modus zu aktivieren und <ph name="PRODUCT_OS_NAME" /> anzuweisen, nach der Inaktivitätsverzögerung in den Suspend-Modus zu wechseln. Diese Richtlinie sollte nur verwendet werden, wenn die Bildschirmsperre deutlich früher aktiviert werden soll als der Suspend-Modus oder wenn der Suspend-Modus bei Inaktivität nicht erwünscht ist. Der Richtlinienwert muss in Millisekunden angegeben werden und wird automatisch auf einen Wert unter der Inaktivitätsverzögerung reduziert.</translation> +<translation id="6097601282776163274">Anonymisierte URL-Erfassung von Daten aktivieren</translation> <translation id="6111936128861357925">Easter Egg-Dinosaurierspiel zulassen</translation> <translation id="6114416803310251055">Veraltet</translation> <translation id="6133088669883929098">Schlüsselgenerierung für alle Websites zulassen</translation>
diff --git a/components/policy/resources/policy_templates_fil.xtb b/components/policy/resources/policy_templates_fil.xtb index 5668d13ee..d3a6a57 100644 --- a/components/policy/resources/policy_templates_fil.xtb +++ b/components/policy/resources/policy_templates_fil.xtb
@@ -1161,6 +1161,15 @@ Kung hinayaang hindi nakatakda ang patakaran na ito, gagamitin ang default na pandaigdigang value para sa lahat ng site mula sa patakaran na 'DefaultKeygenSetting' kung nakatakda ito, o kung hindi naman ay sa personal na configuration ng user.</translation> <translation id="4239720644496144453">Hindi ginagamit ang cache para sa mga Android app. Kung ii-install ng maraming user ang parehong Android app, ida-download itong muli para sa bawat user.</translation> +<translation id="4243336580717651045">Nag-e-enable sa pangongolekta ng naka-anonymize na data na may key ng URL sa <ph name="PRODUCT_NAME" /> at pumipigil sa mga user na baguhin ang setting na ito. + + Nagpapadala ang pangongolekta ng naka-anonymize na data na may key ng URL sa Google ng mga URL ng mga page na binibisita ng user para mapahusay ang mga paghahanap at pag-browse. + + Kung ie-enable mo ang patakarang ito, palaging aktibo ang pangongolekta ng naka-anonymize na data na may key ng URL. + + Kung idi-disable mo ang patakarang ito, hindi magiging aktibo ang pangongolekta ng naka-anonymize na data na may key ng URL. + + Kung hahayaang hindi nakatakda ang patakarang ito, ie-enable ang pangongolekta ng naka-anonymize na data na may key ng URL ngunit mababago ito ng user.</translation> <translation id="4250680216510889253">Hindi</translation> <translation id="4261820385751181068">Lokal ng screen sa pag-sign in ng device</translation> <translation id="427220754384423013">Tinutukoy ang mga printer na maaaring gamitin ng isang user. @@ -1820,6 +1829,7 @@ Ang inirerekomendang paraan ng pag-lock ng screen sa idle ay ang i-enable ang pagla-lock ng screen habang naka-suspend at hayaang mag-suspend ang <ph name="PRODUCT_OS_NAME" /> pagkatapos ang itinakdang oras ng pagiging idle. Dapat lang gamitin ang patakarang ito kapag magaganap ang pagla-lock ng screen sa loob ng mas maikling panahon kaysa sa suspend o kapag hindi mo gustong mangyari ang pag-suspend habang naka-idle. Dapat tukuyin ang value ng patakaran sa milliseconds. Itinatakda ang mga value upang maging mas maikli ang mga ito kaysa sa itinakdang oras ng pagiging idle.</translation> +<translation id="6097601282776163274">Nag-e-enable sa pangongolekta ng naka-anonymize na data na may key ng URL</translation> <translation id="6111936128861357925">Pahintulutan ang Dinosaur Easter Egg Game</translation> <translation id="6114416803310251055">hindi na ginagamit</translation> <translation id="6133088669883929098">Payagan ang lahat ng site na gumamit ng pagbuo ng key</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb index b15e9b4..975c88bd 100644 --- a/components/policy/resources/policy_templates_fr.xtb +++ b/components/policy/resources/policy_templates_fr.xtb
@@ -637,7 +637,7 @@ Cette option doit être définie lorsque la règle "DefaultSearchProviderEnabled" est activée et ne sera respectée que si c'est le cas.</translation> <translation id="2660846099862559570">Ne jamais utiliser de proxy</translation> -<translation id="267596348720209223">Spécifie les codages de caractères compatibles avec le moteur de recherche. Les codages sont des noms de page de code, comme UTF-8, GB2312 et ISO-8859-1. Ils sont testés dans l'ordre indiqué. +<translation id="267596348720209223">Spécifie les encodages de caractères compatibles avec le moteur de recherche. Les encodages sont des noms de page de code, comme UTF-8, GB2312 et ISO-8859-1. Ils sont testés dans l'ordre indiqué. Cette règle est facultative. Si elle n'est pas configurée, la valeur par défaut UTF-8 est utilisée.
diff --git a/components/policy/resources/policy_templates_gu.xtb b/components/policy/resources/policy_templates_gu.xtb index 6a44c4a9..6438200 100644 --- a/components/policy/resources/policy_templates_gu.xtb +++ b/components/policy/resources/policy_templates_gu.xtb
@@ -1329,6 +1329,15 @@ જો આ નીતિ સેટ કર્યા વિના છોડી હોય તો ડિફૉલ્ટ રોમિંગ પ્રોફાઇલ પથનો ઉપયોગ કરવામાં આવશે.</translation> <translation id="4239720644496144453">કૅશનો ઉપયોગ Android અૅપ્લિકેશનો માટે કરવામાં આવતો નથી. જો બહુવિધ વપરાશકર્તાઓ સમાન Android અૅપ્લિકેશન ઇન્સ્ટૉલ કરે છે, તો તે દરેક વપરાશકર્તા માટે નવેસરથી ડાઉનલોડ કરવામાં આવશે.</translation> +<translation id="4243336580717651045"><ph name="PRODUCT_NAME" />માં URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ ચાલુ કરો અને વપરાશકર્તાઓને આ સેટિંગ બદલવાથી રોકો. + + શોધ અને બ્રાઉઝિંગને વધુ સારું બનાવવા માટે, URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ વપરાશકર્તા જે પેજની મુલાકાત લે તેના URLs Googleને મોકલે છે. + + જો તમે આ નીતિ ચાલુ કરશો, તો URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ હંમેશાં સક્રિય રહેશે. + + જો તમે આ નીતિ બંધ કરશો, તો URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ ક્યારેય સક્રિય નહીં થાય. + + જો આ નીતિ સેટ કર્યા વિનાની હશે, તો URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ ચાલુ થશે, પણ વપરાશકર્તા તેને બદલી શકશે.</translation> <translation id="4250680216510889253">નહીં</translation> <translation id="4261820385751181068">ઉપકરણ સાઇન ઇન સ્ક્રીન લોકેલ</translation> <translation id="427220754384423013">વપરાશકર્તા ઉપયોગમાં લઈ શકે તે પ્રિન્ટરને ઉલ્લેખિત કરે છે. @@ -2081,6 +2090,7 @@ નિષ્ક્રિય હોવા પર સ્ક્રીનને લૉક કરવાની ભલામણ કરેલ રીત એ સસ્પેન્ડ પર સ્ક્રીન લૉક કરવાને સક્ષમ કરવી છે અને નિષ્ક્રિય વિલંબ પછી <ph name="PRODUCT_OS_NAME" /> ને સસ્પેન્ડ કરવું છે. જ્યારે સ્ક્રીન લૉક કરવું સસ્પેન્ડ કરવાના નોંધપાત્ર સમય કરતાં જલ્દી જ થાય છે અથવા નિષ્ક્રિય સદંતર ઇચ્છિત ન હોય ત્યારે જ આ નીતિનો ઉપયોગ કરવો જોઈએ. નીતિ મૂલ્યનો ઉલ્લેખ મિલિસેકંડમાં કરવો જોઈએ. મૂલ્યો નિષ્ક્રિય વિલંબ કરતાં ઓછા પર રાખેલા છે.</translation> +<translation id="6097601282776163274">URL-કીવાળા અનામીકૃત ડેટાનું એકત્રીકરણ ચાલુ કરો</translation> <translation id="6111936128861357925">ડાઇનોસોર ઈસ્ટર એગ રમતની મંજૂરી આપો</translation> <translation id="6114416803310251055">નાપસંદ કરેલ</translation> <translation id="6133088669883929098">તમામ સાઇટ્સને કી જનરેશનનો ઉપયોગ કરવાની મંજૂરી આપો</translation>
diff --git a/components/policy/resources/policy_templates_hi.xtb b/components/policy/resources/policy_templates_hi.xtb index 9304ddbf1..14ccc28 100644 --- a/components/policy/resources/policy_templates_hi.xtb +++ b/components/policy/resources/policy_templates_hi.xtb
@@ -1170,6 +1170,15 @@ अगर इस नीति को नहीं जोड़ा जाता है तो, सभी साइट के लिए वैश्विक डिफ़ॉल्ट मान का इस्तेमाल किया जाएगा. अगर 'DefaultKeygenSetting' नीति सेट है तो, यह मान इससे लिया जाएगा नहीं तो फिर उपयोगकर्ता के निजी कॉन्फ़िगरेशन का इस्तेमाल किया जाएगा.</translation> <translation id="4239720644496144453">संचय का उपयोग Android ऐप्लिकेशन के लिए नहीं किया जाता है. यदि एकाधिक उपयोगकर्ता समान Android ऐप्लिकेशन इंस्टॉल करते हैं, तो उसे प्रत्येक उपयोगकर्ता के लिए नए सिरे से डाउनलोड किया जाएगा.</translation> +<translation id="4243336580717651045">यह नीति <ph name="PRODUCT_NAME" /> में 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग चालू करती है और उपयोगकर्ताओं को यह सेटिंग बदलने से रोकती है. + + 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग खोजों और ब्राउज़िंग को बेहतर बनाने के लिए Google को उन पेज के यूआरएल भेजती है जिन पर उपयोगकर्ता जाता है. + + अगर आप इस नीति को चालू करते हैं, तो 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग हमेशा काम करती रहती है. + + अगर आप इस नीति को बंद करते हैं, तो 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग कभी काम नहीं करती है. + + अगर इस नीति को सेट किए बिना छोड़ दिया जाता है, तो 'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह की सेटिंग चालू कर दी जाएगी लेकिन उपयोगकर्ता इसे बदल सकेगा.</translation> <translation id="4250680216510889253">नहीं</translation> <translation id="4261820385751181068">डिवाइस प्रवेश स्क्रीन भाषा</translation> <translation id="427220754384423013">उन प्रिंटर के बारे में बताती है जिनका इस्तेमाल कोई उपयोगकर्ता कर सकता है. @@ -1838,6 +1847,7 @@ निष्क्रिय होने पर स्क्रीन को लॉक करने का सुझाए गए तरीका निलंबन पर स्क्रीन लॉक को सक्षम करना और निष्क्रिय विलंब के बाद <ph name="PRODUCT_OS_NAME" /> को निलंबित करना है. यह नीति केवल तभी उपयोग की जानी चाहिए जब स्क्रीन लॉक, निलंबन से कुछ निश्चित समय से पहले हो जाता है या जब निष्क्रियण पर निलंबन इच्छित न हो. नीति मान को मिलीसेकंड में निर्दिष्ट किया जाना चाहिए. मानों को निष्क्रिय विलंब से कम के लिए क्लैम्प किया जाता है.</translation> +<translation id="6097601282776163274">'यूआरएल-की' के साथ पहचान ज़ाहिर न करने वाले डेटा संग्रह को चालू करती है</translation> <translation id="6111936128861357925">डाइनासोर ईस्टर गेम की अनुमति दें</translation> <translation id="6114416803310251055">अनुचित</translation> <translation id="6133088669883929098">सभी साइट को कुकी जेनरेशन का उपयोग करने दें</translation>
diff --git a/components/policy/resources/policy_templates_hr.xtb b/components/policy/resources/policy_templates_hr.xtb index 73f34f3..29b1029a 100644 --- a/components/policy/resources/policy_templates_hr.xtb +++ b/components/policy/resources/policy_templates_hr.xtb
@@ -1131,6 +1131,15 @@ Ako se to pravilo ne postavi, globalna zadana vrijednost upotrebljavat će se za sve web-lokacije iz pravila "DefaultKeygenSetting" ako je postavljeno, a u suprotnom iz korisnikove osobne konfiguracije.</translation> <translation id="4239720644496144453">Za Android aplikacije ne upotrebljava se predmemorija. Ako više korisnika instalira istu Android aplikaciju, ta će se aplikacija preuzeti iznova za svakog korisnika.</translation> +<translation id="4243336580717651045">Omogućuje prikupljanje anonimiziranih podataka zaključano URL-om u pregledniku <ph name="PRODUCT_NAME" /> i korisnicima onemogućuje da promijene tu postavku. + + Prikupljanje anonimiziranih podataka zaključano URL-om Googleu šalje URL-ove stranica koje korisnik posjeti radi poboljšanja pretraživanja i pregledavanja. + + Ako omogućite to pravilo, prikupljanje anonimiziranih podataka zaključano URL-om stalno je aktivno. + + Ako onemogućite to pravilo, prikupljanje anonimiziranih podataka zaključano URL-om nikad nije aktivno. + + Ako se to pravilo ne postavi, prikupljanje anonimiziranih podataka zaključano URL-om bit će omogućeno, no korisnik će to moći promijeniti.</translation> <translation id="4250680216510889253">Ne</translation> <translation id="4261820385751181068">Oznaka zemlje/jezika za zaslon za prijavu na uređaju</translation> <translation id="427220754384423013">Određuje pisače koje korisnik može upotrebljavati. @@ -1761,6 +1770,7 @@ Preporučeni način zaključavanja zaslona u mirovanju jest omogućiti zaključavanje zaslona u obustavljenom načinu i obustaviti <ph name="PRODUCT_OS_NAME" /> nakon vremena do ulaska u stanje mirovanja. To bi se pravilo trebalo upotrebljavati samo kada bi do zaključavanja zaslona trebalo dolaziti značajno prije nego do obustavljanja ili kada obustavljanje u mirovanju uopće nije poželjno. Vrijednost pravila treba navesti u milisekundama. Vrijednosti se ograničavaju kako bi bile kraće od vremena do ulaska u stanje mirovanja.</translation> +<translation id="6097601282776163274">Omogući prikupljanje anonimiziranih podataka zaključano URL-om</translation> <translation id="6111936128861357925">Dopuštanje skrivene igre s dinosaurom</translation> <translation id="6114416803310251055">neodobreno</translation> <translation id="6133088669883929098">Dopusti svim web-lokacijama da upotrebljavaju generiranje ključeva</translation>
diff --git a/components/policy/resources/policy_templates_iw.xtb b/components/policy/resources/policy_templates_iw.xtb index 99a16eb..7701fae 100644 --- a/components/policy/resources/policy_templates_iw.xtb +++ b/components/policy/resources/policy_templates_iw.xtb
@@ -1124,6 +1124,15 @@ אם מדיניות זו לא הוגדרה, המערכת תשתמש בערך ברירת המחדל הכללי עבור כל האתרים לפי המדיניות 'DefaultKeygenSetting' במקרה שהוגדרה, או לפי התצורה האישית שקבע המשתמש במקרה שלא הוגדרה.</translation> <translation id="4239720644496144453">אפליקציות Android אינן משתמשות בקובץ השמור. אם מספר משתמשים יתקינו את אותה אפליקציית Android, תתבצע הורדה חוזרת שלה בשביל כל משתמש.</translation> +<translation id="4243336580717651045">הפעלת איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר במסגרת <ph name="PRODUCT_NAME" />, ומניעת היכולת של משתמשים לשנות את ההגדרה הזאת. + + במסגרת איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר, כתובות אתרים של דפים שהמשתמש ביקר בהם נשלחות אל Google במטרה לשפר את האיכות של החיפושים והגלישה. + + אם המדיניות הזאת מופעלת, איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר תמיד פעיל. + + אם המדיניות הזאת מושבתת, איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר אף פעם לא פעיל. + + אם המדיניות הזאת לא מוגדרת, איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר יופעל, אבל המשתמשים יוכלו לשנות את ההגדרה.</translation> <translation id="4250680216510889253">לא</translation> <translation id="4261820385751181068">הגדרת המקום של מסך הכניסה במכשיר</translation> <translation id="427220754384423013">מציינת את המדפסות הזמינות למשתמש. @@ -1299,9 +1308,9 @@ אם ההגדרה הזו מקבלת את הערך 'לא_נכון', לא יאוחזרו או יוצגו הצעות.</translation> <translation id="4788252609789586009">המדיניות מפעילה את תכונת המילוי האוטומטי של <ph name="PRODUCT_NAME" /> ומאפשרת למשתמשים להשלים אוטומטית פרטים של כרטיס אשראי בטפסים באינטרנט, באמצעות מידע שאוחסן בעבר. - אם ההגדרה הזו מושבתת, המילוי האוטומטי לא יציע למלא פרטי כרטיס אשראי ולא יעשה זאת באופן אוטומטי. כמו כן לא יישמרו פרטים של כרטיסי אשראי נוספים שהמשתמש יזין בזמן גלישה באינטרנט. + אם ההגדרה הזו מושבתת, לא מוצגות הצעות למלא באופן אוטומטי פרטים של כרטיסי אשראי, והמילוי אינו מתבצע באופן אוטומטי. כמו כן, לא יישמרו פרטים של כרטיסי אשראי נוספים שהמשתמש יזין בזמן גלישה באינטרנט. - אם ההגדרה הזו מופעלת או אם לא נקבע הערך שלה, המשתמש יוכל לקבוע דרך ממשק המשתמש את ההגדרות של תכונת המילוי האוטומטי בשביל כרטיסי אשראי.</translation> + אם ההגדרה הזו מופעלת, או אם לא נקבע הערך שלה, המשתמש יוכל לקבוע דרך ממשק המשתמש את ההגדרות של תכונת המילוי האוטומטי בשביל כרטיסי אשראי.</translation> <translation id="4791031774429044540">הפעל את תכונת הנגישות של סמן גדול. אם מדיניות זו מוגדרת ל-True, הסמן הגדול יהיה מופעל תמיד. @@ -1425,7 +1434,7 @@ אם המדיניות הזו מוגדר כ-True, <ph name="PRODUCT_OS_NAME" /> ימנע מהמכשיר לבצע אתחול במצב מפתח. המערכת תסרב לבצע אתחול ותציג שגיאה כשמתג המפתח פועל. אם המדיניות הזו מוגדרת כ-False, מצב המפתח יישאר זמין עבור המכשיר.</translation> -<translation id="520403427390290017">תכונת מחזורי החיים של כרטיסיות מצמצמת את השימוש ביחידת העיבוד המרכזית (CPU) ובעקבות כך את נפח הזיכרון הנחוץ להפעלת כרטיסיות שלא נעשה בהן שימוש במשך תקופה ארוכה. קודם לכן צריכת המשאבים מצומצמת, לאחר מכן הפעילות בכרטיסיות מופסקת ולבסוף הן נסגרות. +<translation id="520403427390290017">תכונת מחזורי החיים של כרטיסיות מצמצמת את השימוש ביחידת העיבוד המרכזית (CPU), ובעקבות כך את נפח הזיכרון הנחוץ להפעלת כרטיסיות שלא נעשה בהן שימוש במשך תקופה ארוכה. קודם צריכת המשאבים מצומצמת, לאחר מכן הפעילות בכרטיסיות מופסקת ולבסוף הן נסגרות. אם המדיניות מוגדרת כ-false, תכונת מחזורי החיים של כרטיסיות מושבתת וכל הכרטיסיות ימשיכו לפעול כרגיל. @@ -1743,6 +1752,7 @@ הדרך המומלצת לנעול את המסך בזמן של חוסר פעילות היא להפעיל נעילת מסך בהשעייה, ולהגדיר את <ph name="PRODUCT_OS_NAME" /> לביצוע ההשעייה לאחר שחלף פרק הזמן של חוסר הפעילות. יש להשתמש במדיניות זו רק כאשר נעילת המסך צריכה להתרחש הרבה לפני ההשעייה, או כאשר אינך מעוניין להשתמש כלל בהשעייה בזמן חוסר פעילות. יש לציין את פרק הזמן באלפיות שנייה. הערכים צריכים להיות קטנים יותר מפרק הזמן של חוסר פעילות.</translation> +<translation id="6097601282776163274">הפעלת איסוף נתונים שעברו אנונימיזציה עם קידוד לפי כתובת אתר</translation> <translation id="6111936128861357925">אפשר לשחק במשחק ביצי הפסחא של הדינוזאורים (Dinosaur Easter Egg)</translation> <translation id="6114416803310251055">הוצאה משימוש</translation> <translation id="6133088669883929098">אפשר לכל האתרים להשתמש ביצירת מפתחות</translation> @@ -2157,15 +2167,15 @@ אם הגדרה זו מושבתת, תכונה זו לא תהיה זמינה.</translation> <translation id="7275334191706090484">סימניות מנוהלות</translation> -<translation id="729492886167634859">המדיניות הזו מגדירה רשימת של ערכי אחוזים. ערכי האחוזים האלה קובעים את שיעור מכשירי <ph name="PRODUCT_OS_NAME" /> ביחידה הארגונית שיש לעדכן בכל שבוע, החל מהיום שבו המערכת מאתרת לראשונה את העדכון. מועד האיתור חל מאוחר יותר ממועד פרסום העדכון, כי יכול לחלוף זמן מרגע פרסום העדכון ועד שהמכשיר מחפש עדכונים. +<translation id="729492886167634859">המדיניות הזו מגדירה רשימה של ערכי אחוזים. ערכי האחוזים האלה קובעים את שיעור מכשירי <ph name="PRODUCT_OS_NAME" /> ביחידה הארגונית שיש לעדכן בכל שבוע, החל מהיום שבו המערכת מאתרת לראשונה את העדכון. האיתור נעשה במועד מאוחר מזה שבו פורסם העדכון, כי יכול לחלוף זמן מרגע פרסום העדכון ועד שהמכשיר מחפש עדכונים. ערך n ברשימה מציין את אחוז המכשירים שישלימו עדכון גרסה בשבוע ה-n לאחר איתור העדכון. לדוגמה, אם עדכון יאותר היום, הערך הראשון ברשימה מגדיר את אחוז המכשירים ביחידה הארגונית שיעודכנו לגרסה הזו בתוך שבוע מהיום. הערך השני מגדיר את אחוז המכשירים ביחידה הארגונית שיעודכנו לגרסה הזו בתוך שבועיים מהיום, וכן הלאה. - אם הוגדר ערך בשביל המדיניות הזו, עדכונים יתעלמו מהמדיניות <ph name="DEVICE_UPDATE_SCATTER_FACTOR_POLICY_NAME" /> ויפעלו במקום זאת לפי המדיניות הזו. + אם הוגדר ערך בשביל המדיניות הזו, עדכונים יתעלמו מהמדיניות <ph name="DEVICE_UPDATE_SCATTER_FACTOR_POLICY_NAME" /> ויפעלו לפי המדיניות הזו. אם הרשימה הזו ריקה, אין שלבי ביניים והעדכונים יוחלו בהתאם לסעיפים האחרים של מדיניות המכשיר. - המדיניות הזו לא חלה על החלפת ערוצים.</translation> + המדיניות הזו לא חלה על מעבר לערוץ אחר.</translation> <translation id="7295019613773647480">הפעלת משתמשים בפיקוח</translation> <translation id="7301543427086558500">מדיניות זו מגדירה רשימה של כתובות אתרים חלופיות שיכולות לשמש לחילוץ מונחי חיפוש ממנוע החיפוש. כתובות האתרים יכילו את המחרוזת <ph name="SEARCH_TERM_MARKER" />, שתשמש לחילוץ מונחי החיפוש.
diff --git a/components/policy/resources/policy_templates_kn.xtb b/components/policy/resources/policy_templates_kn.xtb index 6d5cd7b..9b142eb 100644 --- a/components/policy/resources/policy_templates_kn.xtb +++ b/components/policy/resources/policy_templates_kn.xtb
@@ -1235,6 +1235,15 @@ ಬಳಸಬಹುದಾದ ವೇರಿಯಬಲ್ಗಳ ಪಟ್ಟಿಗಾಗಿ https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables ನೋಡಿ. ಈ ನೀತಿಯನ್ನು ಹೊಂದಿಸದೇ ಬಿಟ್ಟಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ರೋಮಿಂಗ್ ಪ್ರೊಫೈಲ್ ಹಾದಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.</translation> <translation id="4239720644496144453">Android ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಸಂಗ್ರಹವನ್ನು ಬಳಸಲಾಗಿಲ್ಲ. ಒಂದೇ Android ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹಲವು ಬಳಕೆದಾರರು ಸ್ಥಾಪಿಸಿದ್ದರೆ, ಪ್ರತಿ ಬಳಕೆದಾರರಿಗೆ ಅದನ್ನು ಹೊಸತಾಗಿ ಡೌನ್ಲೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ.</translation> +<translation id="4243336580717651045">URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವನ್ನು <ph name="PRODUCT_NAME" /> ನಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಈ ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ಬದಲಿಸುವುದರಿಂದ ಬಳಕೆದಾರರನ್ನು ತಡೆಯುತ್ತದೆ. + + ಬ್ರೌಸಿಂಗ್ ಮತ್ತು ಹುಡುಕಾಟಗಳನ್ನು ಉತ್ತಮಗೊಳಿಸಲು, URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವು ಬಳಕೆದಾರರು ಭೇಟಿ ನೀಡುವ ಪುಟಗಳ URL ಗಳನ್ನು Google ಗೆ ಕಳುಹಿಸುತ್ತದೆ. + + ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದರೆ, URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವು ಯಾವಾಗಲೂ ಕ್ರಿಯಾತ್ಮಕವಾಗಿರುತ್ತದೆ. + + ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದರೆ, URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವು ಎಂದಿಗೂ ಕ್ರಿಯಾತ್ಮಕವಾಗಿರುವುದಿಲ್ಲ. + + ನೀವು ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ಹೊಂದಿಸದೆ ಬಿಟ್ಟರೆ, URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರಿಗೆ ಅದನ್ನು ಬದಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation> <translation id="4250680216510889253">ಇಲ್ಲ</translation> <translation id="4261820385751181068">ಸಾಧನ ಸೈನ್-ಇನ್ ಪರದೆ ಸ್ಥಳ</translation> <translation id="427220754384423013">ಬಳಕೆದಾರರು ಬಳಸಬಹುದಾದ ಪ್ರಿಂಟರ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. @@ -1924,6 +1933,7 @@ ತಟಸ್ಥವಾಗಿರುವ ಪರದೆಯನ್ನು ಲಾಕ್ ಮಾಡಲು ಶಿಫಾರಸು ಮಾಡಲಾದ ವಿಧಾನವೆಂದರೆ, ಅಮಾನತ್ತಿನಲ್ಲಿರುವಾಗ ಸ್ಕ್ರೀನ್ ಲಾಕ್ ಮಾಡುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದು ಮತ್ತು ತಟಸ್ಥ ವಿಳಂಬದ ನಂತರ <ph name="PRODUCT_OS_NAME" /> ಅಮಾನತ್ತು ಮಾಡುವಂತೆ ಮಾಡುವುದಾಗಿದೆ. ಅಮಾನತು ಮಾಡಿದ ಬಳಿಕ ಗಮನಾರ್ಹವಾಗಿ ಬೇಗದ ಸಮಯದಲ್ಲೇ ಅಥವಾ ತಟಸ್ಥದ ಅಮಾನತನ್ನು ಇನ್ನೂ ತೀರ್ಮಾನಿಸದಿರುವಾಗ ಪರದೆ ಲಾಕಿಂಗ್ ಸಂಭವಿಸಿದರೆ ಮಾತ್ರ ಈ ನೀತಿಯನ್ನು ಬಳಸಬೇಕು. ನೀತಿ ಮೌಲ್ಯವನ್ನು ಮಿಲಿಸೆಕೆಂಡುಗಳಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಬೇಕು. ಮೌಲ್ಯಗಳು ತಟಸ್ಥ ವಿಳಂಬಕ್ಕಿಂತಲೂ ಕಡಿಮೆ ಇರುವಂತೆ ಹೊಂದಿಸಿರಬೇಕು.</translation> +<translation id="6097601282776163274">URL-ಸೇರಿಸಲಾದ ಅನಾಮಧೇಯ ಡೇಟಾ ಸಂಗ್ರಹವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation> <translation id="6111936128861357925">ಡೈನೋಸಾರ್ ಈಸ್ಟರ್ ಎಗ್ ಆಟ ಅನುಮತಿಸಿ</translation> <translation id="6114416803310251055">ಪ್ರಾರ್ಥಿಸಲಾಗಿದೆ</translation> <translation id="6133088669883929098">ಕೀ ರಚನೆ ಬಳಸಲು ಎಲ್ಲ ಸೈಟ್ಗಳಿಗೆ ಅನುಮತಿಸಿ</translation>
diff --git a/components/policy/resources/policy_templates_lt.xtb b/components/policy/resources/policy_templates_lt.xtb index 1a3cba9..e507bb0f5 100644 --- a/components/policy/resources/policy_templates_lt.xtb +++ b/components/policy/resources/policy_templates_lt.xtb
@@ -1170,6 +1170,15 @@ Nenustačius šios politikos visose svetainėse bus naudojama visuotinė numatytoji vertė iš politikos „DefaultKeygenSetting“ (jei nustatyta) arba naudotojo asmeninės konfigūracijos.</translation> <translation id="4239720644496144453">Talpykla nenaudojama „Android“ programose. Jei keli naudotojai įdiegs tą pačią „Android“ programą, kiekvienam naudotojui bus atsisiųsta nauja programa.</translation> +<translation id="4243336580717651045">Sistemoje „<ph name="PRODUCT_NAME" />“ įgalinamas URL pagrįstas anonimizuotų duomenų rinkimas ir naudotojams neleidžiama keisti šio nustatymo. + + Renkant URL pagrįstus anonimizuoti duomenis, puslapių, kuriuose apsilanko naudotojai, URL siunčiami į sistemą „Google“ siekiant pagerinti paieškas ir naršymą. + + Jei įgalinsite šią politiką, URL pagrįsto anonimizuotų duomenų rinkimo funkcija visada bus aktyvi. + + Jei išjungsite šią politiką, URL pagrįsto anonimizuotų duomenų rinkimo funkcija niekada nebus aktyvi. + + Jei ši politika bus palikta nenustatyta, URL pagrįsto anonimizuotų duomenų rinkimo funkcija bus įgalinta, bet naudotojas galės ją pakeisti.</translation> <translation id="4250680216510889253">Ne</translation> <translation id="4261820385751181068">Įrenginio prisijungimo ekrano lokalė</translation> <translation id="427220754384423013">Nurodomi spausdintuvai, kuriuos gali naudoti naudotojas. @@ -1831,6 +1840,7 @@ Rekomenduojamas būdas užrakinti ekraną, kai naudotojas tampa neaktyvus, – įgalinti ekrano užraktą, kai įrenginys laikinai sustabdomas, ir nustatyti, kad „<ph name="PRODUCT_OS_NAME" />“ kad laikinai sustabdytų įrenginį po neaktyvumo laikotarpio. Ši politika turėtų būti naudojama tik norint, kad ekrano užraktas būtų suaktyvintas žymiai anksčiau nei laikinas sustabdymas arba kai įrenginys neturi būti laikinai sustabdomas po neaktyvumo laikotarpio. Politikos vertė turėtų būti nurodyta milisekundėmis. Vertės apribojamos, kad būtų mažesnės nei neaktyvumo laikotarpis.</translation> +<translation id="6097601282776163274">Įgalinti URL pagrįstą anonimizuotų duomenų rinkimą</translation> <translation id="6111936128861357925">Leisti dinozaurų Velykų kiaušinių žaidimą</translation> <translation id="6114416803310251055">nepatvirtinta</translation> <translation id="6133088669883929098">Leisti visoms svetainėms naudoti rakto generavimą</translation>
diff --git a/components/policy/resources/policy_templates_lv.xtb b/components/policy/resources/policy_templates_lv.xtb index 5be99e9..d195824c 100644 --- a/components/policy/resources/policy_templates_lv.xtb +++ b/components/policy/resources/policy_templates_lv.xtb
@@ -1167,6 +1167,14 @@ Ja šī politika nav iestatīta, visām vietnēm tiks izmantota globālā noklusējuma vērtība no politikas “DefaultKeygenSetting” (ja tā ir iestatīta) vai pretējā gadījumā no lietotāja personīgās konfigurācijas.</translation> <translation id="4239720644496144453">Android lietotnēs netiek izmantota kešatmiņa. Ja vairāki lietotāji instalē vienu Android lietotni, tā tiks no jauna lejupielādēta katram lietotājam.</translation> +<translation id="4243336580717651045">Pārlūkā <ph name="PRODUCT_NAME" /> iespējo uz vietrāžiem URL balstītu anonimizētu datu apkopošanu un liedz lietotājiem šo iestatījumu mainīt. + Ja tiek īstenota uz vietrāžiem URL balstīta anonimizētu datu apkopošana, lietotāju apmeklēto lapu vietrāži URL tiek nosūtīti Google serveriem, lai uzlabotu meklēšanu un pārlūkošanu. + + Ja šī politika ir iespējota, uz vietrāžiem URL balstīta anonimizētu datu apkopošana vienmēr ir aktīva. + + Ja šī politika ir atspējota, uz vietrāžiem URL balstīta anonimizētu datu apkopošana nekad nav aktīva. + + Ja šī politika nav iestatīta, uz vietrāžiem URL balstīta anonimizētu datu apkopošana ir iespējota, taču lietotājs to varēs mainīt.</translation> <translation id="4250680216510889253">Nē</translation> <translation id="4261820385751181068">Ierīces pierakstīšanās ekrāna lokalizācija</translation> <translation id="427220754384423013">Norāda printerus, ko lietotājs var izmantot. @@ -1831,6 +1839,7 @@ Ieteicamais veids, kā bloķēt ekrānu pēc noteikta neaktivitātes perioda, ir iespējot ekrāna bloķēšanu, kad tiek apturēta darbība, un iestatīt operētājsistēmā <ph name="PRODUCT_OS_NAME" /> darbības apturēšanu pēc neaktivitātes atlikšanas. Šī politika ir jāizmanto tikai tad, ja ekrāns jābloķē ievērojami agrāk par darbības apturēšanu vai ja nav vēlams apturēt darbību neaktivitātes laikā. Politikas vērtība ir jānorāda milisekundēs. Vērtības vienmēr būs mazākas nekā neaktivitātes atlikšana.</translation> +<translation id="6097601282776163274">Iespējot uz vietrāžiem URL balstītu anonimizētu datu apkopošanu</translation> <translation id="6111936128861357925">Dinozauru spēles atļaušana</translation> <translation id="6114416803310251055">novecojis</translation> <translation id="6133088669883929098">Atļaut izmantot atslēgu ģenerēšanu visās vietnēs</translation>
diff --git a/components/policy/resources/policy_templates_ml.xtb b/components/policy/resources/policy_templates_ml.xtb index a1ad915a..0318135 100644 --- a/components/policy/resources/policy_templates_ml.xtb +++ b/components/policy/resources/policy_templates_ml.xtb
@@ -1325,6 +1325,15 @@ ഈ നയം സജ്ജമാക്കാതെ വിടുകയാണെങ്കിൽ ഡിഫോൾട്ട് റോമിംഗ് പ്രൊഫൈൽ പാത്ത് ഉപയോഗിക്കുന്നതാണ്.</translation> <translation id="4239720644496144453">Android ആപ്സുകൾക്ക് കാഷെ ഉപയോഗിക്കാനാകില്ല. ഒന്നിലധികം ഉപയോക്താക്കൾ ഒരേ Android ആപ്പ് ഇൻസ്റ്റാൾ ചെയ്യുകയാണെങ്കിൽ, ഓരോ ഉപയോക്താവിനും വേണ്ടി പുതുതായി ഓരോന്ന് ഡൗൺലോഡുചെയ്യും.</translation> +<translation id="4243336580717651045"><ph name="PRODUCT_NAME" /> എന്നതിലെ URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം പ്രവർത്തനക്ഷമമാക്കുക, ഒപ്പം ഈ ക്രമീകരണം മാറ്റുന്നതിൽ നിന്ന് ഉപയോക്താക്കളെ തടയുന്നു. + + തിരയലുകളും ബ്രൗസ് ചെയ്യലും മികച്ചതാക്കാൻ ഉപയോക്താവ് സന്ദർശിക്കുന്ന പേജുകളുടെ URL- കൾ, URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം Google-ലേക്ക് അയയ്ക്കുന്നു. + + നിങ്ങൾ ഈ നയം പ്രവർത്തനക്ഷമമാക്കുകയാണെങ്കിൽ, URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം എപ്പോഴും സജീവമായി നിലനിൽക്കും. + + നിങ്ങൾ ഈ നയം പ്രവർത്തനരഹിതമാക്കുകയാണെങ്കിൽ, URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം ഒരിക്കലും സജീവമാകില്ല. + + ഈ നയം സജ്ജമാക്കാത്ത നിലയിലാണെങ്കിൽ, URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം പ്രവർത്തനക്ഷമമാകുമെങ്കിലും ഉപയോക്താവിന് അത് മാറ്റാനാവും.</translation> <translation id="4250680216510889253">ഇല്ല</translation> <translation id="4261820385751181068">ഉപകരണ സൈൻ ഇൻ സ്ക്രീൻ ഭാഷ</translation> <translation id="427220754384423013">ഒരു ഉപയോക്താവിന് ഉപയോഗിക്കാൻ കഴിയുന്ന പ്രിന്ററുകളെ ഇത് വ്യക്തമാക്കുന്നു. @@ -2065,6 +2074,7 @@ നിഷ്ക്രിയമായിരിക്കുമ്പോൾ സ്ക്രീൻ ലോക്കുചെയ്യുന്നതിന് ശുപാർശ ചെയ്തിരിക്കുന്ന മാർഗ്ഗമെന്നത് താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കിയിരിക്കുമ്പോൾ സ്ക്രീൻ ലോക്ക് ചെയ്യൽ പ്രവർത്തനക്ഷമമാക്കുകയും നിഷ്ക്രിയ കാലതാമസത്തിനുശേഷം <ph name="PRODUCT_OS_NAME" /> താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കുകയുമാണ്. താൽക്കാലികമായി പ്രവർത്തനരഹിതമാക്കുന്നതിന് ഒരു നിശ്ചിത സമയം മുമ്പ് സ്ക്രീൻ ലോക്കുചെയ്യപ്പെടുകയാണെങ്കിലോ നിഷ്ക്രിയമാകുമ്പോൾ താൽക്കാലികമായി റദ്ദാക്കുന്നത് ആവശ്യമില്ലാത്തപ്പോഴോ മാത്രമേ ഈ നയം ഉപയോഗിക്കുകയുള്ളൂ. ഈ നയത്തിന്റെ മൂല്യം മില്ലിസെക്കൻഡിലാണ് വ്യക്തമാക്കുക. മൂല്യങ്ങൾ, നിഷ്ക്രിയ കാലസമയത്തേക്കാളും കുറഞ്ഞിരിക്കുന്നതിന് ക്രമീകരിച്ചിരിക്കുന്നു.</translation> +<translation id="6097601282776163274">URL കീ ഉപയോഗിച്ച് അജ്ഞാതമാക്കിയ ഡാറ്റ ശേഖരണം പ്രവർത്തനക്ഷമമാക്കുക</translation> <translation id="6111936128861357925">ദിനോസർ ഈസ്റ്റർ എഗ്ഗ് ഗെയിം അനുവദിക്കുക</translation> <translation id="6114416803310251055">നിരാകരിച്ചു</translation> <translation id="6133088669883929098">കീ സൃഷ്ടിക്കൽ ഉപയോഗിക്കാൻ എല്ലാ സൈറ്റുകളെയും അനുവദിക്കുക</translation>
diff --git a/components/policy/resources/policy_templates_mr.xtb b/components/policy/resources/policy_templates_mr.xtb index f7dc1244..1535ac48 100644 --- a/components/policy/resources/policy_templates_mr.xtb +++ b/components/policy/resources/policy_templates_mr.xtb
@@ -1307,6 +1307,15 @@ हे धोरण सेट न केलेले ठेवल्यास डीफॉल्ट रोमिंग प्रोफाइल पथ वापरला जाईल.</translation> <translation id="4239720644496144453">Android अॅप्ससाठी कॅश वापरला जात नाही. एकाधिक वापरकर्त्यांनी एकच Android अॅप इंस्टॉल केला असल्यास, तो प्रत्येक वापरकर्त्यासाठी पुन्हा नव्याने डाउनलोड केला जाईल.</translation> +<translation id="4243336580717651045"><ph name="PRODUCT_NAME" /> मध्ये URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन सुरू करा आणि हे सेटिंग बदलण्यापासून वापरकर्त्यांना प्रतिबंध करेल. + + URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन शोध आणि ब्राउझिंग अधिक चांगले करण्यासाठी Google ने वापरकर्त्यांना भेट दिलेल्या पेजची URL पाठवते. + + तुम्ही हे धोरण सुरू केल्यास, URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन नेहमी सक्रिय असते. + + तुम्ही हे धोरण बंद केल्यास, URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन कधीही सक्रिय नसते. + + हे धोरण सेट न केल्यास, URL-keyed अॅनोनिमाइझ केलेल्या डेटा संकलन सुरू केले जाईल परंतु वापरकर्ता ते बदलू शकेल.</translation> <translation id="4250680216510889253">नाही</translation> <translation id="4261820385751181068">डिव्हाइस साइन-इन स्क्रीन लोकॅल</translation> <translation id="427220754384423013">वापरकर्ता कोणते प्रिंटर वापरू शकतो हे निर्दिष्ट करतो. @@ -2048,6 +2057,7 @@ निष्क्रिय असताना स्क्रीन लॉक करण्याचा शिफारस केलेला मार्ग, निलंबनावर स्क्रीन लॉक करणे आणि निष्क्रिय विलंबानंतर <ph name="PRODUCT_OS_NAME" /> निलंबित केलेले असणे आहे. जेव्हा स्क्रीन लॉक केल्याने वेळेचे महत्वपूर्ण मूल्य निलंबनाच्या बरेच लवकर होते किंवा निष्क्रिय असताना निलंबन होते तेव्हाच हे धोरण वापरले जाते. धोरण मूल्य मिलिसेकंदांमध्ये निर्दिष्ट केले जावे. मूल्ये निष्क्रिय विलंबापेक्षा कमी होण्यासाठी घेतली जातात.</translation> +<translation id="6097601282776163274">URL -keyed अॅनोनिमाइज केलेल्या डेटाचे संकलन सुरू करा</translation> <translation id="6111936128861357925">डायनासोर इस्टर एग गेमची अनुमती द्या</translation> <translation id="6114416803310251055">असमर्थित</translation> <translation id="6133088669883929098">सर्व साइटना की निर्मिती वापरण्याची अनुमती द्या</translation>
diff --git a/components/policy/resources/policy_templates_no.xtb b/components/policy/resources/policy_templates_no.xtb index 80a538a..9b3ad68b 100644 --- a/components/policy/resources/policy_templates_no.xtb +++ b/components/policy/resources/policy_templates_no.xtb
@@ -241,6 +241,13 @@ Hvis det er nødvendig å beholde kompatibiliteten med en tjener med feil, kan denne regelen settes til «tls1.1». Dette er en midlertidig løsning, og tjeneren må fikses så fort som mulig.</translation> <translation id="1864269674877167562">Hvis denne regelen settes til en tom streng eller ikke konfigureres, ser ikke brukerne noe alternativ for autofullføring i <ph name="PRODUCT_OS_NAME" /> under påloggingsprosessen. Hvis denne regelen settes til en streng som representerer et domenenavn, ser brukeren alternativet for autofullføring i <ph name="PRODUCT_OS_NAME" /> under påloggingsprosessen, slik at vedkommende kan skrive inn bare brukernavnet sitt uten domenenavnutvidelsen. Brukeren kan overskrive denne domenenavnutvidelsen.</translation> +<translation id="1864382791685519617">Slår på nettverksforutsigelse i<ph name="PRODUCT_NAME" />, og hindrer brukerne i å endre denne innstillingen. + + Dette styrer DNS-forhåndshenting, TCP- og SSL-forhåndstilkobling og forhåndsgjengivelse av nettsider. + + Hvis du stiller inn disse retningslinjene, kan ikke brukerne endre eller overstyre denne innstillingen i <ph name="PRODUCT_NAME" />. + + Hvis denne regelen ikke spesifiseres, er nettverksforutsigelse slått på, men brukeren kan endre innstillingen.</translation> <translation id="1865417998205858223">Nøkkeltillatelser</translation> <translation id="186719019195685253">Handling som skal utføres når inaktivitetsforsinkelsen overgås og maskinen kjører på vekselstrøm</translation> <translation id="187819629719252111">Gir tilgang til lokale filer på maskinen ved å tillate <ph name="PRODUCT_NAME" /> å vise dialoger om filutvalg. @@ -718,6 +725,7 @@ <translation id="2957506574938329824">Ikke tillat nettsteder å be om tilgang til Bluetooth-enheter via Web Bluetooth API</translation> <translation id="2957513448235202597">Kontotype for <ph name="HTTP_NEGOTIATE" />-autentisering</translation> <translation id="2959898425599642200">Regler for å omgå mellomtjener</translation> +<translation id="2960128438010718932">Den planlagte tidsplanene for bruk av en ny oppdatering</translation> <translation id="2960691910306063964">Slå på eller av autentisering uten PIN-kode for fjerntilgangsverter</translation> <translation id="2976002782221275500">Angir hvor lenge brukeren kan være inaktiv før skjermen nedtones når enheten kjører på batteristrøm. @@ -759,6 +767,7 @@ Innstillingen for WPAD-optimalisering kan ikke endres av brukerne. Dette gjelder uansett hvordan eller om denne regelen er konfigurert.</translation> <translation id="3072045631333522102">Skjermsparer som skal brukes på påloggingssiden i detaljistmodus</translation> <translation id="3072847235228302527">Angi bruksvilkårene for en konto på enheten</translation> +<translation id="3077183141551274418">Aktiverer eller deaktiverer fanelivssyklus</translation> <translation id="3086995894968271156">Konfigurer Cast-mottakeren i <ph name="PRODUCT_NAME" />.</translation> <translation id="3088796212846734853">Lar deg angi en liste over nettadressemønstre som spesifiserer nettsteder som får vise bilder. @@ -1323,6 +1332,12 @@ Forslagene hentes fra Googles tjenere. Hvis innstillingen er angitt som usann, verken hentes eller vises forslag.</translation> +<translation id="4788252609789586009">Aktiver autofyllfunksjonen i <ph name="PRODUCT_NAME" /> og gjør det mulig for brukere å fylle ut informasjon om kredittkort og adresse i nettskjemaer automatisk. Dette er mulig ved at autofyllfunksjonen bruker informasjon som tidligere er lagret. + + + Hvis denne innstillingen er slått av, gir ikke autofyllfunksjonen forslag, og den fyller ikke inn informasjon automatisk. Den lagrer heller ikke lenger kredittkortinformasjon som brukeren sender inn på nettet. + + Hvis denne innstillingen er slått på eller ikke angir noen verdi, kan brukeren kontrollere all funksjonalitet for autofyllfunksjonen for kredittkort i brukergrensesnittet.</translation> <translation id="4791031774429044540">Aktiver tilgjengelighetsfunksjonen for den store musepekeren. Hvis denne innstillingen angis til «true», er den store musepekeren alltid aktivert. @@ -1454,6 +1469,11 @@ Hvis denne innstillingen er angitt som True, hindrer <ph name="PRODUCT_OS_NAME" /> enheten fra å starte opp i utviklermodus. Systemet nekter å starte opp og viser en feilmelding når utviklermodus er aktivert. Hvis innstillingen ikke er angitt, eller angitt som False, forblir utviklermodusen tilgjengelig for enheten.</translation> +<translation id="520403427390290017">Funksjonen fanelivssyklus gjenoppretter CPU og om nødvendig, minne forbundet med faner som allerede kjører og ikke ha blitt brukt over lengre tid, ved først å kvele dem, for deretter å fryse dem og til slutt forkaste dem. + + Hvis retningslinjene er satt til usann, vil fanelivssyklusen slås av, og alle fanene vil kjøre som normalt. + + If the policy is set to true or left unspecified then tab lifecycles are enabled.</translation> <translation id="5208240613060747912">Gjør at du kan angi en liste over nettadressemønstre som spesifiserer hvilke nettsteder som ikke får vise varsler. Hvis denne retningslinjen ikke angis, brukes den globale standardverdien for alle nettsteder, enten fra retningslinjen DefaultNotificationsSetting hvis den er angitt, eller fra brukerens egen konfigurasjon hvis den nevnte retningslinjen ikke er angitt.</translation> @@ -2222,6 +2242,17 @@ Hvis denne innstillingen er deaktivert, er ikke funksjonen tilgjengelig.</translation> <translation id="7275334191706090484">Administrerte bokmerker</translation> +<translation id="729492886167634859">Disse retningslinjene definerer en liste over prosenter som definerer en brøkdel av <ph name="PRODUCT_OS_NAME" />-enheter i OU for oppdatering i uken fra den dagen oppdateringen oppdages. Oppdagelsestidspunktet er senere enn tidspunktet for publiseringen av oppdateringen, dette siden enheten sjekker etter oppdateringen på visse tidspunkt, noe som kan være en stund etter at oppdateringen er publisert. + + Verdien n-th i listen brukes som prosenten av enheter som bør ha fullført oppdatering til den nyeste versjon i n-th uken etter at oppdateringen har blitt oppdaget. For eksempel, hvis en oppdatering oppdages i dag, vil den første verdien i listen definere prosenten av enheter i OU som bør oppdatere til denne versjonen innen en uke fra i dag. Den andre verdien definerer prosenten av enheter i OU som bør oppdateres til versjonen i løpet av 2 uker fra idag, osv. + + + Hvis det en verdi er definert for disse retningslinjene, vil oppdateringen ingorere denne <ph name="DEVICE_UPDATE_SCATTER_FACTOR_POLICY_NAME" />-retningslinjen og følge denne retningslinjen istedet. + + + Hvis denne listen er tom, vi det ingen fase gjennomføres og oppdateringen vil gjennomføres i henhold til andre enhetsinnstillinger. + + Denne retningslinjen gjelder ikke for andre kanalbrytere.</translation> <translation id="7295019613773647480">Aktivér administrerte brukere</translation> <translation id="7301543427086558500">Angir en liste over alternative nettadresser som kan brukes til å hente ut søkeord fra søkemotoren. Nettadressene skal inneholde strengen <ph name="SEARCH_TERM_MARKER" />, som brukes til å hente ut søkeordene. @@ -2690,6 +2721,12 @@ Du finner eksempelmønstre på https://www.chromium.org/developers/how-tos/chrome-frame-getting-started.</translation> <translation id="8493645415242333585">Deaktiver lagring av nettleserlogg</translation> +<translation id="8498293625012059298">Konfigurer nettadressen for endring av passord (kun HTTP og HTTPS former). Beskyttelsestjenesten for passord vil brukes for denne nettadressen for å endrer dens passord etter å ha sett en advarsel i nettleseren. + For at <ph name="PRODUCT_NAME" /> skal ha mulighet til å fange opp fingeravtrykket til det nye passordet på nettsiden for bytte av passord. Husk å følg med denne nettsiden følger retningslinjene på https://www.chromium.org/developers/design-documents/create-amazing-password-forms. + + Hvis denne innstillingen er aktivert, vil beskyttelsestjenesten for passord sende brukerne til denne nettadressen, etter å ha sett advarselen i nettleseren. + Hvis denne innstillingen er deaktivert eller ikke stilt inn, vil beskyttelsestjenesten for passord sende brukerne til https://myaccounts.google.com for å bytte passord. + Denne retningslinjen er ikke tilgjengelig på Windows forekomster som ikke er lagt til et <ph name="MS_AD_NAME" />-domene.</translation> <translation id="8499172469244085141">Standardinnstillinger (kan overstyres av brukere)</translation> <translation id="8507835864888987300">Angir en målversjon for automatiske oppdateringer. @@ -2743,6 +2780,14 @@ Når denne regelen endres til «false» (usann), gjelder det for nye virtuelle maskiner. Virtuelle maskiner som allerede kjører, blir imidlertid ikke slått av. Når denne regelen ikke er angitt på en administrert enhet, kan ikke enheten kjøre virtuelle maskiner. Ikke-administrerte enheter kan kjøre virtuelle maskiner.</translation> +<translation id="8669669491594628013">Lar deg kontrollere utløseren for passordsbeskyttelses advarselen. Passordbeskyttelsen varsler brukere når de har brukt deres beskyttede passord på potensielle mistenkelige sider. + + Du kan bruke 'PasswordProtectionLoginURLs' og 'PasswordProtectionChangePasswordURL' til å konfigurere hvilke passord som skal beskyttes. + + Hvis retningslinjen er satt til 'PasswordProtectionWarningOff', vil ingen passordbeskyttelses advarseler vises. + Hvis retningslinjen er satt til 'PasswordProtectionWarningOnPasswordReuse', vil passordbeskyttelses advarselen vises når brukeren benytter det beskyttede passordet på en ikke-godkjent side. + Hvis retningslinjen er satt til 'PasswordProtectionWarningOnPhishingReuse', vil passordbeskyttelses advarselen vises når brukere benytter det beskyttede passordet på en nettfisking side. + Hvis retningslinjen ikke er stilt inn, vil passordbeskyttelsestjenesten kun beskytte Google-passordene, men brukere vil kunne endre denne innstillingen.</translation> <translation id="8672321184841719703">Målversjon for automatiske oppdateringer</translation> <translation id="867410340948518937">Universal tofaktor-autentisering (U2F)</translation> <translation id="8685024486845674965">Advarselen om passordbeskyttelse utløses ved gjenbruk av passord</translation>
diff --git a/components/policy/resources/policy_templates_pl.xtb b/components/policy/resources/policy_templates_pl.xtb index 87cf1f7..3cf8ad2 100644 --- a/components/policy/resources/policy_templates_pl.xtb +++ b/components/policy/resources/policy_templates_pl.xtb
@@ -1125,6 +1125,15 @@ Jeśli ta zasada nie zostanie skonfigurowana, dla wszystkich witryn będzie używana globalna wartość domyślna pochodząca z zasady „DefaultKeygenSetting” (jeśli została skonfigurowana) lub z osobistej konfiguracji użytkownika.</translation> <translation id="4239720644496144453">Pamięć podręczna nie jest używana dla aplikacji na Androida. Gdy wielu użytkowników instaluje tę samą aplikację na Androida, jest ona pobierana oddzielnie dla każdego z nich.</translation> +<translation id="4243336580717651045">Włącza w <ph name="PRODUCT_NAME" /> zbieranie zanonimizowanych danych z URL jako kluczem i uniemożliwia użytkownikom zmianę tego ustawienia. + + Zbieranie zanonimizowanych danych z URL jako kluczem wysyła adresy URL stron odwiedzanych przez użytkownika do Google, by pomóc w ulepszaniu wyszukiwania i przeglądania. + + Jeśli ta zasada jest włączona, zbieranie zanonimizowanych danych z URL jako kluczem jest zawsze aktywne. + + Jeśli ta zasada jest wyłączona, zbieranie zanonimizowanych danych z URL jako kluczem nigdy nie jest aktywne. + + Jeśli ta zasada nie została skonfigurowana, zbieranie zanonimizowanych danych z URL jako kluczem będzie włączone, ale użytkownik może to zmienić.</translation> <translation id="4250680216510889253">Nie</translation> <translation id="4261820385751181068">Ustawienia regionalne na ekranie logowania na urządzeniu</translation> <translation id="427220754384423013">Określa drukarki, z których może korzystać użytkownik. @@ -1744,6 +1753,7 @@ Zalecany sposób blokowania ekranu w czasie nieaktywności to włączenie blokowania ekranu przy wstrzymaniu pracy i pozwolenie, by <ph name="PRODUCT_OS_NAME" /> wstrzymywał pracę po okresie nieaktywności. Zasady tej należy używać jedynie, gdy ekran powinien zostać zablokowany znacznie wcześniej niż nastąpi wstrzymanie pracy lub gdy wstrzymanie pracy przy nieaktywności nie jest w ogóle wskazane. Wartość dla tej zasady należy określić w milisekundach. Wartości są zmniejszane tak, by były mniejsze niż opóźnienie nieaktywności.</translation> +<translation id="6097601282776163274">Włącz zbieranie zanonimizowanych danych z URL jako kluczem</translation> <translation id="6111936128861357925">Zezwól na ukrytą grę-żart z dinozaurem</translation> <translation id="6114416803310251055">przestarzała</translation> <translation id="6133088669883929098">Zezwalaj na generowanie kluczy we wszystkich witrynach</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb index db0e565..d84051e 100644 --- a/components/policy/resources/policy_templates_pt-BR.xtb +++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -1124,6 +1124,15 @@ Se esta política não for definida, o valor padrão global será utilizado para todos os sites a partir da política "DefaultKeygenSetting", caso ela tenha sido definida, ou a partir das configurações pessoais do usuário, caso não tenha sido definida.</translation> <translation id="4239720644496144453">O cache não é usado para apps Android. Se vários usuários instalarem o mesmo app Android, o download dele será feito novamente para cada usuário.</translation> +<translation id="4243336580717651045">Ativa a coleta de dados anônimos inseridos no URL no <ph name="PRODUCT_NAME" /> e impede que os usuários alterem essa configuração. + + A coleta de dados anônimos inseridos no URL envia o URL de páginas que o usuário visita para o Google para melhorar as pesquisas e a navegação. + + Se você ativar essa política, a coleta de dados anônimos inseridos no URL estará sempre ativa. + + Se você desativar essa política, a coleta de dados anônimos inseridos no URL nunca estará ativa. + + Se essa política não for configurada, a coleta de dados anônimos inseridos no URL estará ativa, mas o usuário poderá alterar isso.</translation> <translation id="4250680216510889253">Não</translation> <translation id="4261820385751181068">Localidade da tela de login do dispositivo</translation> <translation id="427220754384423013">Especifica as impressoras que um usuário pode usar. @@ -1743,6 +1752,7 @@ A forma recomendável de bloquear a tela ao se tornar inativo é ativar o bloqueio de tela para o modo de suspensão, a fim de que o <ph name="PRODUCT_OS_NAME" /> fique suspenso após o tempo de espera de inatividade. Esta política só deve ser usada quando a tela tiver que ser bloqueada muito antes de ser suspensa ou quando a suspensão em caso de inatividade não é desejada. O valor da política deve ser especificado em milissegundos. Os valores são fixados para serem menores que o tempo de espera de inatividade.</translation> +<translation id="6097601282776163274">Ativar a coleta de dados anônimos inseridos no URL</translation> <translation id="6111936128861357925">Permitir jogo easter egg de dinossauro</translation> <translation id="6114416803310251055">obsoleto</translation> <translation id="6133088669883929098">Permitir que todos os sites usem a geração de chaves</translation>
diff --git a/components/policy/resources/policy_templates_ro.xtb b/components/policy/resources/policy_templates_ro.xtb index 82a2579..d90a204 100644 --- a/components/policy/resources/policy_templates_ro.xtb +++ b/components/policy/resources/policy_templates_ro.xtb
@@ -1141,6 +1141,15 @@ Dacă politica nu este configurată, valoarea prestabilită la nivel global va fi folosită pentru toate site-urile, fie din politica „DefaultKeygenSetting”, în cazul în care aceasta este configurată, fie din configurația personală a utilizatorului, în caz contrar.</translation> <translation id="4239720644496144453">Memoria cache nu este folosită pentru aplicațiile Android. Dacă mai mulți utilizatori instalează aceeași aplicație Android, aceasta va fi descărcată din nou pentru fiecare utilizator.</translation> +<translation id="4243336580717651045">Activează colectarea datelor anonimizate cu cheie URL în <ph name="PRODUCT_NAME" /> și împiedică modificarea acestei setări de către utilizatori. + + Colectarea datelor anonimizate cu cheie URL trimite adresele URL ale paginilor accesate de utilizator la Google pentru a îmbunătăți căutările și navigarea. + + Dacă activezi această politică, colectarea datelor anonimizate cu cheie URL este mereu activă. + + Dacă dezactivezi această politică, colectarea datelor anonimizate cu cheie URL nu este niciodată activă. + + Dacă politica nu este configurată, colectarea datelor anonimizate cu cheie URL va fi activă, dar utilizatorul o va putea modifica.</translation> <translation id="4250680216510889253">Nu</translation> <translation id="4261820385751181068">Limba de pe ecranul de conectare al dispozitivului</translation> <translation id="427220754384423013">Specifică imprimantele pe care le poate folosi un utilizator. @@ -1769,6 +1778,7 @@ Modalitatea recomandată pentru blocarea ecranului când utilizatorul este inactiv este activarea blocării ecranului la suspendare și configurarea <ph name="PRODUCT_OS_NAME" /> astfel încât să aplice suspendarea după intervalul de inactivitate. Această politică trebuie folosită numai dacă doriți ca blocarea ecranului să aibă loc mult mai devreme decât suspendarea sau când nu doriți să se aplice suspendarea dacă utilizatorul este inactiv. Valoarea politicii trebuie specificată în milisecunde. Valorile trebuie să fie mai mici decât intervalul de inactivitate.</translation> +<translation id="6097601282776163274">Activează colectarea datelor anonimizate cu cheie URL</translation> <translation id="6111936128861357925">Permite jocul ascuns cu dinozaurul</translation> <translation id="6114416803310251055">învechit</translation> <translation id="6133088669883929098">Permite tuturor site-urilor să folosească generarea cheilor</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb index bcd2948..799deb3 100644 --- a/components/policy/resources/policy_templates_ru.xtb +++ b/components/policy/resources/policy_templates_ru.xtb
@@ -1414,7 +1414,7 @@ Если эта политика выключена или не настроена, режим разработчика на данном устройстве останется доступным.</translation> <translation id="520403427390290017">Функция жизненного цикла вкладок оптимизирует использование ЦП и памяти, проверяя запущенные вкладки, которые долго не используются. Сначала вкладки приостанавливаются, потом отключаются. - Если для правила установлено значение false, функция отключается, и все вкладки работают в обычном режиме. + Если для правила установлено значение false, функция отключается и все вкладки работают в обычном режиме. Если установлено значение true или правило не настроено, функция жизненного цикла вкладок включена.</translation> <translation id="5208240613060747912">Задает список шаблонов URL для сайтов, которым запрещено отображать уведомления. Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию на основе правила DefaultNotificationsSetting (если оно настроено, в противном случае – на основе пользовательской конфигурации).</translation>
diff --git a/components/policy/resources/policy_templates_sk.xtb b/components/policy/resources/policy_templates_sk.xtb index 6302334..529ae96 100644 --- a/components/policy/resources/policy_templates_sk.xtb +++ b/components/policy/resources/policy_templates_sk.xtb
@@ -1145,6 +1145,15 @@ Ak toto pravidlo ponecháte nenastavené, pre všetky stránky sa použije globálna predvolená hodnota buď z pravidla DefaultKeygenSetting (ak je nastavené), alebo z osobnej konfigurácie používateľa.</translation> <translation id="4239720644496144453">V prípade aplikácií pre Android sa nepoužíva vyrovnávacia pamäť. Ak si viacero používateľov nainštaluje rovnakú aplikáciu pre Android, stiahne sa nanovo pre každého používateľa.</translation> +<translation id="4243336580717651045">Povoľuje v prehliadači <ph name="PRODUCT_NAME" /> anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries a bráni používateľom toto nastavenie zmeniť. + + Pri anonymizovanom zhromažďovaní dát prostredníctvom kódovaných webových adries sa odosielajú adresy stránok, ktoré používateľ navštívi, do Googlu na účely zlepšovania vyhľadávaní a prehliadania. + + Ak toto pravidlo povolíte, bude anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries vždy aktívne. + + Ak toto pravidlo zakážete, nebude anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries nikdy aktívne. + + Ak toto pravidlo ponecháte nenastavené, anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries sa povolí, no používateľ ho bude môcť zmeniť.</translation> <translation id="4250680216510889253">Nie</translation> <translation id="4261820385751181068">Jazyk prihlasovacej obrazovky zariadenia</translation> <translation id="427220754384423013">Umožňuje určiť tlačiarne, ktoré má používateľ k dispozícii. @@ -1804,6 +1813,7 @@ Odporúčaný spôsob uzamknutia obrazovky pri nečinnosti je povoliť uzamknutie obrazovky pri pozastavení a pozastaviť tak systém <ph name="PRODUCT_OS_NAME" /> po uplynutí času nečinnosti. Toto pravidlo použite iba v prípade, že chcete obrazovku uzamknúť podstatne skôr ako má dôjsť k pozastaveniu, alebo v prípade, že pozastavenie pri nečinnosti nechcete vôbec používať. Hodnota tohto pravidla sa zadáva v milisekundách. Ak zadáte hodnotu vyššiu ako je čas nečinnosti, použije sa hodnota času nečinnosti.</translation> +<translation id="6097601282776163274">Povoliť anonymizované zhromažďovanie dát prostredníctvom kódovaných webových adries</translation> <translation id="6111936128861357925">Povoliť hru s dinosaurom</translation> <translation id="6114416803310251055">zamietnuté</translation> <translation id="6133088669883929098">Povoliť všetkým webovým stránkam používať generovanie kľúčov</translation>
diff --git a/components/policy/resources/policy_templates_sl.xtb b/components/policy/resources/policy_templates_sl.xtb index aeba988..4d05135 100644 --- a/components/policy/resources/policy_templates_sl.xtb +++ b/components/policy/resources/policy_templates_sl.xtb
@@ -1176,6 +1176,15 @@ Če ta pravilnik ni nastavljen, bo za vsa spletna mesta uporabljena splošna privzeta vrednost iz pravilnika »DefaultKeygenSetting«, kadar je ta nastavljen, ali iz uporabnikove osebne konfiguracije, kadar pravilnik »DefaultKeygenSetting« ni nastavljen.</translation> <translation id="4239720644496144453">Predpomnilnik se ne uporablja za aplikacije za Android. Če več uporabnikov namesti enako aplikacijo za Android, bo za vsakega uporabnika znova prenesena.</translation> +<translation id="4243336580717651045">Omogoča zbiranje anonimiziranih podatkov, ki so vezani na spletna mesta z gesli, v brskalniku <ph name="PRODUCT_NAME" /> in uporabnikom preprečuje spreminjanje te nastavitve. + + Zbiranje anonimiziranih podatkov, ki so vezani na spletna mesta z gesli, pošlje Googlu URL-je, ki jih obišče uporabnik, zaradi izboljšanja iskanj in brskanja. + + Če ta pravilnik omogočite, je zbiranje anonimiziranih podatkov, ki so vezani na spletna mesta z gesli, vedno aktivno. + + Če ta pravilnik onemogočite, ni zbiranje anonimiziranih podatkov, ki so vezani na spletna mesta z gesli, nikoli aktivno. + + Če ta pravilnik ni nastavljen, bo zbiranje anonimiziranih podatkov, ki so vezani na spletna mesta z gesli, omogočeno, vendar bo lahko uporabnik to spremenil.</translation> <translation id="4250680216510889253">Ne</translation> <translation id="4261820385751181068">Jezik na zaslonu za prijavo v napravi</translation> <translation id="427220754384423013">Določa tiskalnike, ki jih uporabnik lahko uporablja. @@ -1837,6 +1846,7 @@ Priporočljivo je, da za zaklep zaslona ob nedejavnosti omogočite zaklepanje ob prekinitvi, da se <ph name="PRODUCT_OS_NAME" /> prekine po preteku zakasnitve zaradi nedejavnosti. Ta pravilnik uporabite samo, če želite, da se zaslon zaklene bistveno prej pred prekinitvijo, ali če ne želite prekinitve ob nedejavnosti. Vrednost pravilnika naj bo navedena v milisekundah. Vrednosti morajo biti manjše od zakasnitve zaradi nedejavnosti.</translation> +<translation id="6097601282776163274">Omogočanje zbiranja anonimiziranih podatkov, ki so vezani na spletna mesta z gesli</translation> <translation id="6111936128861357925">Dovoli skrito igro z dinozavrom</translation> <translation id="6114416803310251055">zastarelo</translation> <translation id="6133088669883929098">Vsem spletnim mestom dovoli uporabo ustvarjanja ključev</translation>
diff --git a/components/policy/resources/policy_templates_sr.xtb b/components/policy/resources/policy_templates_sr.xtb index 4be13a4daf..f27d7b2 100644 --- a/components/policy/resources/policy_templates_sr.xtb +++ b/components/policy/resources/policy_templates_sr.xtb
@@ -1163,6 +1163,15 @@ Ако ове смернице нису подешене, глобална подразумевана вредност ће се користити за све сајтове из смерница „DefaultKeygenSetting“ уколико су оне подешене, а ако нису, из личне конфигурације корисника.</translation> <translation id="4239720644496144453">Кеш се не користи за Android апликације. Ако више корисника инсталира исту Android апликацију, она ће се изнова преузимати за сваког корисника.</translation> +<translation id="4243336580717651045">Омогућавају прикупљање анонимних података преко URL кључева у <ph name="PRODUCT_NAME" />-у и спречавају кориснике да мењају ово подешавање. + + Прикупљање анонимних података преко URL кључева шаље URL-ове страница које корисник посећује Google-у да би претраге и прегледање били бољи. + + Ако омогућите ове смернице, прикупљање анонимних података преко URL кључева ће увек бити активно. + + Ако онемогућите ове смернице, прикупљање анонимних података преко URL кључева никада неће бити активно. + + Ако не подесите ове смернице, прикупљање анонимних података преко URL кључева ће бити омогућено, али ће корисник моћи то да промени.</translation> <translation id="4250680216510889253">Не</translation> <translation id="4261820385751181068">Локалитет екрана за пријављивање на уређају</translation> <translation id="427220754384423013">Наводе штампаче које корисник може да користи. @@ -1823,6 +1832,7 @@ Препоручени начин за закључавање екрана након периода неактивности је да омогућите закључавање екрана приликом суспендовања система и да подесите <ph name="PRODUCT_OS_NAME" /> да се суспендује после одређеног времена неактивности. Ову смерницу користите само ако желите да се екран закључава знатно раније од суспендовања или ако уопште не желите да се систем суспендује док је неактиван. Вредност ове смернице треба да се наведе у милисекундама. Вредности су ограничене на вредности које нису веће од времена неактивности које треба да прође.</translation> +<translation id="6097601282776163274">Омогућавају прикупљање анонимних података преко URL кључева</translation> <translation id="6111936128861357925">Омогући скривену игру са диносауром</translation> <translation id="6114416803310251055">застарело</translation> <translation id="6133088669883929098">Дозволи свим сајтовима да користе генерисање шифара</translation>
diff --git a/components/policy/resources/policy_templates_te.xtb b/components/policy/resources/policy_templates_te.xtb index 6bcddb1..8142d52 100644 --- a/components/policy/resources/policy_templates_te.xtb +++ b/components/policy/resources/policy_templates_te.xtb
@@ -280,6 +280,13 @@ లేకుంటే, బగ్గీ సర్వర్కు అనుకూలత తప్పనిసరిగా ఉండేలా చూసుకోవాలంటే, ఈ విధానాన్ని "tls1.1"కి సెట్ చేయవచ్చు. ఇది విరామ సమయ ప్రమాణం మరియు వేగంగా సర్వర్ సమస్య పరిష్కరించబడుతుంది.</translation> <translation id="1864269674877167562">ఈ విధానాన్ని ఖాళీ వాక్యానికి సెట్ చేస్తే లేదా కాన్ఫిగర్ చేయకుంటే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ విధాన సమయంలో స్వీయపూర్తి ఎంపికను చూపదు. ఈ విధానాన్ని డొమైన్ పేరును సూచించే వాక్యానికి సెట్ చేస్తే, <ph name="PRODUCT_OS_NAME" /> వినియోగదారు సైన్ ఇన్ చేసే సమయంలో డొమైన్ పేరు పొడిగింపు పేర్కొనాల్సిన శ్రమ లేకుండా కేవలం వారి వినియోగదారు పేరు మాత్రమే టైప్ చేసే వీలు కల్పిస్తూ స్వీయపూర్తి ఎంపికను చూపుతుంది. వినియోగదారు ఈ డొమైన్ పేరు పొడిగింపును భర్తీ చేయగలుగుతారు.</translation> +<translation id="1864382791685519617"><ph name="PRODUCT_NAME" />లో నెట్వర్క్ సూచనను ప్రారంభించడంతో పాటు, ఆ సెట్టింగ్ను మార్చకుండా వినియోగదారులను నిరోధిస్తుంది. + + ఇది వెబ్ పేజీల యొక్క DNS పూర్వ ప్రాప్యతను అలాగే TCP మరియు SSL పూర్వ కనెక్షన్ మరియు పూర్వ అమలును కూడా నియంత్రిస్తుంది. + + ఒకవేళ మీరు ఈ విధానాన్ని సెట్ చేస్తే మాత్రం, వినియోగదారులు <ph name="PRODUCT_NAME" />లో ఈ సెట్టింగ్ను మార్చడం లేదా భర్తీ చేయడం చేయలేరు. + + ఒకవేళ ఈ విధానాన్ని సెట్ చేయకుండా వదిలివేస్తే, నెట్వర్క్ భావిసూచన ప్రారంభించబడుతుంది కానీ యూజర్ దాన్ని మార్చగలరు.</translation> <translation id="1865417998205858223">కీలక అనుమతులు</translation> <translation id="186719019195685253">AC శక్తిపై అమలవుతున్న సమయంలో నిష్క్రియ ఆలస్యాన్ని చేరుకున్నప్పుడు తీసుకోవలసిన చర్య</translation> <translation id="187819629719252111">ఫైల్ ఎంపిక డైలాగ్లను ప్రదర్శించడానికి <ph name="PRODUCT_NAME" />ను అనుమతించడం ద్వారా మెషీన్లోని స్థానిక ఫైల్లకు ప్రాప్యతను అనుమతిస్తుంది. మీరు ఈ సెట్టింగ్ని ప్రారంభిస్తే, వినియోగదారులు ఫైల్ ఎంపిక డైలాగ్లను సాధారణంగా తెరవగలరు. మీరు ఈ సెట్టింగ్ని ఆపివేస్తే, వినియోగదారు పైల్ ఎంపిక డైలాగ్ను (బుక్మార్క్లను దిగుమతి చేయడం, ఫైల్లను అప్లోడ్ చేయడం, లింక్లను సేవ్ చేయడం, మొదలైనవి) చూపే ఒక చర్యను చేసినప్పుడు, బదులుగా ఒక సందేశం ప్రదర్శించబడుతుంది మరియు వినియోగదారు ఫైల్ ఎంపిక డైలాగ్లో రద్దు చేయి క్లిక్ చేసి ఉంటారని భావిస్తారు. ఈ సెట్టింగ్ను సెట్ చేయకపోతే, వినియోగదారులు ఫైల్ ఎంపిక డైలాగ్లను సాధారణంగా తెరవగలరు.</translation> @@ -792,6 +799,7 @@ <translation id="2957513448235202597"><ph name="HTTP_NEGOTIATE" /> ప్రమాణీకరణ కోసం ఖాతా రకం</translation> <translation id="2959469725686993410">ఎల్లవేళలా సమయ మండలిని నిశ్చయిస్తున్నప్పుడు WiFi ప్రాప్యత పాయింట్లను సర్వర్కు పంపండి</translation> <translation id="2959898425599642200">ప్రాక్సీ బైపాస్ నియమాలు</translation> +<translation id="2960128438010718932">కొత్త అప్డేట్ను వర్తింపజేయడానికి స్టేజింగ్ షెడ్యూల్</translation> <translation id="2960691910306063964">రిమోట్ ప్రాప్యత హోస్ట్ల కోసం PIN రహిత ప్రామాణీకరణను ప్రారంభిస్తుంది లేదా నిలిపివేస్తుంది</translation> <translation id="2976002782221275500">బ్యాటరీ శక్తితో అమలవుతున్నప్పుడు ఎంత సమయం పాటు వినియోగదారు ఇన్పుట్ లేకుంటే స్క్రీన్ మసకబారుతుందో పేర్కొంటుంది. @@ -834,6 +842,7 @@ ఈ విధానం సెట్ చేయబడిందా లేదా లేదంటే సెట్ చేయబడిన పక్షంలో ఎలా సెట్ చేయబడింది అనే వాటితో సంబంధం లేకుండా, వినియోగదారులు WPAD అనుకూలీకరణ సెట్టింగ్ను మార్చలేరు.</translation> <translation id="3072045631333522102">రిటైల్ మోడ్లో సైన్-ఇన్ స్క్రీన్లో స్క్రీన్ సేవర్ ఉపయోగించబడుతుంది</translation> <translation id="3072847235228302527">పరికరం-స్థానిక ఖాతా కోసం సేవా నిబంధనలను సెట్ చేయడం</translation> +<translation id="3077183141551274418">ట్యాబ్ లైఫ్సైకిల్లను ప్రారంభించండి లేదా నిలిపివేయండి</translation> <translation id="3086995894968271156"><ph name="PRODUCT_NAME" />లో Cast రిసీవర్ను కాన్ఫిగర్ చేయండి.</translation> <translation id="3088796212846734853">చిత్రాలను ప్రదర్శించడానికి అనుమతించబడిన సైట్లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. @@ -1486,6 +1495,11 @@ ఈ సూచనలు Google సర్వర్ల నుండి రిమోట్గా అందించబడతాయి. ఈ సెట్టింగ్ తప్పుకి సెట్ చేయబడినట్లయితే, సూచనలు అందించబడవు లేదా ప్రదర్శించబడవు.</translation> +<translation id="4788252609789586009"><ph name="PRODUCT_NAME" />లో ఆటోఫిల్ ఫీచర్ని ప్రారంభించడంతో పాటు ఇంతకముందు స్టోర్ చేసిన సమాచారాన్ని ఉపయోగించి వెబ్ ఫారమ్లలో క్రెడిట్ కార్డ్ సమాచారాన్ని ఆటోమేటిక్గా పూర్తి చేయడానికి వినియోగదారులను అనుమతిస్తుంది. + + ఒకవేళ ఈ సెట్టింగ్ని నిలిపివేస్తే, ఆటోఫిల్ ఇంకెప్పుడూ వివరాలను సూచించడం లేదా క్రెడిట్ కార్డ్ సమాచారాన్ని పూరించడం గానీ చేయదు, ఇంకా వెబ్ని బ్రౌజ్ చేసే సమయంలో యూజర్ సమర్పించే అదనపు క్రెడిట్ కార్డ్ సమాచారాన్ని కూడా సేవ్ చేయదు. + + ఒకవేళ ఈ సెట్టింగ్ని ప్రారంభించినట్లయితే లేదా విలువను సెట్ చేయకుంటే, UIలో క్రెడిట్ కార్డ్ల ఆటోఫిల్ ఫీచర్ని యూజర్ నియంత్రించగలరు.</translation> <translation id="4791031774429044540">పెద్ద కర్సర్ ప్రాప్యత లక్షణాన్ని ప్రారంభించండి. ఈ విధానాన్ని ఒప్పుకు సెట్ చేస్తే, పెద్ద కర్సర్ ఎల్లప్పుడూ ప్రారంభించబడుతుంది. @@ -1616,6 +1630,11 @@ ఈ విధానాన్ని ఒప్పుకి సెట్ చేసి ఉంటే, <ph name="PRODUCT_OS_NAME" /> డెవలపర్ మోడ్లోకి బూటింగ్ చేయబడకుండా పరికరాన్ని నిరోధిస్తుంది. సిస్టమ్ బూట్ చేయడానికి అనుమతించదు మరియు డెవలపర్ స్విచ్ ఆన్ చేయబడినప్పుడు స్క్రీన్పై లోపం డైలాగ్ను చూపుతుంది. ఈ విధానాన్ని సెట్ చేయకపోతే లేదా తప్పుకి సెట్ చేసి ఉంటే, పరికరంలో డెవలపర్ మోడ్ అలాగే అందుబాటులో ఉంటుంది.</translation> +<translation id="520403427390290017">ట్యాబ్ లైఫ్సైకిల్ల ఫీచర్ ద్వారా CPU మెమరీని అలాగే దానితో పాటుగా ఎక్కువ సేపటి నుంచి రన్ అవుతూ, నిరుపయోగంగా ఉన్న ట్యాబ్లలో దాగి ఉన్న మెమోరీని, విడుదల చేయడానికి ట్యాబ్లను ముందుగా కుదింపు చేసి, అక్కడికక్కడే స్తంభింపజేస్తుంది ఆపై వాటిని తొలగిస్తుంది. + + ఒకవేళ ఈ విధానాన్ని తప్పుకి సెట్ చేయబడినట్లయితే ట్యాబ్ లైఫ్సైకిల్ల ఫీచర్ నిలిపివేయబడుతుంది, అలాంటప్పుడు ట్యాబ్లన్నీ మాములుగానే అమలు అవుతూ ఉంటాయి. + + ఒకవేళ ఈ విధానాన్ని ఒప్పుకి సెట్ చేయబడినా లేదా ఫలానా అని పెర్కొనకపోయినా ట్యాబ్ లైఫ్సైకిల్స్ ఫీచర్ ప్రారంభించబడుతుంది.</translation> <translation id="5208240613060747912">ప్రకటనలను ప్రదర్శించడానికి అనుమతించబడని సైట్లను పేర్కొనే url నమూనాల జాబితాను సెట్ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఈ విధానం సెట్ చేయకుండా వదిలి పెట్టినది అయితే అన్ని సైట్లకు సార్వజనీన డిఫాల్ట్ విలువ ఇది సెట్ చేయబడి ఉంటే 'DefaultNotificationsSetting' విధానం నుండి లేదా చేయబడకపోతే వినియోగదారు వ్యక్తిగత కాన్ఫిగరేషన్ నుండి ఉపయోగించబడుతుంది.</translation> <translation id="5219844027738217407">Android అనువర్తనాల కోసం, ఈ విధానం మైక్రోఫోన్పై మాత్రమే ప్రభావం చూపుతుంది. ఈ విధానాన్ని ఒప్పుకి సెట్ చేసినప్పుడు, మినహాయింపులు లేకుండా అన్ని Android అనువర్తనాల కోసం మైక్రోఫోన్ మ్యూట్ చేయబడుతుంది.</translation> <translation id="523505283826916779">ప్రాప్యత సెట్టింగ్లు</translation> @@ -2435,6 +2454,15 @@ మీరు ఈ సెట్టింగ్ను నిలిపివేస్తే, వినియోగదారులు Smart Lock ఉపయోగించడానికి అనుమతించబడరు. ఈ విధానాన్ని సెట్ చేయకుండా వదిలేస్తే, డిఫాల్ట్ అనేది ఎంటర్ప్రైజ్ నిర్వహిత వినియోగదారులకు అనుమతించబడదు, కానీ నిర్వహించబడని వినియోగదారులకు అనుమతించబడుతుంది.</translation> +<translation id="729492886167634859">ఈ విధానం ప్రకారం కొత్త అప్డేట్ వచ్చిన రోజు నుంచి వారానికి, ఎన్ని <ph name="PRODUCT_OS_NAME" /> పరికరాలలో OU అప్డేట్ చేయబడింది అనేటువంటి, ఆయా గణాంకాలను శాతాల, నిష్పత్తుల రూపంలో సూచిస్తుంది. నిజానికి కొత్త అప్డేట్ అందుబాటులోకి వచ్చిన సమయానికి దాన్ని మీ పరికరంలో అప్డేట్ చేసే సమయానికి వ్యత్యాసం ఉంటుంది, ఎందుకంటే మీ పరికరం కొత్త అప్డేట్ల కోసం తనిఖీ చేసేంత వరకు కొత్తగా అందుబాటులోకి వచ్చిన అప్డేట్లను కనుగొనలేదు. + + జాబితాలోని n- వ విలువ కొత్త అప్డేట్ వచ్చిన రోజు నుంచి n-వ వారంలోగా ఇన్ని పరికరాలలో కొత్త వెర్షన్ని అప్డేట్ చేయబడింది అనేటువంటి, ఆయా గణాంకాలను శాతాల, నిష్పత్తుల రూపంలో సూచిస్తుంది. ఉదాహరణకు, ఒక కొత్త అప్డేట్ని ఈరోజే కనుగొంటే, జాబితాలోని మొదటి విలువ ఈ కొత్త వెర్షన్ని నేటి నుంచి ఈ వారం చివరి వరకు అప్డేట్ చేయబడే OU లోని పరికరాల శాతాన్ని సూచిస్తుంది. రెండవ విలువ ఈ కొత్త వెర్షన్ని నేటి నుంచి వచ్చే 2 వారాలలోగా అప్డేట్ చేయబడే OU లోని పరికరాల శాతాన్ని సూచిస్తుంది, మరియు ఈ విధంగా ఉంటుంది. + + ఈ విధానం కోసం సూచించబడిన విలువ ఇంకేదైనా ఉంటే, అప్డేట్లు <ph name="DEVICE_UPDATE_SCATTER_FACTOR_POLICY_NAME" /> విధానాన్ని విస్మరించి అందుకు బదులుగా ఈ విధానాన్ని అనుసరిస్తాయి. + + ఈ జాబితా ఖాళీగా ఉంటే, ఇతర పరికరాల విధానాలకు అనుగుణంగా స్టేజింగ్ ఉండదు మరియు అప్డేట్లు వర్తించబడతాయి. + + ఈ విధానం ఛానెల్ స్విచ్లకు వర్తించదు.</translation> <translation id="7295019613773647480">పర్యవేక్షించబడే వినియోగదారులను ప్రారంభించు</translation> <translation id="7301543427086558500">శోధన ఇంజిన్ నుండి శోధన పదాలను సంగ్రహించడానికి ఉపయోగించబడే ప్రత్యామ్నాయ URLల జాబితాను నిర్దేశిస్తుంది. URLలు శోధన పదాలను సంగ్రహించడానికి ఉపయోగించబడే స్ట్రింగ్ <ph name="SEARCH_TERM_MARKER" />ను కలిగి ఉండాలి. @@ -2954,6 +2982,13 @@ ఉదాహరణ నమూనాల కోసం https://www.chromium.org/developers/how-tos/chrome-frame-getting-started చూడండి.</translation> <translation id="8493645415242333585">బ్రౌజర్ చరిత్రని సేవ్ చెయ్యడాన్ని ఆపివేయి</translation> +<translation id="8498293625012059298">పాస్వర్డ్ని మార్చు URLని (HTTP మరియు HTTPS స్కీమ్లు మాత్రమే) కాన్ఫిగర్ చేయండి. బ్రౌజర్లో ఏదైనా ప్రమాదకర హెచ్చరిక కనిపిస్తే, పాస్వర్డ్ రక్షణ సేవ వారిని ఈ URLకు పంపుతుంది, ఇక్కడ వారు తమ పాస్వర్డ్లను మార్చుకోవచ్చు. + + <ph name="PRODUCT_NAME" />కోసం ఈ పాస్వర్డ్ని మార్చు పేజీలో కొత్త పాస్వర్డ్ వేలిముద్రను సరిగ్గా క్యాప్చర్ చేయడానికి, మీ పాస్వర్డ్ని మార్చు పేజీ, https://www.chromium.org/developers/design-documents/create-amazing-password-formsలోని మార్గదర్శకాలను అనుసరిస్తుందని దయచేసి నిర్ధారించుకోండి. + + ఈ సెట్టింగ్ ప్రారంభించబడినట్లయితే, బ్రౌజర్లో ఏదైనా ప్రమాదకర హెచ్చరిక కనిపిస్తే, పాస్వర్డ్ రక్షణ సేవ వారిని ఈ URLకు పంపుతుంది, ఇక్కడ వారు తమ పాస్వర్డ్లను మార్చుకోవచ్చు. + ఈ సెట్టింగ్ నిలిపివేబడినట్లయితే లేదా సెట్ చేయబడకపోయినట్లయితే, అప్పుడు పాస్వర్డ్ రక్షణ సేవ, వినియోగదారులను వారి పాస్వర్డ్లు మార్చుకోవడానికి https://myaccounts.google.comకి పంపుతుంది. + ఈ విధానం <ph name="MS_AD_NAME" /> డొమైన్లో చేరని Windowsని ఉపయోగించే సందర్భాలలో అందుబాటులో ఉండదు.</translation> <translation id="8499172469244085141">డిఫాల్ట్ సెట్టింగ్లు (వినియోగదారులు భర్తీ చేయవచ్చు)</translation> <translation id="8507835864888987300">స్వయంచాలక అప్డేట్ల కోసం లక్ష్య వెర్షన్ను సెట్ చేస్తుంది. @@ -3007,6 +3042,14 @@ ఈ విధానాన్ని తప్పు అని మార్చినప్పుడు, అది కొత్త వర్చువల్ మెషీన్లకు వర్తించడం ప్రారంభమవుతుంది, కానీ అప్పటికే అమలవుతున్న వర్చువల్ మెషీన్లు షట్ డౌన్ చేయబడవు. ఈ విధానాన్ని నిర్వాహిత పరికరంలో సెట్ చేయనప్పుడు, వర్చువల్ మెషీన్లను అమలు చేయడానికి పరికరం అనుమతించబడదు. వర్చువల్ మెషీన్లను అమలు చేయడానికి నిర్వహించబడని పరికరాలు అనుమతించబడతాయి.</translation> +<translation id="8669669491594628013">పాస్వర్డ్ రక్షణ హెచ్చరికను యాక్టివేట్ చేయడాన్ని నియంత్రించడానికి మిమ్మల్ని అనుమతిస్తుంది. వినియోగదారులు తమ రక్షిత పాస్వర్డ్ని అనుమానాస్పదమయ్యే అవకాశమున్న సైట్లలో తిరిగి ఉపయోగించినప్పుడు పాస్వర్డ్ రక్షణ వారిని హెచ్చరిస్తుంది. + + ఏ పాస్వర్డ్ను రక్షించాలో కాన్ఫిగర్ చేయడానికి 'PasswordProtectionLoginURLs' మరియు 'PasswordProtectionChangePasswordURL' విధానాలను మీరు ఉపయోగించవచ్చు. + + ఈ విధానాన్ని 'PasswordProtectionWarningOff'కి సెట్ చేసినట్లయితే, పాస్వర్డ్ రక్షణ హెచ్చరిక చూపబడదు. + ఈ విధానాన్ని 'PasswordProtectionWarningOnPasswordReuse'కి సెట్ చేసినట్లయితే, వినియోగదారులు తమ సురక్షిత పాస్వర్డ్ని వైట్లిస్ట్లో లేని సైట్లో మళ్లీ వినియోగించినప్పుడు పాస్వర్డ్ రక్షణ హెచ్చరిక చూపబడుతుంది. + ఈ విధానాన్ని 'PasswordProtectionWarningOnPhishingReuse'కి సెట్ చేసినట్లయితే, వినియోగదారులు తమ రక్షిత పాస్వర్డ్ని ఫిషింగ్ సైట్లో మళ్లీ ఉపయోగించినప్పుడు పాస్వర్డ్ రక్షణ హెచ్చరిక చూపబడుతుంది. + ఈ విధానాన్ని సెట్ చేయకపోయినట్లయితే, పాస్వర్డ్ రక్షణ సేవ Google పాస్వర్డ్లకు మాత్రమే రక్షణ కల్పిస్తుంది, కానీ వినియోగదారు ఈ సెట్టింగ్ని మార్చుకోగలరు .</translation> <translation id="8672321184841719703">లక్ష్య స్వీయ నవీకరణ సంస్కరణ</translation> <translation id="867410340948518937">U2F (సార్వజనీన రెండవ కారకం)</translation> <translation id="8685024486845674965">పాస్వర్డ్ని తిరిగి ఉపయోగించినప్పుడు పాస్వర్డ్ రక్షణ హెచ్చరిక సక్రియం చేయబడుతుంది</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb index 1b32e52..438dc21d 100644 --- a/components/policy/resources/policy_templates_uk.xtb +++ b/components/policy/resources/policy_templates_uk.xtb
@@ -1132,6 +1132,15 @@ Якщо це правило не налаштовано, до всіх сайтів застосовується загальне правило за умовчанням: DefaultKeygenSetting (якщо налаштовано) або правило користувача.</translation> <translation id="4239720644496144453">Додатки Android не використовують кеш. Якщо кілька користувачів установлять той самий додаток Android, він завантажиться заново для кожного користувача.</translation> +<translation id="4243336580717651045">Вмикає збір анонімних даних, які захищено паролем URL-адрес, у службі <ph name="PRODUCT_NAME" /> і забороняє користувачам змінювати це налаштування. + + Збір анонімних даних, захищених паролем URL-адрес, надсилає в Google URL-адреси сторінок, які відвідує користувач, щоб покращити пошук і веб-перегляд. + + Якщо ввімкнути це правило, функція збору анонімних даних, захищених паролем URL-адрес, буде завжди активна. + + Якщо вимкнути це правило, функція збору анонімних даних, захищених паролем URL-адрес, буде неактивна. + + Якщо це правило не налаштовано, збір анонімних даних, захищених паролем URL-адрес, буде ввімкнено, але користувач зможе змінити це.</translation> <translation id="4250680216510889253">ні</translation> <translation id="4261820385751181068">Мовний код на екрані входу на пристрої</translation> <translation id="427220754384423013">Указує принтери, доступні для користувачів. @@ -1754,6 +1763,7 @@ Якщо ви хочете блокувати екран у режимі неактивності, радимо ввімкнути блокування екрана під час призупинення роботи й задати період неактивності <ph name="PRODUCT_OS_NAME" />, після якого вмикатиметься режим неактивності. Це правило має застосовуватися, лише якщо потрібно блокувати екран задовго до ввімкнення режиму неактивності або якщо цей режим не потрібно використовувати взагалі. Значення правила вказується в мілісекундах. Значення мають бути меншими за період затримки через неактивність.</translation> +<translation id="6097601282776163274">Увімкнути збір анонімних даних, захищених паролем URL-адрес</translation> <translation id="6111936128861357925">Дозволити грати в гру Dinosaur Easter Egg</translation> <translation id="6114416803310251055">не рекомендується</translation> <translation id="6133088669883929098">Дозволити всім сайтам генерувати ключі</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb index d0e2b4a5..c76c4da7 100644 --- a/components/policy/resources/policy_templates_zh-CN.xtb +++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -1397,7 +1397,7 @@ 如果该政策设为True,<ph name="PRODUCT_OS_NAME" />将阻止相应设备进入开发者模式。当开发者模式开关处于打开状态时,系统将无法启动并显示错误屏幕。 如果该政策未设置或设为False,相应设备将可以使用开发者模式。</translation> -<translation id="520403427390290017">标签页生命周期功能可回收 CPU,并最终回收与很长时间未使用的正在运行的标签页关联的内存(具体方法是:先限制,再冻结,最终将其舍弃)。 +<translation id="520403427390290017">标签页生命周期功能可回收与很长时间未使用的正在运行的标签页关联的 CPU 资源,并最终回收与其关联的内存(具体方法是:先限制,再冻结,最终将其舍弃)。 如果此政策设为 false,系统会停用标签页生命周期,并且所有标签页都将保持正常运行。 @@ -2576,7 +2576,7 @@ 为了使 <ph name="PRODUCT_NAME" /> 能够正确捕获这一用于更改密码的页面中的新密码指纹,请务必确保该页面遵循了 https://www.chromium.org/developers/design-documents/create-amazing-password-forms 上所述的准则。 如果启用了此设置,那么当在浏览器中向用户发出警告后,密码保护服务即会将用户转到此网址,以便其更改密码。 - 如果停用了或未设定此设置,密码保护服务则会将用户转到 https://myaccounts.google.com,以便其更改密码。 + 如果停用了或未设定此设置,则密码保护服务会将用户转到 https://myaccounts.google.com,以便其更改密码。 此政策不适用于未加入 <ph name="MS_AD_NAME" /> 网域的 Windows 实例。</translation> <translation id="8499172469244085141">默认设置(用户可以覆盖)</translation> <translation id="8507835864888987300">为自动更新设定目标版本。
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb index b68c027c..ac38a6e9 100644 --- a/components/strings/components_strings_ar.xtb +++ b/components/strings/components_strings_ar.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">وكيل المستخدم</translation> <translation id="6903319715792422884">يمكنك المساعدة في تحسين التصفُّح الآمن عن طريق إرسال بعض <ph name="BEGIN_WHITEPAPER_LINK" />معلومات النظام ومحتوى الصفحة<ph name="END_WHITEPAPER_LINK" /> إلى Google. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">المستخدم:</translation> +<translation id="6944692733090228304">لقد أدخلتَ كلمة المرور في موقع ويب لا تديره <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. ويُرجى عدم إعادة استخدام كلمة المرور في التطبيقات ومواقع الويب الأخرى لحماية حسابك.</translation> <translation id="6945221475159498467">تحديد</translation> <translation id="6948701128805548767">لعرض طرق الاستلام ومتطلباته، حدِّد عنوانًا</translation> <translation id="6949872517221025916">إعادة تحديد كلمة المرور</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222">استغرق <ph name="HOST_NAME" /> وقتًا أطول مما يجب للاستجابة.</translation> <translation id="8503559462189395349">كلمات المرور في Chrome</translation> <translation id="8503813439785031346">اسم المستخدم</translation> +<translation id="8508648098325802031">رمز البحث</translation> <translation id="8543181531796978784">يمكنك <ph name="BEGIN_ERROR_LINK" />الإبلاغ عن اكتشاف مشكلة<ph name="END_ERROR_LINK" /> أو، إذا كنت تدرك المخاطر المتعلقة بالأمان، يمكنك <ph name="BEGIN_LINK" />زيارة هذا الموقع غير الآمن<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">هل هناك أي أسئلة؟ اتصل بالشخص الذي يشرف على ملفك الشخصي.</translation> <translation id="8553075262323480129">تعذّرت الترجمة لتعذر تحديد لغة الصفحة.</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb index 0926d6f..6d9dab18 100644 --- a/components/strings/components_strings_cs.xtb +++ b/components/strings/components_strings_cs.xtb
@@ -805,6 +805,7 @@ <translation id="6897140037006041989">User agent</translation> <translation id="6903319715792422884">Pomozte zlepšit Bezpečné vyhledávání tím, že budete část <ph name="BEGIN_WHITEPAPER_LINK" />informací o systému a obsahu stránek<ph name="END_WHITEPAPER_LINK" /> odesílat do Googlu. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Uživatel:</translation> +<translation id="6944692733090228304">Zadali jste heslo na webu, který není spravován organizací <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Aby byl váš účet chráněn, nepoužívejte jeho heslo v jiných aplikacích a na jiných webech.</translation> <translation id="6945221475159498467">Vybrat</translation> <translation id="6948701128805548767">Chcete-li zobrazit způsoby vyzvednutí a požadavky, vyberte adresu</translation> <translation id="6949872517221025916">Resetovat heslo</translation> @@ -1029,6 +1030,7 @@ <translation id="8498891568109133222">Odpověď webu <ph name="HOST_NAME" /> trvala příliš dlouho.</translation> <translation id="8503559462189395349">Hesla Chrome</translation> <translation id="8503813439785031346">Uživatelské jméno</translation> +<translation id="8508648098325802031">Ikona Vyhledávání</translation> <translation id="8543181531796978784">Můžete <ph name="BEGIN_ERROR_LINK" />nahlásit problém se zjištěným webem<ph name="END_ERROR_LINK" />. Pokud bezpečnostní rizika chápete, můžete <ph name="BEGIN_LINK" />tento nespolehlivý web navštívit<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Máte nějaké dotazy? Kontaktujte osobu, která dohlíží na váš profil.</translation> <translation id="8553075262323480129">Překlad se nezdařil. Nepodařilo se rozpoznat jazyk stránky.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb index 77619f6..7719212 100644 --- a/components/strings/components_strings_da.xtb +++ b/components/strings/components_strings_da.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">Brugeragent</translation> <translation id="6903319715792422884">Hjælp med at forbedre Beskyttet browsing ved at sende nogle <ph name="BEGIN_WHITEPAPER_LINK" />systemoplysninger og noget sideindhold<ph name="END_WHITEPAPER_LINK" /> til Google. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Bruger:</translation> +<translation id="6944692733090228304">Du indtastede din adgangskode på et website, der ikke administreres af <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Du kan beskytte din konto ved at undgå at bruge din adgangskode i andre apps og på andre websites.</translation> <translation id="6945221475159498467">Vælg</translation> <translation id="6948701128805548767">Vælg en adresse for at se afhentningsmetoder og -krav</translation> <translation id="6949872517221025916">Nulstil adgangskode</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> var for lang tid om at svare.</translation> <translation id="8503559462189395349">Chrome-adgangskoder</translation> <translation id="8503813439785031346">Brugernavn</translation> +<translation id="8508648098325802031">Søgeikon</translation> <translation id="8543181531796978784">Du kan <ph name="BEGIN_ERROR_LINK" />rapportere et registreringsproblem<ph name="END_ERROR_LINK" /> eller, hvis du forstår den sikkerhedsrisiko, du udsætter dig for, <ph name="BEGIN_LINK" />kan du gå til dette usikre website<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Har du spørgsmål? Kontakt din profiladministrator.</translation> <translation id="8553075262323480129">Oversættelsen mislykkedes, fordi sidens sprog ikke kunne fastslås.</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb index c37f84e..cff9025 100644 --- a/components/strings/components_strings_de.xtb +++ b/components/strings/components_strings_de.xtb
@@ -809,6 +809,7 @@ <translation id="6897140037006041989">User-Agent</translation> <translation id="6903319715792422884">Sie können uns dabei helfen, Safe Browsing weiter zu verbessern, <ph name="BEGIN_WHITEPAPER_LINK" />indem Sie einige Systeminformationen und Seiteninhalte an Google senden<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Nutzer:</translation> +<translation id="6944692733090228304">Sie haben Ihr Passwort auf einer Website eingegeben, die nicht von <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> verwaltet wird. Zum Schutz Ihres Kontos sollten Sie das Passwort nicht für andere Apps und Websites verwenden.</translation> <translation id="6945221475159498467">Auswählen</translation> <translation id="6948701128805548767">Wählen Sie eine Adresse aus, um Abholoptionen und -anforderungen zu sehen</translation> <translation id="6949872517221025916">Passwort zurücksetzen</translation> @@ -1033,6 +1034,7 @@ <translation id="8498891568109133222">Die Antwort von <ph name="HOST_NAME" /> hat zu lange gedauert.</translation> <translation id="8503559462189395349">Chrome-Passwörter</translation> <translation id="8503813439785031346">Nutzername</translation> +<translation id="8508648098325802031">Symbol "Suche"</translation> <translation id="8543181531796978784">Sie können ein <ph name="BEGIN_ERROR_LINK" />Erkennungsproblem melden<ph name="END_ERROR_LINK" /> oder, wenn Sie die Sicherheitsrisiken kennen, <ph name="BEGIN_LINK" />diese unsichere Website aufrufen<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Fragen? Wenden Sie sich an die Person, die Ihr Profil überwacht.</translation> <translation id="8553075262323480129">Die Übersetzung ist fehlgeschlagen, weil die Sprache der Seite nicht ermittelt werden konnte.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb index bf7a1f7..63e9ed1 100644 --- a/components/strings/components_strings_fil.xtb +++ b/components/strings/components_strings_fil.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">User Agent</translation> <translation id="6903319715792422884">Tumulong sa pagpapahusay ng Ligtas na Pag-browse sa pamamagitan ng pagpapadala sa Google ng ilang <ph name="BEGIN_WHITEPAPER_LINK" />impormasyon ng system at content ng page<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">User:</translation> +<translation id="6944692733090228304">Inilagay mo ang iyong password sa site na hindi pinapamahalaan ng <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Para protektahan ang iyong account, huwag gamiting muli ang password mo sa iba pang app at site.</translation> <translation id="6945221475159498467">Pumili</translation> <translation id="6948701128805548767">Upang makita ang mga pamamaraan at kinakailangan sa pag-pick up, pumili ng address</translation> <translation id="6949872517221025916">I-reset ang Password</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222">Masyadong matagal bago nakatugon ang <ph name="HOST_NAME" />.</translation> <translation id="8503559462189395349">Mga Password sa Chrome</translation> <translation id="8503813439785031346">Username</translation> +<translation id="8508648098325802031">Icon ng paghahanap</translation> <translation id="8543181531796978784">Maaari kang <ph name="BEGIN_ERROR_LINK" />mag-ulat ng problema sa pagtukoy<ph name="END_ERROR_LINK" /> o, kung nauunawaan mo ang mga panganib sa iyong seguridad, <ph name="BEGIN_LINK" />bisitahin ang hindi ligtas na site na ito<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">May mga tanong? Makipag-ugnayan sa taong nangangasiwa sa iyong profile.</translation> <translation id="8553075262323480129">Nabigo ang pag-translate dahil hindi matukoy ang wika ng pahina.</translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb index 656b8fa..deafb3e 100644 --- a/components/strings/components_strings_gu.xtb +++ b/components/strings/components_strings_gu.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">વપરાશકર્તા એજન્ટ</translation> <translation id="6903319715792422884">Googleને અમુક <ph name="BEGIN_WHITEPAPER_LINK" />સિસ્ટમ માહિતી અને પેજ કન્ટેન્ટ<ph name="END_WHITEPAPER_LINK" />મોકલીને સલામત બ્રાઉઝિંગ બહેતર બનાવવામાં સહાય કરો. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">વપરાશકર્તા: </translation> +<translation id="6944692733090228304"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> દ્વારા સંચાલિત ન થતી હોય, તેવી સાઇટ પર તમે તમારો પાસવર્ડ દાખલ કર્યો છે. તમારા એકાઉન્ટની સુરક્ષા માટે, અન્ય ઍપ અને સાઇટ પર તમારા પાસવર્ડનો ફરી ઉપયોગ ન કરો.</translation> <translation id="6945221475159498467">પસંદ કરો</translation> <translation id="6948701128805548767">પિકઅપ પદ્ધતિ અને આવશ્યકતાઓ જોવા માટે, એક સરનામું પસંદ કરો</translation> <translation id="6949872517221025916">પાસવર્ડ રીસેટ કરો</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> એ પ્રતિસાદ આપવા માટે ઘણો સમય લીધો.</translation> <translation id="8503559462189395349">Chrome પાસવર્ડ</translation> <translation id="8503813439785031346">વપરાશકર્તાનામ</translation> +<translation id="8508648098325802031">શોધ આઇકન</translation> <translation id="8543181531796978784">તમે <ph name="BEGIN_ERROR_LINK" />શોધ સમસ્યાની જાણ<ph name="END_ERROR_LINK" /> કરી શકો છો અથવા જો તમે તમારી સુરક્ષા અંગેનાં જોખમોને સમજતાં હોવ, તો <ph name="BEGIN_LINK" />આ અસુરક્ષિત સાઇટની મુલાકાત<ph name="END_LINK" /> લઈ શકો છો.</translation> <translation id="8543556556237226809">પ્રશ્નો છે? તમારી પ્રોફાઇલનું નિરીક્ષણ કરનાર વ્યક્તિનો સંપર્ક કરો.</translation> <translation id="8553075262323480129">ભાષાંતર નિષ્ફળ રહ્યું કારણ કે પૃષ્ઠની ભાષા નિર્ધારિત થઈ શકી નથી.</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb index a7d5ead..afde5e1 100644 --- a/components/strings/components_strings_hi.xtb +++ b/components/strings/components_strings_hi.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">उपयोगकर्ता एजेंट</translation> <translation id="6903319715792422884">'सुरक्षित ब्राउज़िंग' को बेहतर बनाने में मदद करने के लिए Google को कुछ <ph name="BEGIN_WHITEPAPER_LINK" />'सिस्टम जानकारी' और 'पेज सामग्री'<ph name="END_WHITEPAPER_LINK" /> भेजें. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">उपयोगकर्ता:</translation> +<translation id="6944692733090228304">आपने एक ऐसी साइट पर अपना पासवर्ड डाला है जिसे <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> प्रबंधित नहीं करता है. अपने खाते को सुरक्षित रखने के लिए, दूसरे ऐप्लिकेशन और साइटों पर अपने पासवर्ड का दोबारा इस्तेमाल नहीं करें.</translation> <translation id="6945221475159498467">चुनें</translation> <translation id="6948701128805548767">पिकअप के तरीके और ज़रूरतें देखने के लिए, कोई पता चुनें</translation> <translation id="6949872517221025916">पासवर्ड रीसेट करें</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> को लोड होने में बहुत ज़्यादा समय लगा.</translation> <translation id="8503559462189395349">Chrome पासवर्ड</translation> <translation id="8503813439785031346">उपयोगकर्ता नाम</translation> +<translation id="8508648098325802031">खोज अाइकॉन</translation> <translation id="8543181531796978784">आप <ph name="BEGIN_ERROR_LINK" />पहचान संबंधी समस्या की रिपोर्ट<ph name="END_ERROR_LINK" /> कर सकते हैं या अगर आप अपनी सुरक्षा संबंधी जोखिमों को समझते हैं तो, <ph name="BEGIN_LINK" />इस असुरक्षित साइट पर जा<ph name="END_LINK" /> सकते हैं.</translation> <translation id="8543556556237226809">प्रश्न पूछना चाहते हैं? तो उस व्यक्ति से संपर्क करें जो आपकी प्रोफ़ाइल की निगरानी करता है.</translation> <translation id="8553075262323480129">अनुवाद विफल हो गया क्योंकि पेज की भाषा निर्धारित नहीं की जा सकी.</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb index 0d69b31..d485a1a 100644 --- a/components/strings/components_strings_hr.xtb +++ b/components/strings/components_strings_hr.xtb
@@ -809,6 +809,7 @@ <translation id="6897140037006041989">Korisnički agent</translation> <translation id="6903319715792422884">Pomognite poboljšati Sigurno pregledavanje tako što ćete Googleu slati neke <ph name="BEGIN_WHITEPAPER_LINK" />podatke o sustavu i sadržaj web-stranice<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Korisnik:</translation> +<translation id="6944692733090228304">Unijeli ste zaporku na web-lokaciju kojom ne upravlja <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Da biste zaštitili račun, nemojte upotrebljavati tu zaporku za druge aplikacije i web-lokacije.</translation> <translation id="6945221475159498467">Odaberi</translation> <translation id="6948701128805548767">Odaberite adresu za prikaz načina preuzimanja i zahtjeva za preuzimanje</translation> <translation id="6949872517221025916">Poništite zaporku</translation> @@ -1033,6 +1034,7 @@ <translation id="8498891568109133222">Hostu <ph name="HOST_NAME" /> bilo je potrebno previše vremena za odgovor.</translation> <translation id="8503559462189395349">Zaporke preglednika Chrome</translation> <translation id="8503813439785031346">Korisničko ime</translation> +<translation id="8508648098325802031">Ikona pretraživanja</translation> <translation id="8543181531796978784">Možete <ph name="BEGIN_ERROR_LINK" />prijaviti problem s otkrivanjem<ph name="END_ERROR_LINK" /> ili, ako razumijete na koje je načine ugrožena vaša sigurnost, <ph name="BEGIN_LINK" />posjetite nesigurnu web-lokaciju<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Imate li pitanja? Obratite se osobi koja nadzire vaš profil.</translation> <translation id="8553075262323480129">Prijevod nije uspio jer nije bilo moguće odrediti jezik stranice.</translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb index 5d98eec..eea8c5d 100644 --- a/components/strings/components_strings_iw.xtb +++ b/components/strings/components_strings_iw.xtb
@@ -815,6 +815,7 @@ <translation id="6897140037006041989">User agent</translation> <translation id="6903319715792422884">על-ידי שליחה של חלק מ<ph name="BEGIN_WHITEPAPER_LINK" />פרטי המערכת ותוכן הדפים<ph name="END_WHITEPAPER_LINK" /> אל Google, אפשר לעזור בשיפור של 'גלישה בטוחה'. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">משתמש:</translation> +<translation id="6944692733090228304">הזנת את הסיסמה שלך באתר שלא מנוהל על ידי <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. כדי להגן על החשבון, מומלץ לא להשתמש בסיסמה שלך באפליקציות ובאתרים אחרים.</translation> <translation id="6945221475159498467">בחר</translation> <translation id="6948701128805548767">עליך לבחור כתובת כדי לראות שיטות איסוף ודרישות</translation> <translation id="6949872517221025916">איפוס סיסמה</translation> @@ -1039,6 +1040,7 @@ <translation id="8498891568109133222">ל-<ph name="HOST_NAME" /> נדרש זמן רב מדי להגיב.</translation> <translation id="8503559462189395349">סיסמאות Chrome</translation> <translation id="8503813439785031346">שם משתמש</translation> +<translation id="8508648098325802031">סמל החיפוש</translation> <translation id="8543181531796978784">באפשרותך <ph name="BEGIN_ERROR_LINK" />לדווח על בעיית זיהוי<ph name="END_ERROR_LINK" /> או, אם אתה מבין את סיכוני האבטחה, <ph name="BEGIN_LINK" />להיכנס לאתר הזה, שאינו מאובטח<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">יש לך שאלות? עליך לפנות לאיש הקשר שמפקח על הפרופיל שלך.</translation> <translation id="8553075262323480129">התרגום נכשל כיוון שלא הייתה אפשרות לקבוע את שפת הדף.</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb index c3fbae2d..bdb4a17 100644 --- a/components/strings/components_strings_kn.xtb +++ b/components/strings/components_strings_kn.xtb
@@ -804,6 +804,7 @@ <translation id="6897140037006041989">ಬಳಕೆದಾರ ಏಜೆಂಟ್</translation> <translation id="6903319715792422884"><ph name="BEGIN_WHITEPAPER_LINK" />ಸಿಸ್ಟಂ ಕುರಿತು ಕೆಲವೊಂದು ಮಾಹಿತಿಯನ್ನು ಮತ್ತು ಪುಟದ ವಿಷಯವನ್ನು<ph name="END_WHITEPAPER_LINK" /> Google ಗೆ ಕಳುಹಿಸುವ ಮೂಲಕ, ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಅನ್ನು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡಿ. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">ಬಳಕೆದಾರ:</translation> +<translation id="6944692733090228304">ನೀವು ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ನಿರ್ವಹಣೆ ಮಾಡದ ಸೈಟ್ನಲ್ಲಿ ನಮೂದಿಸಿದ್ದೀರಿ. ನಿಮ್ಮ ಖಾತೆಯನ್ನು ರಕ್ಷಿಸಲು, ಇತರ ಆ್ಯಪ್ಗಳಲ್ಲಿ ಮತ್ತು ಸೈಟ್ಗಳಲ್ಲಿ ನಿಮ್ಮ ಪಾಸ್ವರ್ಡ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಬೇಡಿ.</translation> <translation id="6945221475159498467">ಆಯ್ಕೆಮಾಡಿ</translation> <translation id="6948701128805548767">ಪಿಕಪ್ ವಿಧಾನಗಳು ಹಾಗೂ ಆವಶ್ಯಕತೆಗಳನ್ನು ನೋಡಲು, ಒಂದು ವಿಳಾಸವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation> <translation id="6949872517221025916">ಪಾಸ್ವರ್ಡ್ ಮರುಹೊಂದಿಸಿ</translation> @@ -1027,6 +1028,7 @@ <translation id="8498891568109133222">ಪ್ರತಿಕ್ರಿಯಿಸಲು <ph name="HOST_NAME" /> ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಂಡಿದೆ.</translation> <translation id="8503559462189395349">Chrome ಪಾಸ್ವರ್ಡ್ಗಳು</translation> <translation id="8503813439785031346">ಬಳಕೆದಾರಹೆಸರು</translation> +<translation id="8508648098325802031">ಹುಡುಕಾಟದ ಐಕಾನ್</translation> <translation id="8543181531796978784">ನೀವು <ph name="BEGIN_ERROR_LINK" />ಪತ್ತೆ ಹಚ್ಚುವಿಕೆ ಸಮಸ್ಯೆಯನ್ನು ವರದಿ ಮಾಡಬಹುದು<ph name="END_ERROR_LINK" /> ಅಥವಾ ನಿಮ್ಮ ಭದ್ರತೆಯ ಅಪಾಯಗಳ ಕುರಿತು ನಿಮಗೆ ಅರ್ಥವಾಗಿದ್ದರೆ, <ph name="BEGIN_LINK" />ಈ ಅಸುರಕ್ಷಿತ ಸೈಟ್ಗೆ ಭೇಟಿ ನೀಡಿ<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">ಪ್ರಶ್ನೆಗಳಿವೆಯೇ? ನಿಮ್ಮ ಪ್ರೊಫೈಲ್ ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡುವ ವ್ಯಕ್ತಿಯನ್ನು ಸಂಪರ್ಕಸಿ.</translation> <translation id="8553075262323480129">ಪುಟದ ಭಾಷೆಯನ್ನು ಗುರುತಿಸಲು ಅಸಾಧ್ಯವಾದ ಕಾರಣ ಭಾಷಾಂತರವು ವಿಫಲವಾಗಿದೆ.</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb index a5bf9f79..f4d64fe 100644 --- a/components/strings/components_strings_lt.xtb +++ b/components/strings/components_strings_lt.xtb
@@ -811,6 +811,7 @@ <translation id="6897140037006041989">Naudotojo atstovas</translation> <translation id="6903319715792422884">Padėkite tobulinti Saugų naršymą siųsdami tam tikrą <ph name="BEGIN_WHITEPAPER_LINK" />sistemos informaciją ir puslapių turinį<ph name="END_WHITEPAPER_LINK" /> „Google“. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Naudotojas:</translation> +<translation id="6944692733090228304">Įvedėte slaptažodį svetainėje, kurios netvarko organizacija <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Kad apsaugotumėte paskyrą, nenaudokite to paties slaptažodžio kitose programose ir svetainėse.</translation> <translation id="6945221475159498467">Pasirinkti</translation> <translation id="6948701128805548767">Jei norite peržiūrėti paėmimo metodus ir reikalavimus, pasirinkite adresą</translation> <translation id="6949872517221025916">Slaptažodžio nustatymas iš naujo</translation> @@ -1035,6 +1036,7 @@ <translation id="8498891568109133222">Per ilgai laukta <ph name="HOST_NAME" /> atsako.</translation> <translation id="8503559462189395349">„Chrome“ slaptažodžiai</translation> <translation id="8503813439785031346">Vartotojo vardas</translation> +<translation id="8508648098325802031">Paieškos piktograma</translation> <translation id="8543181531796978784">Galite <ph name="BEGIN_ERROR_LINK" />pranešti apie aptikimo problemą<ph name="END_ERROR_LINK" /> arba, jei suprantate saugos riziką, galite <ph name="BEGIN_LINK" />apsilankyti šioje nesaugioje svetainėje<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Turite klausimų? Susisiekite su jūsų profilį prižiūrinčiu asmeniu.</translation> <translation id="8553075262323480129">Išversti negalima, nes nepavyko nustatyti puslapio kalbos.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb index 9ea0e09..d7886c4 100644 --- a/components/strings/components_strings_lv.xtb +++ b/components/strings/components_strings_lv.xtb
@@ -809,6 +809,7 @@ <translation id="6897140037006041989">Lietotāja aģents</translation> <translation id="6903319715792422884">Palīdziet uzlabot Drošo pārlūkošanu, nosūtot noteiktu <ph name="BEGIN_WHITEPAPER_LINK" />sistēmas informāciju un lapas saturu<ph name="END_WHITEPAPER_LINK" /> Google serveriem. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Lietotājs:</translation> +<translation id="6944692733090228304">Jūs ievadījāt paroli vietnē, kuru nepārvalda <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Lai aizsargātu savu kontu, neizmantojiet šo paroli citās lietotnēs un vietnēs.</translation> <translation id="6945221475159498467">Atlasīt</translation> <translation id="6948701128805548767">Lai skatītu saņemšanas veidus un prasības, atlasiet adresi.</translation> <translation id="6949872517221025916">Paroles atiestatīšana</translation> @@ -1033,6 +1034,7 @@ <translation id="8498891568109133222">Vietne <ph name="HOST_NAME" /> pārāk ilgi nereaģēja.</translation> <translation id="8503559462189395349">Chrome paroles</translation> <translation id="8503813439785031346">Lietotājvārds</translation> +<translation id="8508648098325802031">Meklēšanas ikona</translation> <translation id="8543181531796978784">Jūs varat <ph name="BEGIN_ERROR_LINK" />ziņot par noteikšanas problēmu<ph name="END_ERROR_LINK" /> vai, ja apzināties drošības riskus, <ph name="BEGIN_LINK" />apmeklēt šo nedrošo vietni<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Vai radušies jautājumi? Sazinieties ar personu, kas uzrauga jūsu profilu.</translation> <translation id="8553075262323480129">Tulkošana neizdevās, jo lapas valoda nav nosakāma.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb index d8c9d8a9..d2da341 100644 --- a/components/strings/components_strings_ml.xtb +++ b/components/strings/components_strings_ml.xtb
@@ -809,6 +809,7 @@ <translation id="6897140037006041989">ഉപയോക്തൃ ഏജന്റ്</translation> <translation id="6903319715792422884">ചില <ph name="BEGIN_WHITEPAPER_LINK" />സിസ്റ്റം വിവരങ്ങളും പേജ് ഉള്ളടക്കവും<ph name="END_WHITEPAPER_LINK" /> Google-ലേക്ക് അയച്ച്, സുരക്ഷിത ബ്രൗസിംഗ് മെച്ചപ്പെടുത്താൻ സഹായിക്കുക. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">ഉപയോക്താവ്:</translation> +<translation id="6944692733090228304"><ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> മാനേജ് ചെയ്യാത്ത ഒരു സൈറ്റിൽ നിങ്ങൾ പാസ്വേഡ് നൽകി. നിങ്ങളുടെ അക്കൗണ്ട് പരിരക്ഷിക്കുന്നതിന്, മറ്റ് ആപ്പുകളിലും സൈറ്റുകളിലും നിങ്ങളുടെ പാസ്വേഡ് വീണ്ടും ഉപയോഗിക്കരുത്.</translation> <translation id="6945221475159498467">തിരഞ്ഞെടുക്കുക</translation> <translation id="6948701128805548767">പിക്ക്അപ്പ് രീതികളും ആവശ്യകതകളും കാണാൻ ഒരു വിലാസം തിരഞ്ഞെടുക്കുക</translation> <translation id="6949872517221025916">പാസ്വേഡ് പുനഃസജ്ജീകരിക്കുക</translation> @@ -1031,6 +1032,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> പ്രതികരിക്കാൻ കൂടുതൽ സമയമെടുത്തു.</translation> <translation id="8503559462189395349">Chrome പാസ്വേഡുകൾ</translation> <translation id="8503813439785031346">ഉപയോക്തൃനാമം</translation> +<translation id="8508648098325802031">തിരയൽ ഐക്കൺ</translation> <translation id="8543181531796978784">നിങ്ങൾക്ക് <ph name="BEGIN_ERROR_LINK" />സുരക്ഷാപ്രശ്നം റിപ്പോർട്ടുചെയ്യാം<ph name="END_ERROR_LINK" /> അല്ലെങ്കിൽ, സുരക്ഷയെ ബാധിച്ചേക്കാവുന്ന അപകട സാധ്യതകളെക്കുറിച്ച് ബോധ്യമുണ്ടെങ്കിൽ <ph name="BEGIN_LINK" />സുരക്ഷിതമല്ലാത്ത ഈ സൈറ്റ്<ph name="END_LINK" />സന്ദർശിക്കുക.</translation> <translation id="8543556556237226809">ചോദ്യങ്ങളുണ്ടോ? നിങ്ങളുടെ പ്രൊഫൈൽ സൂപ്പർവൈസുചെയ്ത വ്യക്തിയെ ബന്ധപ്പെടുക.</translation> <translation id="8553075262323480129">പേജിന്റെ ഭാഷ നിര്ണ്ണയിക്കാന് കഴിയാത്തതിനാല് വിവര്ത്തനം പരാജയപ്പെട്ടു.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb index 556f241..903b8e83 100644 --- a/components/strings/components_strings_mr.xtb +++ b/components/strings/components_strings_mr.xtb
@@ -811,6 +811,7 @@ <translation id="6897140037006041989">वापरकर्ता एजंट</translation> <translation id="6903319715792422884">सुरक्षित ब्राउझिंगमध्ये सुधारणा करण्यासाठी Google ला काही <ph name="BEGIN_WHITEPAPER_LINK" />सिस्टम माहिती आणि पेज आशय<ph name="END_WHITEPAPER_LINK" /> पाठवून मदत करा. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">वापरकर्ता:</translation> +<translation id="6944692733090228304">तुम्ही पासवर्ड एंटर केलेली साइट <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> द्वारे व्यवस्थापित केलेली नाही. तुमच्या खात्याच्या संरक्षणासाठी, तुमचा पासवर्ड इतर अॅप्स किंवा साइटवर पुन्हा वापरू नका.</translation> <translation id="6945221475159498467">निवडा</translation> <translation id="6948701128805548767">पिकअप पद्धती आणि आवश्यकता पाहण्यासाठी, एक पत्ता निवडा</translation> <translation id="6949872517221025916">पासवर्ड रीसेट करा</translation> @@ -1035,6 +1036,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> नी प्रतिसाद देण्यात बराच वेळ घेतला.</translation> <translation id="8503559462189395349">Chrome पासवर्ड</translation> <translation id="8503813439785031346">वापरकर्तानाव</translation> +<translation id="8508648098325802031">शोध आयकन</translation> <translation id="8543181531796978784">आपण <ph name="BEGIN_ERROR_LINK" />ओळखण्याच्या समस्येचा अहवाल<ph name="END_ERROR_LINK" /> देऊ शकता किंवा आपल्या सुरक्षिततेस असणार्या जोखीम आपण समजत असल्यास, <ph name="BEGIN_LINK" />या असुरक्षित साइटला भेट द्या<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">प्रश्न आहेत? तुमच्या प्रोफाइलचे निरीक्षण करणाऱ्या व्यक्तीशी संपर्क साधा.</translation> <translation id="8553075262323480129">भाषांतर करण्यात अयशस्वी कारण पृष्ठाची भाषा निर्धारित करणे शक्य नाही.</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb index 74838a2..ddfaf86 100644 --- a/components/strings/components_strings_no.xtb +++ b/components/strings/components_strings_no.xtb
@@ -583,6 +583,7 @@ <translation id="5089810972385038852">Fylke / delstat</translation> <translation id="5094747076828555589">Denne tjeneren kunne ikke bevise at den er <ph name="DOMAIN" />. Sikkerhetssertifikatet til tjeneren er ikke klarert av Chromium. Dette kan være forårsaket av en feilkonfigurering eller en angriper som avskjærer tilkoblingen din.</translation> <translation id="5095208057601539847">Provins</translation> +<translation id="5098332213681597508">Dette navnet er for Google-kontoen din.</translation> <translation id="5115563688576182185">(64-bit)</translation> <translation id="5121084798328133320">Etter at du har bekreftet, deles kortopplysningene fra Google Payments-kontoen med dette nettstedet.</translation> <translation id="5128122789703661928">Økten med dette navnet er ikke gyldig for sletting.</translation> @@ -668,6 +669,7 @@ <translation id="5633066919399395251">Angripere som for øyeblikket er på <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />, kan prøve å installere farlige programmer på datamaskinen du bruker, for å stjele eller slette informasjonen din (for eksempel bilder, passord, meldinger og kredittkortinformasjon). <ph name="BEGIN_LEARN_MORE_LINK" />Finn ut mer<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="563324245173044180">Villedende innhold er blokkert.</translation> <translation id="5659593005791499971">E-post</translation> +<translation id="5666899935841546222">Vil du ha alle kortene dine på ett sted?</translation> <translation id="5675650730144413517">Denne siden fungerer ikke</translation> <translation id="5685654322157854305">Legg til leveringsadresse</translation> <translation id="5689199277474810259">Eksportér til JSON</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb index 8c14187..f75c362 100644 --- a/components/strings/components_strings_pl.xtb +++ b/components/strings/components_strings_pl.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">Klient</translation> <translation id="6903319715792422884">Pomóż w ulepszaniu Bezpiecznego przeglądania, wysyłając do Google pewne <ph name="BEGIN_WHITEPAPER_LINK" />informacje o systemie i część zawartości stron<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Użytkownik:</translation> +<translation id="6944692733090228304">Wpisałeś swoje hasło na stronie, którą nie zarządza <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Aby chronić konto, nie używaj swojego hasła w innych aplikacjach ani witrynach.</translation> <translation id="6945221475159498467">Wybierz</translation> <translation id="6948701128805548767">Aby zobaczyć metody odbioru oraz wymagania, wybierz adres</translation> <translation id="6949872517221025916">Resetuj hasło</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222">Serwer <ph name="HOST_NAME" /> potrzebował zbyt wiele czasu na odpowiedź.</translation> <translation id="8503559462189395349">Hasła w Chrome</translation> <translation id="8503813439785031346">Nazwa użytkownika</translation> +<translation id="8508648098325802031">Ikona wyszukiwania</translation> <translation id="8543181531796978784">Możesz <ph name="BEGIN_ERROR_LINK" />zgłosić problem z wykrywaniem<ph name="END_ERROR_LINK" /> lub – jeśli rozumiesz zagrożenie – <ph name="BEGIN_LINK" />wejść na tę niebezpieczną stronę<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Masz pytania? Skontaktuj się z osobą, która nadzoruje Twój profil.</translation> <translation id="8553075262323480129">Tłumaczenie nie powiodło się, ponieważ nie można określić języka strony.</translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb index 19d992e..c622842 100644 --- a/components/strings/components_strings_pt-BR.xtb +++ b/components/strings/components_strings_pt-BR.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">Agente do usuário</translation> <translation id="6903319715792422884">Ajudar a melhorar o recurso "Navegação segura" enviando algumas <ph name="BEGIN_WHITEPAPER_LINK" />informações do sistema e conteúdo da página<ph name="END_WHITEPAPER_LINK" /> para o Google. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Usuário:</translation> +<translation id="6944692733090228304">Você inseriu sua senha em um site que não é gerenciado por <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Para proteger sua conta, não reutilize sua senha em outros apps e sites.</translation> <translation id="6945221475159498467">Selecionar</translation> <translation id="6948701128805548767">Para ver métodos e requisitos de retirada, selecione um endereço</translation> <translation id="6949872517221025916">Redefinir senha</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> demorou muito para responder.</translation> <translation id="8503559462189395349">Senhas do Chrome</translation> <translation id="8503813439785031346">Nome de usuário</translation> +<translation id="8508648098325802031">Ícone de pesquisa</translation> <translation id="8543181531796978784">Você pode <ph name="BEGIN_ERROR_LINK" />denunciar um problema de detecção<ph name="END_ERROR_LINK" /> ou, se entende os riscos à sua segurança, <ph name="BEGIN_LINK" />acessar este site não seguro<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Dúvidas? Entre em contato com a pessoa que supervisiona seu perfil.</translation> <translation id="8553075262323480129">A tradução falhou porque não foi possível determinar o idioma da página.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb index 860ee08..96e354e 100644 --- a/components/strings/components_strings_ro.xtb +++ b/components/strings/components_strings_ro.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">User Agent</translation> <translation id="6903319715792422884">Ne poți ajuta să îmbunătățim Navigarea sigură dacă trimiți la Google anumite <ph name="BEGIN_WHITEPAPER_LINK" />informații despre sistem și conținutul paginii<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Utilizator:</translation> +<translation id="6944692733090228304">Ai introdus parola pe un site care nu este gestionat de <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Pentru a proteja contul, nu folosi aceeași parolă pentru alte aplicații și site-uri.</translation> <translation id="6945221475159498467">Selectează</translation> <translation id="6948701128805548767">Pentru a vedea metodele de preluare și cerințele, selectează o adresă</translation> <translation id="6949872517221025916">Resetează parola</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222"><ph name="HOST_NAME" /> a răspuns prea târziu.</translation> <translation id="8503559462189395349">Parole Chrome</translation> <translation id="8503813439785031346">Nume utilizator</translation> +<translation id="8508648098325802031">Pictograma Căutare</translation> <translation id="8543181531796978784">Poți să <ph name="BEGIN_ERROR_LINK" />raportezi o problemă privind detectarea<ph name="END_ERROR_LINK" /> sau, dacă îți asumi riscurile de securitate, poți să <ph name="BEGIN_LINK" />accesezi acest site nesigur<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Întrebări? Contactează persoana care îți monitorizează profilul.</translation> <translation id="8553075262323480129">Traducerea nu a reușit, deoarece nu a putut fi stabilită limba paginii.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb index aba02cc..04f58a05 100644 --- a/components/strings/components_strings_sk.xtb +++ b/components/strings/components_strings_sk.xtb
@@ -805,6 +805,7 @@ <translation id="6897140037006041989">Používateľský agent</translation> <translation id="6903319715792422884">Pomôžte zlepšovať Bezpečné prehliadanie tak, že budete Googlu odosielať niektoré <ph name="BEGIN_WHITEPAPER_LINK" />informácie o systéme a obsah stránok<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Používateľ:</translation> +<translation id="6944692733090228304">Zadali ste heslo na webe, ktorý nie je spravovaný organizáciou <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Ak chcete, aby bol váš účet chránený, nepoužívajte jeho heslo pre iné aplikácie a weby.</translation> <translation id="6945221475159498467">Vybrať</translation> <translation id="6948701128805548767">Ak chcete zobraziť spôsoby a požiadavky vyzdvihnutia, vyberte adresu</translation> <translation id="6949872517221025916">Obnovenie hesla</translation> @@ -1029,6 +1030,7 @@ <translation id="8498891568109133222">Web <ph name="HOST_NAME" /> príliš dlho neodpovedal.</translation> <translation id="8503559462189395349">Heslá Chromu</translation> <translation id="8503813439785031346">Meno používateľa</translation> +<translation id="8508648098325802031">Ikona vyhľadávania</translation> <translation id="8543181531796978784">Môžete buď <ph name="BEGIN_ERROR_LINK" />nahlásiť problém s zisťovaním<ph name="END_ERROR_LINK" />, alebo <ph name="BEGIN_LINK" />tieto nebezpečné stránky navštíviť<ph name="END_LINK" /> (ak si uvedomujete bezpečnostné riziko).</translation> <translation id="8543556556237226809">Máte otázky? Obráťte sa na osobu, ktorá kontroluje váš profil.</translation> <translation id="8553075262323480129">Prekladanie zlyhalo, pretože sa nepodarilo určiť jazyk stránky.</translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb index eb70b654..5a21700d 100644 --- a/components/strings/components_strings_sl.xtb +++ b/components/strings/components_strings_sl.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">Uporabnikov posrednik</translation> <translation id="6903319715792422884">S pošiljanjem nekaterih <ph name="BEGIN_WHITEPAPER_LINK" />informacij o sistemu in vsebine strani<ph name="END_WHITEPAPER_LINK" /> Googlu lahko pomagate izboljšati Varno brskanje. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Uporabnik:</translation> +<translation id="6944692733090228304">Vnesli ste geslo na spletnem mestu, ki ga ne upravlja: <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Zaradi zaščite računa gesla ne uporabljajte za druge aplikacije in spletna mesta.</translation> <translation id="6945221475159498467">Izberi</translation> <translation id="6948701128805548767">Če si želite ogledati načine prevzema in zahteve, izberite naslov</translation> <translation id="6949872517221025916">Ponastavitev gesla</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222">Spletno mesto <ph name="HOST_NAME" /> se ni odzvalo v ustreznem času.</translation> <translation id="8503559462189395349">Gesla za Chrome</translation> <translation id="8503813439785031346">Uporabniško ime</translation> +<translation id="8508648098325802031">Ikona za iskanje</translation> <translation id="8543181531796978784"><ph name="BEGIN_ERROR_LINK" />Prijavite lahko težavo z zaznavanjem<ph name="END_ERROR_LINK" />, če razumete varnostna tveganja, pa lahko <ph name="BEGIN_LINK" />obiščete to spletno mesto, ki ni varno<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Imate kakšno vprašanje? Obrnite se na osebo, ki nadzira vaš profil.</translation> <translation id="8553075262323480129">Prevod ni uspel, ker ni mogoče določiti jezika strani.</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb index 4fa15c0..cf03403 100644 --- a/components/strings/components_strings_sr.xtb +++ b/components/strings/components_strings_sr.xtb
@@ -809,6 +809,7 @@ <translation id="6897140037006041989">Кориснички агент</translation> <translation id="6903319715792422884">Побољшајте Безбедно прегледање слањем <ph name="BEGIN_WHITEPAPER_LINK" />системских информација и садржаја страница<ph name="END_WHITEPAPER_LINK" /> Google-у. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Корисник:</translation> +<translation id="6944692733090228304">Унели сте лозинку на сајту којим не управља <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Да бисте заштитили налог, не користите лозинку поново у другим апликацијама ни на другим сајтовима.</translation> <translation id="6945221475159498467">Изабери</translation> <translation id="6948701128805548767">Да бисте видели начине и захтеве за преузимање, изаберите адресу</translation> <translation id="6949872517221025916">Ресетујте лозинку</translation> @@ -1033,6 +1034,7 @@ <translation id="8498891568109133222">Одговор хоста <ph name="HOST_NAME" /> је трајао предуго.</translation> <translation id="8503559462189395349">Лозинке за Chrome</translation> <translation id="8503813439785031346">Корисничко име</translation> +<translation id="8508648098325802031">Икона Претрага</translation> <translation id="8543181531796978784">Можете да <ph name="BEGIN_ERROR_LINK" />пријавите проблем са откривањем<ph name="END_ERROR_LINK" /> или, ако схватате безбедносне ризике, <ph name="BEGIN_LINK" />посетите овај небезбедан сајт<ph name="END_LINK" />.</translation> <translation id="8543556556237226809">Имате питања? Контактирајте особу која вам надгледа профил.</translation> <translation id="8553075262323480129">Превод није успео јер језик странице није могао да буде утврђен.</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb index 333702b..b6dfb19 100644 --- a/components/strings/components_strings_te.xtb +++ b/components/strings/components_strings_te.xtb
@@ -583,6 +583,7 @@ <translation id="5089810972385038852">రాష్ట్రం</translation> <translation id="5094747076828555589">ఈ సర్వర్ <ph name="DOMAIN" /> అని నిరూపించుకోలేకపోయింది; దీని భద్రతా ప్రమాణపత్రాన్ని Chromium విశ్వసించలేదు. ఇది తప్పుగా కాన్ఫిగర్ చేయడం వలన లేదా దాడిచేసే వ్యక్తి మీ కనెక్షన్కి అంతరాయం కలిగించడం వలన జరిగి ఉండవచ్చు.</translation> <translation id="5095208057601539847">ప్రావిన్స్</translation> +<translation id="5098332213681597508">ఇది మీ Google ఖాతాలో ఉన్న పేరు</translation> <translation id="5115563688576182185">(64-బిట్)</translation> <translation id="5121084798328133320">మీరు నిర్ధారించిన తర్వాత, మీ Google చెల్లింపుల ఖాతా నుండి కార్డ్ వివరాలు ఈ సైట్తో షేర్ చేయబడతాయి.</translation> <translation id="5128122789703661928">ఈ పేరు కలిగిన సెషన్ని తొలగించలేరు.</translation> @@ -668,6 +669,7 @@ <translation id="5633066919399395251"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" />లో హ్యాకర్లు మీ సమాచారాన్ని (ఉదాహరణకు, ఫోటోలు, పాస్వర్డ్లు, సందేశాలు మరియు క్రెడిట్ కార్డ్లు) దొంగిలించగల లేదా తొలగించగల హానికరమైన ప్రోగ్రామ్లను మీ కంప్యూటర్లో ఇన్స్టాల్ చేయడానికి ప్రయత్నించవచ్చు. <ph name="BEGIN_LEARN_MORE_LINK" />మరింత తెలుసుకోండి<ph name="END_LEARN_MORE_LINK" /></translation> <translation id="563324245173044180">మోసపూరితమైన కంటెంట్ బ్లాక్ చేయబడింది.</translation> <translation id="5659593005791499971">ఇమెయిల్</translation> +<translation id="5666899935841546222">మీరు మీ అన్ని కార్డ్లను ఒకే చోట పొందాలనుకుంటున్నారా?</translation> <translation id="5675650730144413517">ఈ పేజీ పని చేయడం లేదు</translation> <translation id="5685654322157854305">షిప్పింగ్ చిరునామాను జోడించండి</translation> <translation id="5689199277474810259">JSONకు ఎగుమతి చేయి</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb index c1cd2bb..c01ef31 100644 --- a/components/strings/components_strings_uk.xtb +++ b/components/strings/components_strings_uk.xtb
@@ -810,6 +810,7 @@ <translation id="6897140037006041989">Агент користувача</translation> <translation id="6903319715792422884">Допоможіть покращити Безпечний перегляд, надсилаючи в Google деяку <ph name="BEGIN_WHITEPAPER_LINK" />інформацію про систему та вміст сторінок<ph name="END_WHITEPAPER_LINK" />. <ph name="PRIVACY_PAGE_LINK" /></translation> <translation id="6915804003454593391">Користувач:</translation> +<translation id="6944692733090228304">Ви ввели пароль на сайті, яким не керує <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" />. Щоб захистити свій обліковий запис, не використовуйте цей пароль для інших додатків і сайтів.</translation> <translation id="6945221475159498467">Вибрати</translation> <translation id="6948701128805548767">Укажіть адресу, щоб переглянути способи отримання та вимоги.</translation> <translation id="6949872517221025916">Скидання пароля</translation> @@ -1034,6 +1035,7 @@ <translation id="8498891568109133222">Хост <ph name="HOST_NAME" /> довго не відповідає.</translation> <translation id="8503559462189395349">Паролі Chrome</translation> <translation id="8503813439785031346">Ім’я користувача</translation> +<translation id="8508648098325802031">Значок пошуку</translation> <translation id="8543181531796978784">Ви можете <ph name="BEGIN_ERROR_LINK" />повідомити про проблему з пошуком<ph name="END_ERROR_LINK" /> або <ph name="BEGIN_LINK" />перейти на цей незахищений сайт<ph name="END_LINK" /> (якщо розумієте, наскільки це небезпечно).</translation> <translation id="8543556556237226809">Маєте запитання? Зв’яжіться з особою, яка контролює ваш профіль.</translation> <translation id="8553075262323480129">Помилка перекладу. Неможливо визначити мову сторінки.</translation>
diff --git a/components/viz/host/host_gpu_memory_buffer_manager.cc b/components/viz/host/host_gpu_memory_buffer_manager.cc index 04e56ad..c35566c 100644 --- a/components/viz/host/host_gpu_memory_buffer_manager.cc +++ b/components/viz/host/host_gpu_memory_buffer_manager.cc
@@ -40,10 +40,12 @@ default; HostGpuMemoryBufferManager::HostGpuMemoryBufferManager( + GpuServiceProvider gpu_service_provider, int client_id, std::unique_ptr<gpu::GpuMemoryBufferSupport> gpu_memory_buffer_support, scoped_refptr<base::SingleThreadTaskRunner> task_runner) - : client_id_(client_id), + : gpu_service_provider_(gpu_service_provider), + client_id_(client_id), gpu_memory_buffer_support_(std::move(gpu_memory_buffer_support)), native_configurations_(gpu::GetNativeGpuMemoryBufferConfigurations( gpu_memory_buffer_support_.get())), @@ -54,17 +56,15 @@ DCHECK(task_runner_->BelongsToCurrentThread()); } -void HostGpuMemoryBufferManager::SetGpuService(mojom::GpuService* gpu_service) { +void HostGpuMemoryBufferManager::GpuServiceShutDown() { DCHECK(task_runner_->BelongsToCurrentThread()); - gpu_service_ = gpu_service; + gpu_service_version_++; // Drop allocated buffers. allocated_buffers_.clear(); - // Retry requesting pending buffer allocations. If the new GPU service is not - // nullptr, requests would be sent immediately; otherwise, they'll be cached - // and sent next time a GPU service is available. + // Retry requesting pending buffer allocations. auto pending_buffers = std::move(pending_buffers_); pending_buffers_.clear(); for (auto& client_pair : pending_buffers) { @@ -77,18 +77,6 @@ } } -void HostGpuMemoryBufferManager::DropPendingAllocationRequests() { - DCHECK(task_runner_->BelongsToCurrentThread()); - DCHECK(!gpu_service_); - for (auto& client_pair : pending_buffers_) { - for (auto& buffer_pair : client_pair.second) { - auto& buffer = buffer_pair.second; - std::move(buffer.callback).Run(gfx::GpuMemoryBufferHandle()); - } - } - pending_buffers_.clear(); -} - void HostGpuMemoryBufferManager::DestroyGpuMemoryBuffer( gfx::GpuMemoryBufferId id, int client_id, @@ -102,8 +90,11 @@ if (buffer_iter == buffers.end()) return; DCHECK_NE(gfx::EMPTY_BUFFER, buffer_iter->second.type); - if (buffer_iter->second.type != gfx::SHARED_MEMORY_BUFFER) - gpu_service_->DestroyGpuMemoryBuffer(id, client_id, sync_token); + if (buffer_iter->second.type != gfx::SHARED_MEMORY_BUFFER) { + auto* gpu_service = gpu_service_provider_.Run(); + DCHECK(gpu_service); + gpu_service->DestroyGpuMemoryBuffer(id, client_id, sync_token); + } buffers.erase(buffer_iter); } @@ -116,8 +107,10 @@ for (const auto& pair : buffers) { DCHECK_NE(gfx::EMPTY_BUFFER, pair.second.type); if (pair.second.type != gfx::SHARED_MEMORY_BUFFER) { - gpu_service_->DestroyGpuMemoryBuffer(pair.first, client_id, - gpu::SyncToken()); + auto* gpu_service = gpu_service_provider_.Run(); + DCHECK(gpu_service); + gpu_service->DestroyGpuMemoryBuffer(pair.first, client_id, + gpu::SyncToken()); } } allocated_buffers_.erase(client_iter); @@ -147,20 +140,23 @@ const bool is_native = native_configurations_.find(std::make_pair( format, usage)) != native_configurations_.end(); if (is_native) { - PendingBufferInfo buffer_info; - buffer_info.size = size; - buffer_info.format = format; - buffer_info.usage = usage; - buffer_info.surface_handle = surface_handle; - buffer_info.callback = std::move(callback); - pending_buffers_[client_id].insert( - std::make_pair(id, std::move(buffer_info))); - if (gpu_service_) { - gpu_service_->CreateGpuMemoryBuffer( + if (auto* gpu_service = gpu_service_provider_.Run()) { + PendingBufferInfo buffer_info; + buffer_info.size = size; + buffer_info.format = format; + buffer_info.usage = usage; + buffer_info.surface_handle = surface_handle; + buffer_info.callback = std::move(callback); + pending_buffers_[client_id].insert( + std::make_pair(id, std::move(buffer_info))); + gpu_service->CreateGpuMemoryBuffer( id, size, format, usage, client_id, surface_handle, base::BindOnce( &HostGpuMemoryBufferManager::OnGpuMemoryBufferAllocated, weak_ptr_, gpu_service_version_, client_id, id)); + } else { + // GPU service failed to start. Run the callback with null handle. + std::move(callback).Run(gfx::GpuMemoryBufferHandle()); } return; } @@ -302,8 +298,10 @@ // The client has been destroyed since the allocation request was made. The // callback is already called with null handle. if (!handle.is_null() && !stale) { - gpu_service_->DestroyGpuMemoryBuffer(handle.id, client_id, - gpu::SyncToken()); + auto* gpu_service = gpu_service_provider_.Run(); + DCHECK(gpu_service); + gpu_service->DestroyGpuMemoryBuffer(handle.id, client_id, + gpu::SyncToken()); } return; }
diff --git a/components/viz/host/host_gpu_memory_buffer_manager.h b/components/viz/host/host_gpu_memory_buffer_manager.h index 0519ab9..20c3b96 100644 --- a/components/viz/host/host_gpu_memory_buffer_manager.h +++ b/components/viz/host/host_gpu_memory_buffer_manager.h
@@ -32,27 +32,26 @@ : public gpu::GpuMemoryBufferManager, public base::trace_event::MemoryDumpProvider { public: + // Callback used to get the current instance of GpuService. The callback + // should retry launching GPU service if it is not already running, or return + // nullptr if it is impossible. + using GpuServiceProvider = base::RepeatingCallback<mojom::GpuService*(void)>; + // All function of HostGpuMemoryBufferManager must be called the thread // associated with |task_runner|, other than the constructor and the // gpu::GpuMemoryBufferManager implementation (which can be called from any // thread). HostGpuMemoryBufferManager( + GpuServiceProvider gpu_service_provider, int client_id, std::unique_ptr<gpu::GpuMemoryBufferSupport> gpu_memory_buffer_support, scoped_refptr<base::SingleThreadTaskRunner> task_runner); ~HostGpuMemoryBufferManager() override; - // This is called whenever GPU service is started, or with nullptr value when - // GPU service is shut down (e.g. GPU process crashes). It will invalidate any - // allocated buffer. If |gpu_serivce| is non-nullptr, it will retry allocation - // requests for pending memory buffers; otherwise, the requests will be cached - // and retried when a GPU service is available. - void SetGpuService(mojom::GpuService* gpu_service); - - // This is called when no new GPU service is going to be available. It would - // drop memory buffer allocation requests and call their callbacks with null - // handles indicating failure.. - void DropPendingAllocationRequests(); + // This is called whenever GPU service is shut down (e.g. GPU process + // crashes). It will invalidate any allocated memory buffer and retry + // allocation requests for pending memory buffers. + void GpuServiceShutDown(); void DestroyGpuMemoryBuffer(gfx::GpuMemoryBufferId id, int client_id, @@ -118,9 +117,9 @@ gfx::GpuMemoryBufferId id, gfx::GpuMemoryBufferHandle handle); - mojom::GpuService* gpu_service_ = nullptr; + GpuServiceProvider gpu_service_provider_; - // This is incremented every time |gpu_service_| is updated in order check + // This is incremented every time GPU service is shut down in order check // whether a buffer is allocated by the most current GPU service or not. int gpu_service_version_ = 0;
diff --git a/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc b/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc index 1a3974d..791c19d 100644 --- a/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc +++ b/components/viz/host/host_gpu_memory_buffer_manager_unittest.cc
@@ -24,6 +24,12 @@ TestGpuService() {} ~TestGpuService() override {} + HostGpuMemoryBufferManager::GpuServiceProvider CreateProvider() { + return base::BindRepeating( + [](mojom::GpuService* gpu_service) { return gpu_service; }, + base::Unretained(this)); + } + bool HasAllocationRequest(gfx::GpuMemoryBufferId id, int client_id) const { for (const auto& req : allocation_requests_) { if (req.id == id && req.client_id == client_id) @@ -249,9 +255,9 @@ // bound to a mojo pipe, which means those calls are all synchronous. TestGpuService gpu_service; auto gpu_memory_buffer_support = MakeGpuMemoryBufferSupport(true); - HostGpuMemoryBufferManager manager(1, std::move(gpu_memory_buffer_support), + HostGpuMemoryBufferManager manager(gpu_service.CreateProvider(), 1, + std::move(gpu_memory_buffer_support), base::ThreadTaskRunnerHandle::Get()); - manager.SetGpuService(&gpu_service); const auto buffer_id = static_cast<gfx::GpuMemoryBufferId>(1); const int client_id = 2; @@ -279,9 +285,9 @@ TEST_F(HostGpuMemoryBufferManagerTest, RequestsFromUntrustedClientsValidated) { TestGpuService gpu_service; auto gpu_memory_buffer_support = MakeGpuMemoryBufferSupport(false); - HostGpuMemoryBufferManager manager(1, std::move(gpu_memory_buffer_support), + HostGpuMemoryBufferManager manager(gpu_service.CreateProvider(), 1, + std::move(gpu_memory_buffer_support), base::ThreadTaskRunnerHandle::Get()); - manager.SetGpuService(&gpu_service); const auto buffer_id = static_cast<gfx::GpuMemoryBufferId>(1); const int client_id = 2; // SCANOUT cannot be used if native gpu memory buffer is not supported. @@ -326,9 +332,9 @@ TEST_F(HostGpuMemoryBufferManagerTest, GpuMemoryBufferDestroyed) { TestGpuService gpu_service; auto gpu_memory_buffer_support = MakeGpuMemoryBufferSupport(false); - HostGpuMemoryBufferManager manager(1, std::move(gpu_memory_buffer_support), + HostGpuMemoryBufferManager manager(gpu_service.CreateProvider(), 1, + std::move(gpu_memory_buffer_support), base::ThreadTaskRunnerHandle::Get()); - manager.SetGpuService(&gpu_service); auto buffer = AllocateGpuMemoryBufferSync(&manager); EXPECT_TRUE(buffer); buffer.reset(); @@ -338,9 +344,9 @@ GpuMemoryBufferDestroyedOnDifferentThread) { TestGpuService gpu_service; auto gpu_memory_buffer_support = MakeGpuMemoryBufferSupport(false); - HostGpuMemoryBufferManager manager(1, std::move(gpu_memory_buffer_support), + HostGpuMemoryBufferManager manager(gpu_service.CreateProvider(), 1, + std::move(gpu_memory_buffer_support), base::ThreadTaskRunnerHandle::Get()); - manager.SetGpuService(&gpu_service); auto buffer = AllocateGpuMemoryBufferSync(&manager); EXPECT_TRUE(buffer); // Destroy the buffer in a different thread.
diff --git a/content/app/strings/translations/content_strings_no.xtb b/content/app/strings/translations/content_strings_no.xtb index d2da111..2b165a6 100644 --- a/content/app/strings/translations/content_strings_no.xtb +++ b/content/app/strings/translations/content_strings_no.xtb
@@ -12,6 +12,7 @@ <translation id="1206693055195146388">glidebryter</translation> <translation id="1211441953136645838">sluttnote</translation> <translation id="1281252709823657822">dialog</translation> +<translation id="1289247557029249093">Avslutt bilde-i-bilde-modus</translation> <translation id="1335095011850992622">anerkjennelser</translation> <translation id="1342835525016946179">article</translation> <translation id="1359897965706325498">banner</translation> @@ -51,6 +52,7 @@ <translation id="2653659639078652383">Send</translation> <translation id="2657045182931379222">grafikkobjekt</translation> <translation id="2674318244760992338">fotnote</translation> +<translation id="2706474812903655270">Denne videoen spilles av i bilde-i-bilde-modus</translation> <translation id="2709516037105925701">Autofyll</translation> <translation id="2723001399770238859">lyd</translation> <translation id="2746543609216772311">Verdien må være <ph name="MINIMUM_DATE_OR_TIME" /> eller senere.</translation> @@ -189,6 +191,7 @@ <translation id="7720026100085573005">tid som gjenstår</translation> <translation id="7740016676195725605">slå av tekstingen</translation> <translation id="7740050170769002709">HTML-innhold</translation> +<translation id="7750228210027921155">Bilde i bilde</translation> <translation id="7789962463072032349">stans midlertidig</translation> <translation id="7802800022689234070">trekant for ekstra innhold</translation> <translation id="7888071071722539607">Inkluder en «<ph name="ATSIGN" />» i e-postadressen. «<ph name="INVALIDADDRESS" />» mangler en «<ph name="ATSIGN" />».</translation>
diff --git a/content/app/strings/translations/content_strings_te.xtb b/content/app/strings/translations/content_strings_te.xtb index d2b40697..53351a20 100644 --- a/content/app/strings/translations/content_strings_te.xtb +++ b/content/app/strings/translations/content_strings_te.xtb
@@ -12,6 +12,7 @@ <translation id="1206693055195146388">స్లయిడర్</translation> <translation id="1211441953136645838">ఎండ్నోట్</translation> <translation id="1281252709823657822">డైలాగ్</translation> +<translation id="1289247557029249093">చిత్రంలో చిత్రం మోడ్ నుంచి నిష్క్రమించు</translation> <translation id="1335095011850992622">సహకారులు</translation> <translation id="1342835525016946179">కథనం</translation> <translation id="1359897965706325498">బ్యానర్</translation> @@ -51,6 +52,7 @@ <translation id="2653659639078652383">సమర్పించు</translation> <translation id="2657045182931379222">గ్రాఫిక్స్ ఆబ్జెక్ట్</translation> <translation id="2674318244760992338">ఫుటర్</translation> +<translation id="2706474812903655270">ఈ వీడియో చిత్రంలో చిత్రం మోడ్లో ప్లే అవుతోంది</translation> <translation id="2709516037105925701">స్వయంపూర్తి</translation> <translation id="2723001399770238859">ఆడియో</translation> <translation id="2746543609216772311">విలువ తప్పనిసరిగా <ph name="MINIMUM_DATE_OR_TIME" /> లేదా అంతకంటే తదుపరిది అయి ఉండాలి.</translation> @@ -189,6 +191,7 @@ <translation id="7720026100085573005">మిగిలి ఉన్న సమయం</translation> <translation id="7740016676195725605">సంవృత శీర్షికలను ప్రదర్శించడం ఆపివేయి</translation> <translation id="7740050170769002709">HTML కంటెంట్</translation> +<translation id="7750228210027921155">చిత్రంలో చిత్రం</translation> <translation id="7789962463072032349">నిలిపివేయి</translation> <translation id="7802800022689234070">కంటెంట్ను విస్తరింపజేసే లేదా కుదించే త్రిభుజం</translation> <translation id="7888071071722539607">దయచేసి ఇమెయిల్ చిరునామాలో '<ph name="ATSIGN" />'ని చేర్చండి. '<ph name="INVALIDADDRESS" />'లో '<ph name="ATSIGN" />' లేదు.</translation>
diff --git a/content/browser/BUILD.gn b/content/browser/BUILD.gn index 71ba3c44..9f20f83 100644 --- a/content/browser/BUILD.gn +++ b/content/browser/BUILD.gn
@@ -1518,6 +1518,8 @@ "sandbox_parameters_mac.mm", "scheduler/responsiveness/calculator.cc", "scheduler/responsiveness/calculator.h", + "scheduler/responsiveness/message_loop_observer.cc", + "scheduler/responsiveness/message_loop_observer.h", "scheduler/responsiveness/watcher.cc", "scheduler/responsiveness/watcher.h", "scoped_active_url.cc", @@ -1889,13 +1891,6 @@ "//content/browser/tracing:resources", ] } - if ((use_udev && is_posix) || is_mac || is_win) { - deps += [ "//tools/battor_agent:battor_agent_lib" ] - sources += [ - "tracing/power_tracing_agent.cc", - "tracing/power_tracing_agent.h", - ] - } # Desktop/Window/WebContents screen capture implementations, conditionally # built depending on the available implementations for each platform.
diff --git a/content/browser/child_process_launcher.cc b/content/browser/child_process_launcher.cc index 7423f8b..20e14a94 100644 --- a/content/browser/child_process_launcher.cc +++ b/content/browser/child_process_launcher.cc
@@ -169,6 +169,7 @@ bool ChildProcessLauncherPriority::operator==( const ChildProcessLauncherPriority& other) const { return background == other.background && frame_depth == other.frame_depth && + intersects_viewport == other.intersects_viewport && boost_for_pending_views == other.boost_for_pending_views #if defined(OS_ANDROID) && importance == other.importance
diff --git a/content/browser/child_process_launcher.h b/content/browser/child_process_launcher.h index c97cd81e..3ccccf3 100644 --- a/content/browser/child_process_launcher.h +++ b/content/browser/child_process_launcher.h
@@ -58,6 +58,7 @@ struct ChildProcessLauncherPriority { bool background; unsigned int frame_depth; + bool intersects_viewport; bool boost_for_pending_views; #if defined(OS_ANDROID) ChildProcessImportance importance;
diff --git a/content/browser/child_process_launcher_helper_android.cc b/content/browser/child_process_launcher_helper_android.cc index fdf4141f..a368f8c 100644 --- a/content/browser/child_process_launcher_helper_android.cc +++ b/content/browser/child_process_launcher_helper_android.cc
@@ -222,8 +222,8 @@ DCHECK(env); return Java_ChildProcessLauncherHelperImpl_setPriority( env, java_peer_, process.Handle(), !priority.background, - priority.frame_depth, priority.boost_for_pending_views, - static_cast<jint>(priority.importance)); + priority.frame_depth, priority.intersects_viewport, + priority.boost_for_pending_views, static_cast<jint>(priority.importance)); } // static
diff --git a/content/browser/download/download_manager_impl.cc b/content/browser/download/download_manager_impl.cc index 813b1b5..04c9a1d 100644 --- a/content/browser/download/download_manager_impl.cc +++ b/content/browser/download/download_manager_impl.cc
@@ -299,6 +299,8 @@ delegate_(nullptr), in_progress_manager_( browser_context_->RetriveInProgressDownloadManager()), + next_download_id_(download::DownloadItem::kInvalidId), + is_history_download_id_retrieved_(false), weak_factory_(this) { DCHECK(browser_context); download::SetIOTaskRunner( @@ -344,14 +346,43 @@ return download; } -void DownloadManagerImpl::GetNextId(const DownloadIdCallback& callback) { +void DownloadManagerImpl::GetNextId(GetNextIdCallback callback) { DCHECK_CURRENTLY_ON(BrowserThread::UI); - if (delegate_) { - delegate_->GetNextId(callback); + if (IsNextIdInitialized()) { + std::move(callback).Run(next_download_id_++); return; } - static uint32_t next_id = download::DownloadItem::kInvalidId + 1; - callback.Run(next_id++); + + id_callbacks_.emplace_back( + std::make_unique<GetNextIdCallback>(std::move(callback))); + // If we are first time here, call the delegate to get the next ID from + // history db. + if (!is_history_download_id_retrieved_ && id_callbacks_.size() == 1u) { + if (delegate_) { + delegate_->GetNextId( + base::BindRepeating(&DownloadManagerImpl::OnHistoryNextIdRetrived, + weak_factory_.GetWeakPtr())); + } else { + OnHistoryNextIdRetrived(download::DownloadItem::kInvalidId + 1); + } + } +} + +void DownloadManagerImpl::SetNextId(uint32_t next_id) { + if (next_id > next_download_id_) + next_download_id_ = next_id; + if (!IsNextIdInitialized()) + return; + + for (auto& callback : id_callbacks_) + std::move(*callback).Run(next_download_id_++); + id_callbacks_.clear(); +} + +void DownloadManagerImpl::OnHistoryNextIdRetrived(uint32_t next_id) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + is_history_download_id_retrieved_ = true; + SetNextId(next_id); } void DownloadManagerImpl::DetermineDownloadTarget( @@ -507,6 +538,7 @@ void DownloadManagerImpl::OnInProgressDownloadManagerInitialized() { std::vector<std::unique_ptr<download::DownloadItemImpl>> in_progress_downloads = in_progress_manager_->TakeInProgressDownloads(); + uint32_t max_id = download::DownloadItem::kInvalidId; for (auto& download : in_progress_downloads) { DCHECK(!base::ContainsKey(downloads_by_guid_, download->GetGuid())); DCHECK(!base::ContainsKey(downloads_, download->GetId())); @@ -514,12 +546,16 @@ download::DownloadItemImpl* item = download.get(); item->SetDelegate(this); downloads_by_guid_[download->GetGuid()] = item; - downloads_[download->GetId()] = std::move(download); + uint32_t id = download->GetId(); + downloads_[id] = std::move(download); + if (id > max_id) + max_id = id; for (auto& observer : observers_) observer.OnDownloadCreated(this, item); DVLOG(20) << __func__ << "() download = " << item->DebugString(true); } PostInitialization(DOWNLOAD_INITIALIZATION_DEPENDENCY_IN_PROGRESS_CACHE); + SetNextId(max_id + 1); } void DownloadManagerImpl::StartDownloadItem( @@ -535,10 +571,9 @@ std::move(callback).Run(std::move(info), download); OnDownloadStarted(download, on_started); } else { - GetNextId( - base::BindRepeating(&DownloadManagerImpl::CreateNewDownloadItemToStart, - weak_factory_.GetWeakPtr(), base::Passed(&info), - on_started, base::Passed(&callback))); + GetNextId(base::BindOnce(&DownloadManagerImpl::CreateNewDownloadItemToStart, + weak_factory_.GetWeakPtr(), std::move(info), + on_started, std::move(callback))); } } @@ -641,10 +676,10 @@ const DownloadItemImplCreated& item_created) { DCHECK_CURRENTLY_ON(BrowserThread::UI); GetNextId( - base::Bind(&DownloadManagerImpl::CreateSavePackageDownloadItemWithId, - weak_factory_.GetWeakPtr(), main_file_path, page_url, - mime_type, render_process_id, render_frame_id, - base::Passed(std::move(request_handle)), item_created)); + base::BindOnce(&DownloadManagerImpl::CreateSavePackageDownloadItemWithId, + weak_factory_.GetWeakPtr(), main_file_path, page_url, + mime_type, render_process_id, render_frame_id, + std::move(request_handle), item_created)); } void DownloadManagerImpl::CreateSavePackageDownloadItemWithId( @@ -1232,4 +1267,8 @@ } } +bool DownloadManagerImpl::IsNextIdInitialized() const { + return is_history_download_id_retrieved_ && in_progress_cache_initialized_; +} + } // namespace content
diff --git a/content/browser/download/download_manager_impl.h b/content/browser/download/download_manager_impl.h index 4f07f57f..8dda7b4 100644 --- a/content/browser/download/download_manager_impl.h +++ b/content/browser/download/download_manager_impl.h
@@ -214,9 +214,18 @@ download::InProgressDownloadManager::StartDownloadItemCallback callback, uint32_t id); + using GetNextIdCallback = base::OnceCallback<void(uint32_t)>; // Called to get an ID for a new download. |callback| may be called // synchronously. - void GetNextId(const DownloadIdCallback& callback); + void GetNextId(GetNextIdCallback callback); + + // Sets the |next_download_id_| if the |next_id| is larger. Runs all the + // |id_callbacks_| if both the ID from both history db and in-progress db + // are retrieved. + void SetNextId(uint32_t next_id); + + // Called when the next ID from history db is retrieved. + void OnHistoryNextIdRetrived(uint32_t next_id); // Create a new active item based on the info. Separate from // StartDownload() for testing. @@ -279,6 +288,9 @@ const GURL& site_url, bool is_download_allowed); + // Whether |next_download_id_| is initialized. + bool IsNextIdInitialized() const; + // Factory for creation of downloads items. std::unique_ptr<download::DownloadItemFactory> item_factory_; @@ -329,6 +341,18 @@ // Callback to run to load all history downloads. base::OnceClosure load_history_downloads_cb_; + // The next download id to issue to new downloads. The |next_download_id_| can + // only be used when both history and in-progress db have provided their + // values. + uint32_t next_download_id_; + + // Whether next download ID from history DB is being retrieved. + bool is_history_download_id_retrieved_; + + // Callbacks to run once download ID is determined. + using IdCallbackVector = std::vector<std::unique_ptr<GetNextIdCallback>>; + IdCallbackVector id_callbacks_; + base::WeakPtrFactory<DownloadManagerImpl> weak_factory_; DISALLOW_COPY_AND_ASSIGN(DownloadManagerImpl);
diff --git a/content/browser/download/download_manager_impl_unittest.cc b/content/browser/download/download_manager_impl_unittest.cc index c4e5f80..7df5b5b6 100644 --- a/content/browser/download/download_manager_impl_unittest.cc +++ b/content/browser/download/download_manager_impl_unittest.cc
@@ -522,6 +522,7 @@ std::unique_ptr<ByteStreamReader> stream(new MockByteStreamReader); uint32_t local_id(5); // Random value base::FilePath download_path(FILE_PATH_LITERAL("download/path")); + OnInProgressDownloadManagerInitialized(); EXPECT_FALSE(download_manager_->GetDownload(local_id));
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc index a15c21a..e2d0e8b3 100644 --- a/content/browser/frame_host/render_frame_host_impl.cc +++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -628,6 +628,8 @@ DCHECK(!render_widget_host_->owned_by_render_frame_host()); render_widget_host_->SetWidget(std::move(widget)); } + if (!frame_tree_node_->parent()) + render_widget_host_->SetIntersectsViewport(true); render_widget_host_->SetFrameDepth(frame_tree_node_->depth()); render_widget_host_->SetWidgetInputHandler(std::move(widget_handler), std::move(host_request));
diff --git a/content/browser/gpu/compositor_util.cc b/content/browser/gpu/compositor_util.cc index 19f0708f..a57fbd9 100644 --- a/content/browser/gpu/compositor_util.cc +++ b/content/browser/gpu/compositor_util.cc
@@ -17,6 +17,7 @@ #include "base/metrics/field_trial.h" #include "base/numerics/ranges.h" #include "base/strings/string_number_conversions.h" +#include "base/strings/string_split.h" #include "base/sys_info.h" #include "build/build_config.h" #include "cc/base/switches.h" @@ -338,6 +339,25 @@ workarounds.push_back(gpu::GpuDriverBugWorkaroundTypeToString( static_cast<gpu::GpuDriverBugWorkaroundType>(workaround))); } + // Tell clients about the disabled extensions and disabled WebGL + // extensions as well, to avoid confusion. Do this in a way that's + // compatible with the current reporting of driver bug workarounds + // to DevTools and Telemetry, and from there to the GPU tests. + // + // This code must be kept in sync with + // GpuBenchmarking::GetGpuDriverBugWorkarounds. + for (auto ext : base::SplitString(gpu_feature_info.disabled_extensions, + " ", + base::TRIM_WHITESPACE, + base::SPLIT_WANT_NONEMPTY)) { + workarounds.push_back("disabled_extension_" + ext); + } + for (auto ext : base::SplitString(gpu_feature_info.disabled_webgl_extensions, + " ", + base::TRIM_WHITESPACE, + base::SPLIT_WANT_NONEMPTY)) { + workarounds.push_back("disabled_webgl_extension_" + ext); + } return workarounds; }
diff --git a/content/browser/loader/resource_dispatcher_host_unittest.cc b/content/browser/loader/resource_dispatcher_host_unittest.cc index c9ef299..d11f55bf0f 100644 --- a/content/browser/loader/resource_dispatcher_host_unittest.cc +++ b/content/browser/loader/resource_dispatcher_host_unittest.cc
@@ -106,6 +106,7 @@ request.resource_type = type; request.appcache_host_id = kAppCacheNoHostId; request.should_reset_appcache = false; + request.render_frame_id = 0; request.is_main_frame = true; request.transition_type = ui::PAGE_TRANSITION_LINK; request.allow_download = true;
diff --git a/content/browser/media/media_color_browsertest.cc b/content/browser/media/media_color_browsertest.cc index 1581091..0f56a7d 100644 --- a/content/browser/media/media_color_browsertest.cc +++ b/content/browser/media/media_color_browsertest.cc
@@ -18,17 +18,15 @@ RunTest(GetFileUrlWithQuery(path, video_file), media::kEnded); EXPECT_EQ(media::kEnded, final_title); } + void SetUp() override { + EnablePixelOutput(); + MediaBrowserTest::SetUp(); + } }; // Android doesn't support Theora. #if !defined(OS_ANDROID) -// This fails on Linux: http://crbug.com/767926. -#if defined(OS_LINUX) -#define MAYBE_Yuv420pTheora DISABLED_Yuv420pTheora -#else -#define MAYBE_Yuv420pTheora Yuv420pTheora -#endif -IN_PROC_BROWSER_TEST_F(MediaColorTest, MAYBE_Yuv420pTheora) { +IN_PROC_BROWSER_TEST_F(MediaColorTest, Yuv420pTheora) { RunColorTest("yuv420p.ogv"); } @@ -57,9 +55,8 @@ #if BUILDFLAG(USE_PROPRIETARY_CODECS) -// This fails on some Android devices: http://crbug.com/649199, -// and Linux: http://crbug.com/767926. -#if defined(OS_LINUX) || defined(OS_ANDROID) +// This fails on some Android devices: http://crbug.com/649199 +#if defined(OS_ANDROID) #define MAYBE_Yuv420pH264 DISABLED_Yuv420pH264 #else #define MAYBE_Yuv420pH264 Yuv420pH264 @@ -68,9 +65,9 @@ RunColorTest("yuv420p.mp4"); } -// This test fails on Android: http://crbug.com/647818, OSX: -// http://crbug.com/647838 and Linux: http://crbug.com/767926. -#if defined(OS_LINUX) || defined(OS_MACOSX) || defined(OS_ANDROID) +// This test fails on Android: http://crbug.com/647818 and OSX: +// http://crbug.com/647838 +#if defined(OS_MACOSX) || defined(OS_ANDROID) #define MAYBE_Yuvj420pH264 DISABLED_Yuvj420pH264 #else #define MAYBE_Yuvj420pH264 Yuvj420pH264 @@ -79,11 +76,10 @@ RunColorTest("yuvj420p.mp4"); } -// This fails on Linux & ChromeOS: http://crbug.com/647400, +// This fails on ChromeOS: http://crbug.com/647400, // Windows: http://crbug.com/647842, and Android: http://crbug.com/649199, // http://crbug.com/649185. -#if defined(OS_LINUX) || defined(OS_CHROMEOS) || defined(OS_WIN) || \ - defined(OS_ANDROID) +#if defined(OS_CHROMEOS) || defined(OS_WIN) || defined(OS_ANDROID) #define MAYBE_Yuv420pRec709H264 DISABLED_Yuv420pRec709H264 #else #define MAYBE_Yuv420pRec709H264 Yuv420pRec709H264 @@ -92,9 +88,9 @@ RunColorTest("yuv420p_rec709.mp4"); } -// This fails on Linux: http://crbug.com/767926. Android doesn't support 10bpc. +// Android doesn't support 10bpc. // This test flakes on mac: http://crbug.com/810908 -#if defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_MACOSX) +#if defined(OS_ANDROID) || defined(OS_MACOSX) #define MAYBE_Yuv420pHighBitDepth DISABLED_Yuv420pHighBitDepth #else #define MAYBE_Yuv420pHighBitDepth Yuv420pHighBitDepth
diff --git a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc index bb71805..f59eca0 100644 --- a/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc +++ b/content/browser/picture_in_picture/picture_in_picture_window_controller_impl.cc
@@ -111,6 +111,7 @@ // |initiator_| enters Picture-in-Picture mode. media_player_id_ = media_web_contents_observer_->GetPictureInPictureVideoMediaPlayerId(); + UpdatePlaybackState(IsPlayerActive(), !media_player_id_.has_value()); window_->UpdateVideoSize(natural_size);
diff --git a/content/browser/renderer_host/browser_compositor_view_mac.h b/content/browser/renderer_host/browser_compositor_view_mac.h index 0d13a9a..46be85e 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.h +++ b/content/browser/renderer_host/browser_compositor_view_mac.h
@@ -20,12 +20,11 @@ namespace ui { class AcceleratedWidgetMacNSView; +class RecyclableCompositorMac; } namespace content { -class RecyclableCompositorMac; - class BrowserCompositorMacClient { public: virtual SkColor BrowserCompositorMacGetGutterColor() const = 0; @@ -209,7 +208,7 @@ BrowserCompositorMacClient* client_ = nullptr; ui::AcceleratedWidgetMacNSView* accelerated_widget_mac_ns_view_ = nullptr; - std::unique_ptr<RecyclableCompositorMac> recyclable_compositor_; + std::unique_ptr<ui::RecyclableCompositorMac> recyclable_compositor_; std::unique_ptr<DelegatedFrameHost> delegated_frame_host_; std::unique_ptr<ui::Layer> root_layer_;
diff --git a/content/browser/renderer_host/browser_compositor_view_mac.mm b/content/browser/renderer_host/browser_compositor_view_mac.mm index f9e9ad67..9bb2156 100644 --- a/content/browser/renderer_host/browser_compositor_view_mac.mm +++ b/content/browser/renderer_host/browser_compositor_view_mac.mm
@@ -20,6 +20,7 @@ #include "ui/accelerated_widget_mac/accelerated_widget_mac.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" #include "ui/base/layout.h" +#include "ui/compositor/recyclable_compositor_mac.h" #include "ui/display/screen.h" #include "ui/gfx/geometry/dip_util.h" @@ -37,163 +38,9 @@ base::LazyInstance<std::set<BrowserCompositorMac*>>::Leaky g_browser_compositors; -// A spare RecyclableCompositorMac kept around for recycling. -base::LazyInstance<base::circular_deque< - std::unique_ptr<RecyclableCompositorMac>>>::DestructorAtExit - g_spare_recyclable_compositors; - -void ReleaseSpareCompositors() { - // Allow at most one spare recyclable compositor. - while (g_spare_recyclable_compositors.Get().size() > 1) - g_spare_recyclable_compositors.Get().pop_front(); - - if (g_browser_compositors.Get().empty()) - g_spare_recyclable_compositors.Get().clear(); -} - } // namespace //////////////////////////////////////////////////////////////////////////////// -// RecyclableCompositorMac - -// A ui::Compositor and a gfx::AcceleratedWidget (and helper) that it draws -// into. This structure is used to efficiently recycle these structures across -// tabs (because creating a new ui::Compositor for each tab would be expensive -// in terms of time and resources). -class RecyclableCompositorMac : public ui::CompositorObserver { - public: - ~RecyclableCompositorMac() override; - - // Create a compositor, or recycle a preexisting one. - static std::unique_ptr<RecyclableCompositorMac> Create(); - - // Delete a compositor, or allow it to be recycled. - static void Recycle(std::unique_ptr<RecyclableCompositorMac> compositor); - - ui::Compositor* compositor() { return &compositor_; } - ui::AcceleratedWidgetMac* accelerated_widget_mac() { - return accelerated_widget_mac_.get(); - } - const gfx::Size pixel_size() const { return size_pixels_; } - float scale_factor() const { return scale_factor_; } - - // Suspend will prevent the compositor from producing new frames. This should - // be called to avoid creating spurious frames while changing state. - // Compositors are created as suspended. - void Suspend(); - void Unsuspend(); - - // Update the compositor's surface information, if needed. - void UpdateSurface(const gfx::Size& size_pixels, float scale_factor); - // Invalidate the compositor's surface information. - void InvalidateSurface(); - - // The viz::ParentLocalSurfaceIdAllocator for the ui::Compositor dispenses - // viz::LocalSurfaceIds that are renderered into by the ui::Compositor. - viz::ParentLocalSurfaceIdAllocator local_surface_id_allocator_; - gfx::Size size_pixels_; - float scale_factor_ = 1.f; - - private: - RecyclableCompositorMac(); - - // ui::CompositorObserver implementation: - void OnCompositingDidCommit(ui::Compositor* compositor) override; - void OnCompositingStarted(ui::Compositor* compositor, - base::TimeTicks start_time) override {} - void OnCompositingEnded(ui::Compositor* compositor) override {} - void OnCompositingLockStateChanged(ui::Compositor* compositor) override {} - void OnCompositingChildResizing(ui::Compositor* compositor) override {} - void OnCompositingShuttingDown(ui::Compositor* compositor) override {} - - std::unique_ptr<ui::AcceleratedWidgetMac> accelerated_widget_mac_; - ui::Compositor compositor_; - std::unique_ptr<ui::CompositorLock> compositor_suspended_lock_; - - DISALLOW_COPY_AND_ASSIGN(RecyclableCompositorMac); -}; - -RecyclableCompositorMac::RecyclableCompositorMac() - : accelerated_widget_mac_(new ui::AcceleratedWidgetMac()), - compositor_(content::GetContextFactoryPrivate()->AllocateFrameSinkId(), - content::GetContextFactory(), - content::GetContextFactoryPrivate(), - ui::WindowResizeHelperMac::Get()->task_runner(), - features::IsSurfaceSynchronizationEnabled(), - false /* enable_pixel_canvas */) { - compositor_.SetAcceleratedWidget( - accelerated_widget_mac_->accelerated_widget()); - Suspend(); - compositor_.AddObserver(this); -} - -RecyclableCompositorMac::~RecyclableCompositorMac() { - compositor_.RemoveObserver(this); -} - -void RecyclableCompositorMac::Suspend() { - // Requests a compositor lock without a timeout. - compositor_suspended_lock_ = - compositor_.GetCompositorLock(nullptr, base::TimeDelta()); -} - -void RecyclableCompositorMac::Unsuspend() { - compositor_suspended_lock_ = nullptr; -} - -void RecyclableCompositorMac::UpdateSurface(const gfx::Size& size_pixels, - float scale_factor) { - if (size_pixels != size_pixels_ || scale_factor != scale_factor_) { - size_pixels_ = size_pixels; - scale_factor_ = scale_factor; - compositor()->SetScaleAndSize(scale_factor_, size_pixels_, - local_surface_id_allocator_.GenerateId()); - } -} - -void RecyclableCompositorMac::InvalidateSurface() { - size_pixels_ = gfx::Size(); - scale_factor_ = 1.f; - local_surface_id_allocator_.Invalidate(); - compositor()->SetScaleAndSize( - scale_factor_, size_pixels_, - local_surface_id_allocator_.GetCurrentLocalSurfaceId()); -} - -void RecyclableCompositorMac::OnCompositingDidCommit( - ui::Compositor* compositor_that_did_commit) { - DCHECK_EQ(compositor_that_did_commit, compositor()); - accelerated_widget_mac_->SetSuspended(false); -} - -// static -std::unique_ptr<RecyclableCompositorMac> RecyclableCompositorMac::Create() { - DCHECK(ui::WindowResizeHelperMac::Get()->task_runner()); - if (!g_spare_recyclable_compositors.Get().empty()) { - std::unique_ptr<RecyclableCompositorMac> result; - result = std::move(g_spare_recyclable_compositors.Get().back()); - g_spare_recyclable_compositors.Get().pop_back(); - return result; - } - return std::unique_ptr<RecyclableCompositorMac>(new RecyclableCompositorMac); -} - -// static -void RecyclableCompositorMac::Recycle( - std::unique_ptr<RecyclableCompositorMac> compositor) { - compositor->accelerated_widget_mac_->SetSuspended(true); - - // Make this RecyclableCompositorMac recyclable for future instances. - g_spare_recyclable_compositors.Get().push_back(std::move(compositor)); - - // Post a task to free up the spare ui::Compositors when needed. Post this - // to the browser main thread so that we won't free any compositors while - // in a nested loop waiting to put up a new frame. - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, base::Bind(&ReleaseSpareCompositors)); -} - -//////////////////////////////////////////////////////////////////////////////// // BrowserCompositorMac BrowserCompositorMac::BrowserCompositorMac( @@ -232,11 +79,6 @@ size_t num_erased = g_browser_compositors.Get().erase(this); DCHECK_EQ(1u, num_erased); - - // If there are no compositors allocated, destroy the recyclable - // RecyclableCompositorMac. - if (g_browser_compositors.Get().empty()) - g_spare_recyclable_compositors.Get().clear(); } DelegatedFrameHost* BrowserCompositorMac::GetDelegatedFrameHost() { @@ -267,7 +109,7 @@ const gfx::CALayerParams* BrowserCompositorMac::GetLastCALayerParams() const { if (!recyclable_compositor_) return nullptr; - return recyclable_compositor_->accelerated_widget_mac()->GetCALayerParams(); + return recyclable_compositor_->widget()->GetCALayerParams(); } viz::FrameSinkId BrowserCompositorMac::GetRootFrameSinkId() { @@ -420,14 +262,16 @@ // Transition HasNoCompositor -> HasDetachedCompositor. if (state_ == HasNoCompositor && new_state < HasNoCompositor) { - recyclable_compositor_ = RecyclableCompositorMac::Create(); + recyclable_compositor_ = + ui::RecyclableCompositorMacFactory::Get()->CreateCompositor( + content::GetContextFactory(), content::GetContextFactoryPrivate()); recyclable_compositor_->UpdateSurface(dfh_size_pixels_, dfh_display_.device_scale_factor()); recyclable_compositor_->compositor()->SetRootLayer(root_layer_.get()); recyclable_compositor_->compositor()->SetBackgroundColor(background_color_); recyclable_compositor_->compositor()->SetDisplayColorSpace( dfh_display_.color_space()); - recyclable_compositor_->accelerated_widget_mac()->SetNSView( + recyclable_compositor_->widget()->SetNSView( accelerated_widget_mac_ns_view_); state_ = HasDetachedCompositor; } @@ -461,10 +305,11 @@ // Transition HasDetachedCompositor -> HasNoCompositor. if (state_ == HasDetachedCompositor && new_state > HasDetachedCompositor) { - recyclable_compositor_->accelerated_widget_mac()->ResetNSView(); + recyclable_compositor_->widget()->ResetNSView(); recyclable_compositor_->compositor()->SetRootLayer(nullptr); recyclable_compositor_->InvalidateSurface(); - RecyclableCompositorMac::Recycle(std::move(recyclable_compositor_)); + ui::RecyclableCompositorMacFactory::Get()->RecycleCompositor( + std::move(recyclable_compositor_)); state_ = HasNoCompositor; } @@ -492,7 +337,8 @@ *g_browser_compositors.Get().begin(); browser_compositor->client_->DestroyCompositorForShutdown(); } - g_spare_recyclable_compositors.Get().clear(); + + ui::RecyclableCompositorMacFactory::Get()->DisableRecyclingForShutdown(); } void BrowserCompositorMac::SetNeedsBeginFrames(bool needs_begin_frames) { @@ -577,8 +423,7 @@ if (!recyclable_compositor_) return false; - return !recyclable_compositor_->accelerated_widget_mac()->HasFrameOfSize( - dfh_size_dip_); + return !recyclable_compositor_->widget()->HasFrameOfSize(dfh_size_dip_); } void BrowserCompositorMac::SetParentUiLayer(ui::Layer* new_parent_ui_layer) {
diff --git a/content/browser/renderer_host/input/touch_action_filter.cc b/content/browser/renderer_host/input/touch_action_filter.cc index 16e30e8..c8c5e3b 100644 --- a/content/browser/renderer_host/input/touch_action_filter.cc +++ b/content/browser/renderer_host/input/touch_action_filter.cc
@@ -52,9 +52,7 @@ DCHECK(!suppress_manipulation_events_); DCHECK(!touchscreen_scroll_in_progress_); touchscreen_scroll_in_progress_ = true; - // TODO(https://crbug.com/851644): Make sure the value is properly set. - if (!scrolling_touch_action_.has_value()) - SetTouchAction(cc::kTouchActionAuto); + DCHECK(scrolling_touch_action_.has_value()); suppress_manipulation_events_ = ShouldSuppressManipulation(*gesture_event); return suppress_manipulation_events_ @@ -118,9 +116,6 @@ // If double tap is disabled, there's no reason for the tap delay. case WebInputEvent::kGestureTapUnconfirmed: { DCHECK_EQ(1, gesture_event->data.tap.tap_count); - // TODO(https://crbug.com/851644): Make sure the value is properly set. - if (!scrolling_touch_action_.has_value()) - SetTouchAction(cc::kTouchActionAuto); allow_current_double_tap_event_ = (scrolling_touch_action_.value() & cc::kTouchActionDoubleTapZoom) != 0; if (!allow_current_double_tap_event_) { @@ -144,11 +139,6 @@ if (gesture_event->is_source_touch_event_set_non_blocking) SetTouchAction(cc::kTouchActionAuto); scrolling_touch_action_ = allowed_touch_action_; - // TODO(https://crbug.com/851644): The value may not set in the case when - // the gesture event is flushed due to touch ack time out after the finger - // is lifted up. Make sure the value is properly set. - if (!scrolling_touch_action_.has_value()) - SetTouchAction(cc::kTouchActionAuto); DCHECK(!drop_current_tap_ending_event_); break;
diff --git a/content/browser/renderer_host/input/touch_action_filter_unittest.cc b/content/browser/renderer_host/input/touch_action_filter_unittest.cc index 9a5d4a8..69dc42a 100644 --- a/content/browser/renderer_host/input/touch_action_filter_unittest.cc +++ b/content/browser/renderer_host/input/touch_action_filter_unittest.cc
@@ -888,8 +888,8 @@ EXPECT_EQ(filter_.FilterGestureEvent(&tap_down), FilterGestureEventResult::kFilterGestureEventAllowed); - EXPECT_TRUE(filter_.allowed_touch_action().has_value()); - EXPECT_TRUE(ScrollingTouchAction().has_value()); + EXPECT_FALSE(filter_.allowed_touch_action().has_value()); + EXPECT_FALSE(ScrollingTouchAction().has_value()); } TEST_F(TouchActionFilterTest, TouchpadScroll) {
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc index 4d0e7c6..23f6b88 100644 --- a/content/browser/renderer_host/render_process_host_impl.cc +++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1397,6 +1397,7 @@ visible_clients_(0), priority_({ blink::kLaunchingProcessIsBackgrounded, frame_depth_, + false /* intersects_viewport */, blink::kLaunchingProcessIsBoostedForPendingView, #if defined(OS_ANDROID) ChildProcessImportance::NORMAL, @@ -2435,6 +2436,10 @@ return frame_depth_; } +bool RenderProcessHostImpl::GetIntersectsViewport() const { + return intersects_viewport_; +} + #if defined(OS_ANDROID) ChildProcessImportance RenderProcessHostImpl::GetEffectiveImportance() { return effective_importance_; @@ -4048,6 +4053,7 @@ void RenderProcessHostImpl::UpdateProcessPriorityInputs() { int32_t new_visible_widgets_count = 0; unsigned int new_frame_depth = kMaxFrameDepthForPriority; + bool new_intersects_viewport = false; #if defined(OS_ANDROID) ChildProcessImportance new_effective_importance = ChildProcessImportance::NORMAL; @@ -4060,12 +4066,17 @@ if (priority.is_hidden) { if (!new_visible_widgets_count) { new_frame_depth = std::min(new_frame_depth, priority.frame_depth); + new_intersects_viewport = + new_intersects_viewport || priority.intersects_viewport; } } else { if (new_visible_widgets_count) { new_frame_depth = std::min(new_frame_depth, priority.frame_depth); + new_intersects_viewport = + new_intersects_viewport || priority.intersects_viewport; } else { new_frame_depth = priority.frame_depth; + new_intersects_viewport = priority.intersects_viewport; } new_visible_widgets_count++; } @@ -4082,10 +4093,12 @@ // backgrounding a new process. See the comment in OnProcessLaunched and // https://crbug.com/560446. Only android uses frame_depth for now, so // not a huge change. - inputs_changed = inputs_changed || frame_depth_ != new_frame_depth; + inputs_changed = inputs_changed || frame_depth_ != new_frame_depth || + intersects_viewport_ != new_intersects_viewport; #endif visible_clients_ = new_visible_widgets_count; frame_depth_ = new_frame_depth; + intersects_viewport_ = new_intersects_viewport; #if defined(OS_ANDROID) inputs_changed = inputs_changed || new_effective_importance != effective_importance_; @@ -4112,6 +4125,7 @@ !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableRendererBackgrounding), frame_depth_, + intersects_viewport_, // boost_for_pending_views !!pending_views_, #if defined(OS_ANDROID)
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h index 582d8037..05b64a5 100644 --- a/content/browser/renderer_host/render_process_host_impl.h +++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -152,6 +152,7 @@ void UpdateClientPriority(PriorityClient* client) override; int VisibleClientCount() const override; unsigned int GetFrameDepth() const override; + bool GetIntersectsViewport() const override; bool IsForGuestsOnly() const override; StoragePartition* GetStoragePartition() const override; bool Shutdown(int exit_code) override; @@ -662,6 +663,10 @@ // widgets the lowest depth of all hidden clients. Initialized to max depth // when there are no clients. unsigned int frame_depth_ = kMaxFrameDepthForPriority; + // |intersects_viewport_| similar to |frame_depth_| can be used to rank + // processes of same visibility. It indicates process has frames that + // intersect with the viewport. + bool intersects_viewport_ = false; #if defined(OS_ANDROID) // Highest importance of all clients that contribute priority. ChildProcessImportance effective_importance_ = ChildProcessImportance::NORMAL;
diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc index 9733664..be66cc2 100644 --- a/content/browser/renderer_host/render_widget_host_impl.cc +++ b/content/browser/renderer_host/render_widget_host_impl.cc
@@ -571,6 +571,14 @@ UpdatePriority(); } +void RenderWidgetHostImpl::SetIntersectsViewport(bool intersects) { + if (intersects_viewport_ == intersects) + return; + + intersects_viewport_ = intersects; + UpdatePriority(); +} + void RenderWidgetHostImpl::UpdatePriority() { if (!destroyed_) process_->UpdateClientPriority(this); @@ -1723,6 +1731,7 @@ RenderProcessHost::Priority priority = { is_hidden_, frame_depth_, + intersects_viewport_, #if defined(OS_ANDROID) importance_, #endif
diff --git a/content/browser/renderer_host/render_widget_host_impl.h b/content/browser/renderer_host/render_widget_host_impl.h index 6bd43df2..8ac129f 100644 --- a/content/browser/renderer_host/render_widget_host_impl.h +++ b/content/browser/renderer_host/render_widget_host_impl.h
@@ -288,6 +288,7 @@ } void SetFrameDepth(unsigned int depth); + void SetIntersectsViewport(bool intersects); void UpdatePriority(); // Tells the renderer to die and optionally delete |this|. @@ -951,6 +952,11 @@ // is depth 1, ie just below the root widget. unsigned int frame_depth_ = 1u; + // Indicates that widget has a frame that intersects with the viewport. Note + // this is independent of |is_hidden_|. For widgets not associated with + // RenderFrame/View, assume false. + bool intersects_viewport_ = false; + #if defined(OS_ANDROID) // Tracks the current importance of widget. ChildProcessImportance importance_ = ChildProcessImportance::NORMAL;
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.cc b/content/browser/renderer_host/render_widget_host_input_event_router.cc index 8317c806..5a3c7ffa 100644 --- a/content/browser/renderer_host/render_widget_host_input_event_router.cc +++ b/content/browser/renderer_host/render_widget_host_input_event_router.cc
@@ -151,6 +151,9 @@ last_mouse_move_root_view_ = nullptr; } + if (view == last_fling_start_target_) + last_fling_start_target_ = nullptr; + event_targeter_->ViewWillBeDestroyed(view); } @@ -1087,6 +1090,12 @@ return; } + if (gesture_event.GetType() == blink::WebInputEvent::kGestureFlingCancel && + last_fling_start_target_) { + last_fling_start_target_->ProcessGestureEvent(gesture_event, latency); + return; + } + auto gesture_target_it = touchscreen_gesture_target_map_.find(gesture_event.unique_touch_event_id); bool no_matching_id = @@ -1188,7 +1197,15 @@ map_size_key, base::StringPrintf("%u", static_cast<int>(owner_map_.size()))); + if (events_being_flushed_) { + touchscreen_gesture_target_.target->host() + ->input_router() + ->ForceSetTouchActionAuto(); + } touchscreen_gesture_target_.target->ProcessGestureEvent(event, latency); + + if (gesture_event.GetType() == blink::WebInputEvent::kGestureFlingStart) + last_fling_start_target_ = touchscreen_gesture_target_.target; } void RenderWidgetHostInputEventRouter::RouteTouchscreenGestureEvent( @@ -1204,13 +1221,13 @@ RenderWidgetHostViewBase* root_view, const blink::WebGestureEvent& event) const { if (event.GetType() != blink::WebInputEvent::kGesturePinchBegin && - event.GetType() != blink::WebInputEvent::kGestureFlingStart) { + event.GetType() != blink::WebInputEvent::kGestureFlingCancel) { return {nullptr, false, base::nullopt, true}; } gfx::PointF transformed_point; return FindViewAtLocation(root_view, event.PositionInWidget(), - event.PositionInScreen(), viz::EventSource::TOUCH, + event.PositionInScreen(), viz::EventSource::MOUSE, &transformed_point); } @@ -1228,6 +1245,37 @@ const blink::WebGestureEvent& touchpad_gesture_event, const ui::LatencyInfo& latency, const base::Optional<gfx::PointF>& target_location) { + // Touchpad gesture flings should be treated as mouse wheels for the purpose + // of routing. + if (touchpad_gesture_event.GetType() == + blink::WebInputEvent::kGestureFlingStart) { + if (wheel_target_.target) { + blink::WebGestureEvent gesture_fling = touchpad_gesture_event; + gesture_fling.SetPositionInWidget(gesture_fling.PositionInWidget() + + wheel_target_.delta); + wheel_target_.target->ProcessGestureEvent(gesture_fling, latency); + last_fling_start_target_ = wheel_target_.target; + } else { + root_view->GestureEventAck(touchpad_gesture_event, + INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); + } + return; + } + + if (touchpad_gesture_event.GetType() == + blink::WebInputEvent::kGestureFlingCancel) { + if (last_fling_start_target_) { + last_fling_start_target_->ProcessGestureEvent(touchpad_gesture_event, + latency); + } else if (target) { + target->ProcessGestureEvent(touchpad_gesture_event, latency); + } else { + root_view->GestureEventAck(touchpad_gesture_event, + INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS); + } + return; + } + if (target) { touchpad_gesture_target_.target = target; // TODO(mohsen): Instead of just computing a delta, we should extract the @@ -1261,6 +1309,11 @@ gesture_event.SetPositionInWidget(gesture_event.PositionInWidget() + touchpad_gesture_target_.delta); touchpad_gesture_target_.target->ProcessGestureEvent(gesture_event, latency); + + if (touchpad_gesture_event.GetType() == + blink::WebInputEvent::kGesturePinchEnd) { + touchpad_gesture_target_.target = nullptr; + } } RenderWidgetHostViewBase* @@ -1320,6 +1373,11 @@ return RenderWidgetTargetResult(); } +void RenderWidgetHostInputEventRouter::SetEventsBeingFlushed( + bool events_being_flushed) { + events_being_flushed_ = events_being_flushed; +} + void RenderWidgetHostInputEventRouter::DispatchEventToTarget( RenderWidgetHostViewBase* root_view, RenderWidgetHostViewBase* target,
diff --git a/content/browser/renderer_host/render_widget_host_input_event_router.h b/content/browser/renderer_host/render_widget_host_input_event_router.h index 6bdfce2f..1ee53ae 100644 --- a/content/browser/renderer_host/render_widget_host_input_event_router.h +++ b/content/browser/renderer_host/render_widget_host_input_event_router.h
@@ -15,6 +15,7 @@ #include "base/gtest_prod_util.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" +#include "build/build_config.h" #include "components/viz/common/surfaces/surface_id.h" #include "components/viz/host/hit_test/hit_test_query.h" #include "components/viz/service/surfaces/surface_hittest_delegate.h" @@ -26,6 +27,13 @@ struct FrameHostMsg_HittestData_Params; +#if defined(OS_WIN) +// Flaky on Windows. https://crbug.com/868308 +#define MAYBE_TouchpadPinchOverOOPIF DISABLED_TouchpadPinchOverOOPIF +#else +#define MAYBE_TouchpadPinchOverOOPIF TouchpadPinchOverOOPIF +#endif // OS_WIN + namespace blink { class WebGestureEvent; class WebInputEvent; @@ -272,6 +280,9 @@ const blink::WebInputEvent& event, const ui::LatencyInfo& latency, const base::Optional<gfx::PointF>& target_location) override; + // Notify whether the events in the queue are being flushed due to touch ack + // timeout, or the flushing has completed. + void SetEventsBeingFlushed(bool events_being_flushed) override; FrameSinkIdOwnerMap owner_map_; TargetMap touchscreen_gesture_target_map_; @@ -292,6 +303,9 @@ RenderWidgetHostViewBase* last_mouse_move_target_; RenderWidgetHostViewBase* last_mouse_move_root_view_; + // Tracked for the purpose of targeting subsequent fling cancel events. + RenderWidgetHostViewBase* last_fling_start_target_ = nullptr; + // Tracked for the purpose of providing a root_view when dispatching emulated // touch/gesture events. RenderWidgetHostViewBase* last_emulated_event_root_view_; @@ -308,6 +322,7 @@ std::unique_ptr<RenderWidgetTargeter> event_targeter_; bool use_viz_hit_test_ = false; + bool events_being_flushed_ = false; std::unique_ptr<TouchEmulator> touch_emulator_; @@ -324,7 +339,7 @@ FRIEND_TEST_ALL_PREFIXES(SitePerProcessHitTestBrowserTest, InputEventRouterTouchpadGestureTargetTest); FRIEND_TEST_ALL_PREFIXES(SitePerProcessHitTestBrowserTest, - TouchpadPinchOverOOPIF); + MAYBE_TouchpadPinchOverOOPIF); FRIEND_TEST_ALL_PREFIXES(SitePerProcessMouseWheelHitTestBrowserTest, InputEventRouterWheelTargetTest); FRIEND_TEST_ALL_PREFIXES(SitePerProcessMacBrowserTest,
diff --git a/content/browser/renderer_host/render_widget_host_view_child_frame.cc b/content/browser/renderer_host/render_widget_host_view_child_frame.cc index 08e6829..46bfcdb2 100644 --- a/content/browser/renderer_host/render_widget_host_view_child_frame.cc +++ b/content/browser/renderer_host/render_widget_host_view_child_frame.cc
@@ -474,6 +474,7 @@ const gfx::Rect& viewport_intersection, const gfx::Rect& compositor_visible_rect) { if (host()) { + host()->SetIntersectsViewport(!viewport_intersection.IsEmpty()); host()->Send(new ViewMsg_SetViewportIntersection(host()->GetRoutingID(), viewport_intersection, compositor_visible_rect));
diff --git a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm index 03f78ac7..1eef2120 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac_unittest.mm
@@ -22,6 +22,7 @@ #include "base/test/simple_test_tick_clock.h" #include "base/threading/thread_task_runner_handle.h" #include "components/viz/common/surfaces/child_local_surface_id_allocator.h" +#include "content/browser/compositor/image_transport_factory.h" #include "content/browser/frame_host/render_widget_host_view_guest.h" #include "content/browser/gpu/compositor_util.h" #include "content/browser/renderer_host/render_widget_host_delegate.h" @@ -51,6 +52,7 @@ #include "ui/base/cocoa/secure_password_input.h" #import "ui/base/test/cocoa_helper.h" #import "ui/base/test/scoped_fake_nswindow_focus.h" +#include "ui/compositor/recyclable_compositor_mac.h" #include "ui/events/base_event_utils.h" #include "ui/events/blink/blink_features.h" #include "ui/events/blink/web_input_event_traits.h" @@ -1929,4 +1931,30 @@ EXPECT_EQ(local_surface_id4, merged_local_surface_id); } +TEST_F(RenderWidgetHostViewMacTest, TransformToRootNoParentLayer) { + gfx::PointF point(10, 20); + rwhv_mac_->TransformPointToRootSurface(&point); + EXPECT_EQ(point, gfx::PointF(10, 20)); +} + +TEST_F(RenderWidgetHostViewMacTest, TransformToRootWithParentLayer) { + std::unique_ptr<ui::RecyclableCompositorMac> compositor = + ui::RecyclableCompositorMacFactory::Get()->CreateCompositor( + ImageTransportFactory::GetInstance()->GetContextFactory(), + ImageTransportFactory::GetInstance()->GetContextFactoryPrivate()); + std::unique_ptr<ui::Layer> root_surface_layer = + std::make_unique<ui::Layer>(ui::LAYER_SOLID_COLOR); + std::unique_ptr<ui::Layer> parent_layer = + std::make_unique<ui::Layer>(ui::LAYER_SOLID_COLOR); + + compositor->compositor()->SetRootLayer(root_surface_layer.get()); + root_surface_layer->SetBounds(gfx::Rect(-5, -10, 1000, 2000)); + parent_layer->SetBounds(gfx::Rect(100, 300, 500, 400)); + root_surface_layer->Add(parent_layer.get()); + gfx::PointF point(10, 20); + rwhv_mac_->SetParentUiLayer(parent_layer.get()); + rwhv_mac_->TransformPointToRootSurface(&point); + EXPECT_EQ(point, gfx::PointF(105, 310)); +} + } // namespace content
diff --git a/content/browser/renderer_host/render_widget_targeter.cc b/content/browser/renderer_host/render_widget_targeter.cc index 4a5acc5..1239e5d 100644 --- a/content/browser/renderer_host/render_widget_targeter.cc +++ b/content/browser/renderer_host/render_widget_targeter.cc
@@ -215,6 +215,7 @@ } void RenderWidgetTargeter::FlushEventQueue() { + bool events_being_flushed = false; while (!request_in_flight_ && !requests_.empty()) { auto request = std::move(requests_.front()); requests_.pop(); @@ -224,9 +225,16 @@ continue; } request.tracker->Stop(); + // Only notify the delegate once that the current event queue is being + // flushed. Once all the events are flushed, notify the delegate again. + if (!events_being_flushed) { + delegate_->SetEventsBeingFlushed(true); + events_being_flushed = true; + } FindTargetAndDispatch(request.root_view.get(), *request.event, request.latency); } + delegate_->SetEventsBeingFlushed(false); } void RenderWidgetTargeter::FoundFrameSinkId(
diff --git a/content/browser/renderer_host/render_widget_targeter.h b/content/browser/renderer_host/render_widget_targeter.h index e9b3e2a..6399b2ad 100644 --- a/content/browser/renderer_host/render_widget_targeter.h +++ b/content/browser/renderer_host/render_widget_targeter.h
@@ -70,6 +70,8 @@ const ui::LatencyInfo& latency, const base::Optional<gfx::PointF>& target_location) = 0; + virtual void SetEventsBeingFlushed(bool events_being_flushed) = 0; + virtual RenderWidgetHostViewBase* FindViewFromFrameSinkId( const viz::FrameSinkId& frame_sink_id) const = 0; };
diff --git a/content/browser/scheduler/responsiveness/message_loop_observer.cc b/content/browser/scheduler/responsiveness/message_loop_observer.cc new file mode 100644 index 0000000..50b4c1b0 --- /dev/null +++ b/content/browser/scheduler/responsiveness/message_loop_observer.cc
@@ -0,0 +1,32 @@ +// Copyright 2018 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/scheduler/responsiveness/message_loop_observer.h" + +namespace responsiveness { + +MessageLoopObserver::MessageLoopObserver(TaskCallback will_run_task_callback, + TaskCallback did_run_task_callback) + : will_run_task_callback_(will_run_task_callback), + did_run_task_callback_(did_run_task_callback) { + base::MessageLoopCurrent::Get()->SetAddQueueTimeToTasks(true); + base::MessageLoopCurrent::Get()->AddTaskObserver(this); +} + +MessageLoopObserver::~MessageLoopObserver() { + base::MessageLoopCurrent::Get()->RemoveTaskObserver(this); + base::MessageLoopCurrent::Get()->SetAddQueueTimeToTasks(false); +} + +void MessageLoopObserver::WillProcessTask( + const base::PendingTask& pending_task) { + will_run_task_callback_.Run(&pending_task); +} + +void MessageLoopObserver::DidProcessTask( + const base::PendingTask& pending_task) { + did_run_task_callback_.Run(&pending_task); +} + +} // namespace responsiveness
diff --git a/content/browser/scheduler/responsiveness/message_loop_observer.h b/content/browser/scheduler/responsiveness/message_loop_observer.h new file mode 100644 index 0000000..1b823f7 --- /dev/null +++ b/content/browser/scheduler/responsiveness/message_loop_observer.h
@@ -0,0 +1,45 @@ +// Copyright 2018 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. + +#ifndef CONTENT_BROWSER_SCHEDULER_RESPONSIVENESS_MESSAGE_LOOP_OBSERVER_H_ +#define CONTENT_BROWSER_SCHEDULER_RESPONSIVENESS_MESSAGE_LOOP_OBSERVER_H_ + +#include "base/macros.h" +#include "base/message_loop/message_loop_current.h" +#include "content/common/content_export.h" + +namespace base { +struct PendingTask; +} // namespace base + +namespace responsiveness { + +// This object is not thread safe. It must be constructed and destroyed on the +// same thread. The callbacks will occur synchronously from WillProcessTask() +// and DidProcessTask(). +class CONTENT_EXPORT MessageLoopObserver + : base::MessageLoopCurrent::TaskObserver { + public: + using TaskCallback = + base::RepeatingCallback<void(const base::PendingTask* task)>; + + // The constructor will register the object as an observer of the current + // MessageLoop. The destructor will unregister the object. + MessageLoopObserver(TaskCallback will_run_task_callback, + TaskCallback did_run_task_callback); + ~MessageLoopObserver() override; + + private: + void WillProcessTask(const base::PendingTask& pending_task) override; + void DidProcessTask(const base::PendingTask& pending_task) override; + + TaskCallback will_run_task_callback_; + TaskCallback did_run_task_callback_; + + DISALLOW_COPY_AND_ASSIGN(MessageLoopObserver); +}; + +} // namespace responsiveness + +#endif // CONTENT_BROWSER_SCHEDULER_RESPONSIVENESS_MESSAGE_LOOP_OBSERVER_H_
diff --git a/content/browser/scheduler/responsiveness/watcher.cc b/content/browser/scheduler/responsiveness/watcher.cc index 545acac..e8c81ac8 100644 --- a/content/browser/scheduler/responsiveness/watcher.cc +++ b/content/browser/scheduler/responsiveness/watcher.cc
@@ -6,11 +6,12 @@ #include "base/pending_task.h" #include "content/browser/scheduler/responsiveness/calculator.h" +#include "content/browser/scheduler/responsiveness/message_loop_observer.h" #include "content/public/browser/browser_thread.h" namespace responsiveness { -Watcher::Metadata::Metadata(void* identifier) : identifier(identifier) {} +Watcher::Metadata::Metadata(const void* identifier) : identifier(identifier) {} Watcher::Watcher() { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); @@ -27,9 +28,12 @@ calculator_ = MakeCalculator(); + RegisterMessageLoopObserverUI(); + content::BrowserThread::PostTask( content::BrowserThread::IO, FROM_HERE, - base::BindOnce(&Watcher::SetUpOnIOThread, this, calculator_.get())); + base::BindOnce(&Watcher::SetUpOnIOThread, base::Unretained(this), + calculator_.get())); } void Watcher::Destroy() { @@ -38,9 +42,11 @@ DCHECK(!destroy_was_called_); destroy_was_called_ = true; + message_loop_observer_ui_.reset(); + content::BrowserThread::PostTask( content::BrowserThread::IO, FROM_HERE, - base::BindOnce(&Watcher::TearDownOnIOThread, this)); + base::BindOnce(&Watcher::TearDownOnIOThread, base::Unretained(this))); } std::unique_ptr<Calculator> Watcher::MakeCalculator() { @@ -52,23 +58,42 @@ DCHECK(destroy_was_called_); } +void Watcher::RegisterMessageLoopObserverUI() { + // We must use base::Unretained(this) to prevent ownership cycle. + MessageLoopObserver::TaskCallback will_run_callback = base::BindRepeating( + &Watcher::WillRunTaskOnUIThread, base::Unretained(this)); + MessageLoopObserver::TaskCallback did_run_callback = base::BindRepeating( + &Watcher::DidRunTaskOnUIThread, base::Unretained(this)); + message_loop_observer_ui_.reset(new MessageLoopObserver( + std::move(will_run_callback), std::move(did_run_callback))); +} + +void Watcher::RegisterMessageLoopObserverIO() { + // We must use base::Unretained(this) to prevent ownership cycle. + MessageLoopObserver::TaskCallback will_run_callback = base::BindRepeating( + &Watcher::WillRunTaskOnIOThread, base::Unretained(this)); + MessageLoopObserver::TaskCallback did_run_callback = base::BindRepeating( + &Watcher::DidRunTaskOnIOThread, base::Unretained(this)); + message_loop_observer_io_.reset(new MessageLoopObserver( + std::move(will_run_callback), std::move(did_run_callback))); +} + void Watcher::SetUpOnIOThread(Calculator* calculator) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); - // TODO(erikchen): Add MessageLoopObserver to IO thread. - + RegisterMessageLoopObserverIO(); calculator_io_ = calculator; } void Watcher::TearDownOnIOThread() { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); - // TODO(erikchen): Remove MessageLoopObserver from IO thread. + message_loop_observer_io_.reset(); calculator_io_ = nullptr; content::BrowserThread::PostTask( content::BrowserThread::UI, FROM_HERE, - base::BindOnce(&Watcher::TearDownOnUIThread, this)); + base::BindOnce(&Watcher::TearDownOnUIThread, base::Unretained(this))); } void Watcher::TearDownOnUIThread() { @@ -78,13 +103,13 @@ Release(); } -void Watcher::WillRunTaskOnUIThread(base::PendingTask* task) { +void Watcher::WillRunTaskOnUIThread(const base::PendingTask* task) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); WillRunTask(task, ¤tly_running_metadata_ui_); } -void Watcher::DidRunTaskOnUIThread(base::PendingTask* task) { +void Watcher::DidRunTaskOnUIThread(const base::PendingTask* task) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); // It's safe to use base::Unretained since the callback will be synchronously @@ -97,13 +122,13 @@ &mismatched_task_identifiers_ui_, std::move(callback)); } -void Watcher::WillRunTaskOnIOThread(base::PendingTask* task) { +void Watcher::WillRunTaskOnIOThread(const base::PendingTask* task) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); WillRunTask(task, ¤tly_running_metadata_io_); } -void Watcher::DidRunTaskOnIOThread(base::PendingTask* task) { +void Watcher::DidRunTaskOnIOThread(const base::PendingTask* task) { DCHECK_CURRENTLY_ON(content::BrowserThread::IO); // It's safe to use base::Unretained since the callback will be synchronously @@ -115,7 +140,7 @@ &mismatched_task_identifiers_io_, std::move(callback)); } -void Watcher::WillRunTask(base::PendingTask* task, +void Watcher::WillRunTask(const base::PendingTask* task, std::stack<Metadata>* currently_running_metadata) { // Reentrancy should be rare. if (UNLIKELY(!currently_running_metadata->empty())) { @@ -131,7 +156,7 @@ } } -void Watcher::DidRunTask(base::PendingTask* task, +void Watcher::DidRunTask(const base::PendingTask* task, std::stack<Metadata>* currently_running_metadata, int* mismatched_task_identifiers, TaskOrEventFinishedCallback callback) { @@ -139,7 +164,8 @@ // the identifier should differ is when Watcher is first constructed. The // TaskRunner Observers are added while a task is being run, which means that // there was no corresponding WillRunTask. - if (UNLIKELY(task != currently_running_metadata->top().identifier)) { + if (UNLIKELY(currently_running_metadata->empty() || + (task != currently_running_metadata->top().identifier))) { *mismatched_task_identifiers += 1; DCHECK_LE(*mismatched_task_identifiers, 1); return; @@ -158,9 +184,14 @@ // For delayed tasks, measure the duration of the task itself, rather than the // duration from schedule time to finish time. base::TimeTicks schedule_time; - if (task->delayed_run_time.is_null()) { - // TODO(erikchen): Implement DelayedTask::queue_time. - // schedule_time = task->queue_time; + if (delayed_task_start.is_null()) { + // Tasks which were posted before the MessageLoopObserver was created will + // not have a queue_time, and should be ignored. This doesn't affect delayed + // tasks. + if (UNLIKELY(!task->queue_time)) + return; + + schedule_time = task->queue_time.value(); } else { schedule_time = delayed_task_start; }
diff --git a/content/browser/scheduler/responsiveness/watcher.h b/content/browser/scheduler/responsiveness/watcher.h index 46a6a96..bbeeb20 100644 --- a/content/browser/scheduler/responsiveness/watcher.h +++ b/content/browser/scheduler/responsiveness/watcher.h
@@ -21,6 +21,7 @@ namespace responsiveness { class Calculator; +class MessageLoopObserver; // This class watches events and tasks processed on the UI and IO threads of the // browser process. It forwards stats on execution latency to Calculator, which @@ -51,6 +52,8 @@ // Exposed for tests. virtual std::unique_ptr<Calculator> MakeCalculator(); virtual ~Watcher(); + virtual void RegisterMessageLoopObserverUI(); + virtual void RegisterMessageLoopObserverIO(); private: friend class base::RefCounted<Watcher>; @@ -60,10 +63,10 @@ // Metadata for currently running tasks and events is needed to track whether // or not they caused reentrancy. struct Metadata { - explicit Metadata(void* identifier); + explicit Metadata(const void* identifier); // An opaque identifier for the task or event. - void* identifier = nullptr; + const void* identifier = nullptr; // Whether the task or event has caused reentrancy. bool caused_reentrancy = false; @@ -80,32 +83,31 @@ void TearDownOnIOThread(); void TearDownOnUIThread(); - // TODO(erikchen): Implement MessageLoopObserver. // These methods are called by the MessageLoopObserver of the UI thread to // allow Watcher to collect metadata about the tasks being run. - void WillRunTaskOnUIThread(base::PendingTask* task); - void DidRunTaskOnUIThread(base::PendingTask* task); + void WillRunTaskOnUIThread(const base::PendingTask* task); + void DidRunTaskOnUIThread(const base::PendingTask* task); - // TODO(erikchen): Implement MessageLoopObserver. // These methods are called by the MessageLoopObserver of the IO thread to // allow Watcher to collect metadata about the tasks being run. - void WillRunTaskOnIOThread(base::PendingTask* task); - void DidRunTaskOnIOThread(base::PendingTask* task); + void WillRunTaskOnIOThread(const base::PendingTask* task); + void DidRunTaskOnIOThread(const base::PendingTask* task); // Common implementations for the thread-specific methods. - void WillRunTask(base::PendingTask* task, + void WillRunTask(const base::PendingTask* task, std::stack<Metadata>* currently_running_metadata); // |callback| will either be synchronously invoked, or else never invoked. using TaskOrEventFinishedCallback = base::OnceCallback<void(base::TimeTicks, base::TimeTicks)>; - void DidRunTask(base::PendingTask* task, + void DidRunTask(const base::PendingTask* task, std::stack<Metadata>* currently_running_metadata, int* mismatched_task_identifiers, TaskOrEventFinishedCallback callback); // The following members are all affine to the UI thread. std::unique_ptr<Calculator> calculator_; + std::unique_ptr<MessageLoopObserver> message_loop_observer_ui_; // Metadata for currently running tasks and events on the UI thread. std::stack<Metadata> currently_running_metadata_ui_; @@ -118,6 +120,7 @@ // The following members are all affine to the IO thread. std::stack<Metadata> currently_running_metadata_io_; int mismatched_task_identifiers_io_ = 0; + std::unique_ptr<MessageLoopObserver> message_loop_observer_io_; // The implementation of this class guarantees that |calculator_io_| will be // non-nullptr and point to a valid object any time it is used on the IO
diff --git a/content/browser/scheduler/responsiveness/watcher_unittest.cc b/content/browser/scheduler/responsiveness/watcher_unittest.cc index 882cf7e..128e823 100644 --- a/content/browser/scheduler/responsiveness/watcher_unittest.cc +++ b/content/browser/scheduler/responsiveness/watcher_unittest.cc
@@ -6,7 +6,10 @@ #include "base/location.h" #include "base/pending_task.h" +#include "base/run_loop.h" +#include "base/synchronization/lock.h" #include "content/browser/scheduler/responsiveness/calculator.h" +#include "content/public/browser/browser_thread.h" #include "content/public/test/test_browser_thread_bundle.h" #include "testing/gtest/include/gtest/gtest.h" @@ -18,20 +21,30 @@ public: void TaskOrEventFinishedOnUIThread(base::TimeTicks schedule_time, base::TimeTicks finish_time) override { - ++tasks_on_ui_thread_; + queue_times_ui_.push_back(schedule_time); } void TaskOrEventFinishedOnIOThread(base::TimeTicks schedule_time, base::TimeTicks finish_time) override { - ++tasks_on_io_thread_; + base::AutoLock l(io_thread_lock_); + queue_times_io_.push_back(schedule_time); } - int NumTasksOnUIThread() { return tasks_on_ui_thread_; } - int NumTasksOnIOThread() { return tasks_on_io_thread_; } + int NumTasksOnUIThread() { return static_cast<int>(queue_times_ui_.size()); } + std::vector<base::TimeTicks>& QueueTimesUIThread() { return queue_times_ui_; } + int NumTasksOnIOThread() { + base::AutoLock l(io_thread_lock_); + return static_cast<int>(queue_times_io_.size()); + } + std::vector<base::TimeTicks>& QueueTimesIOThread() { + base::AutoLock l(io_thread_lock_); + return queue_times_io_; + } private: - int tasks_on_ui_thread_ = 0; - int tasks_on_io_thread_ = 0; + std::vector<base::TimeTicks> queue_times_ui_; + base::Lock io_thread_lock_; + std::vector<base::TimeTicks> queue_times_io_; }; class FakeWatcher : public Watcher { @@ -43,14 +56,32 @@ return calculator; } - FakeWatcher() : Watcher() {} + void RegisterMessageLoopObserverUI() override { + if (register_message_loop_observer_) + Watcher::RegisterMessageLoopObserverUI(); + } + void RegisterMessageLoopObserverIO() override { + if (register_message_loop_observer_) + Watcher::RegisterMessageLoopObserverIO(); + } + + FakeWatcher(bool register_message_loop_observer) + : Watcher(), + register_message_loop_observer_(register_message_loop_observer) {} int NumTasksOnUIThread() { return calculator_->NumTasksOnUIThread(); } + std::vector<base::TimeTicks>& QueueTimesUIThread() { + return calculator_->QueueTimesUIThread(); + } + std::vector<base::TimeTicks>& QueueTimesIOThread() { + return calculator_->QueueTimesIOThread(); + } int NumTasksOnIOThread() { return calculator_->NumTasksOnIOThread(); } private: ~FakeWatcher() override{}; FakeCalculator* calculator_ = nullptr; + bool register_message_loop_observer_ = false; }; } // namespace @@ -60,7 +91,8 @@ void SetUp() override { // Watcher's constructor posts a task to IO thread, which in the unit test // is also this thread. Regardless, we need to let those tasks finish. - watcher_ = scoped_refptr<FakeWatcher>(new FakeWatcher); + watcher_ = scoped_refptr<FakeWatcher>( + new FakeWatcher(/*register_message_loop_observer=*/false)); watcher_->SetUp(); test_browser_thread_bundle_.RunUntilIdle(); } @@ -82,6 +114,7 @@ TEST_F(ResponsivenessWatcherTest, TaskForwarding) { for (int i = 0; i < 3; ++i) { base::PendingTask task(FROM_HERE, base::OnceClosure()); + task.queue_time = base::TimeTicks::Now(); watcher_->WillRunTaskOnUIThread(&task); watcher_->DidRunTaskOnUIThread(&task); } @@ -90,6 +123,7 @@ for (int i = 0; i < 4; ++i) { base::PendingTask task(FROM_HERE, base::OnceClosure()); + task.queue_time = base::TimeTicks::Now(); watcher_->WillRunTaskOnIOThread(&task); watcher_->DidRunTaskOnIOThread(&task); } @@ -99,11 +133,14 @@ // Test that nested tasks are not forwarded to the calculator. TEST_F(ResponsivenessWatcherTest, TaskNesting) { - // TODO(erikchen): Check that the right task is forwarded to the calculator. - // Requires implementation of PendingTask::queue_time. + base::TimeTicks now = base::TimeTicks::Now(); + base::PendingTask task1(FROM_HERE, base::OnceClosure()); + task1.queue_time = now + base::TimeDelta::FromMilliseconds(1); base::PendingTask task2(FROM_HERE, base::OnceClosure()); + task2.queue_time = now + base::TimeDelta::FromMilliseconds(2); base::PendingTask task3(FROM_HERE, base::OnceClosure()); + task3.queue_time = now + base::TimeDelta::FromMilliseconds(3); watcher_->WillRunTaskOnUIThread(&task1); watcher_->WillRunTaskOnUIThread(&task2); @@ -112,8 +149,74 @@ watcher_->DidRunTaskOnUIThread(&task2); watcher_->DidRunTaskOnUIThread(&task1); - EXPECT_EQ(1, watcher_->NumTasksOnUIThread()); + ASSERT_EQ(1, watcher_->NumTasksOnUIThread()); + + // The innermost task should be the one that is passed through, as it didn't + // cause reentrancy. + EXPECT_EQ(now + base::TimeDelta::FromMilliseconds(3), + watcher_->QueueTimesUIThread()[0]); EXPECT_EQ(0, watcher_->NumTasksOnIOThread()); } +class ResponsivenessWatcherRealIOThreadTest : public testing::Test { + public: + ResponsivenessWatcherRealIOThreadTest() + : test_browser_thread_bundle_( + content::TestBrowserThreadBundle::REAL_IO_THREAD) {} + + void SetUp() override { + // Watcher's constructor posts a task to IO thread. We need to let those + // tasks finish. + watcher_ = scoped_refptr<FakeWatcher>( + new FakeWatcher(/*register_message_loop_observer=*/true)); + watcher_->SetUp(); + test_browser_thread_bundle_.RunIOThreadUntilIdle(); + } + + void TearDown() override { + watcher_->Destroy(); + watcher_.reset(); + + // Destroy a task onto the IO thread, which posts back to the UI thread + // to complete destruction. + test_browser_thread_bundle_.RunIOThreadUntilIdle(); + test_browser_thread_bundle_.RunUntilIdle(); + } + + protected: + // This member sets up BrowserThread::IO and BrowserThread::UI. It must be the + // first member, as other members may depend on these abstractions. + content::TestBrowserThreadBundle test_browser_thread_bundle_; + + scoped_refptr<FakeWatcher> watcher_; +}; + +TEST_F(ResponsivenessWatcherRealIOThreadTest, MessageLoopObserver) { + // Post a do-nothing task onto the UI thread. + content::BrowserThread::PostTask(content::BrowserThread::UI, FROM_HERE, + base::BindOnce([]() {})); + + // Post a do-nothing task onto the IO thread. + content::BrowserThread::PostTask(content::BrowserThread::IO, FROM_HERE, + base::BindOnce([]() {})); + + // Post a task onto the IO thread that hops back to the UI thread. This + // guarantees that both of the do-nothing tasks have already been processed. + base::RunLoop run_loop; + content::BrowserThread::PostTask( + content::BrowserThread::IO, FROM_HERE, + base::BindOnce( + [](base::OnceClosure quit_closure) { + content::BrowserThread::PostTask( + content::BrowserThread::UI, FROM_HERE, std::move(quit_closure)); + }, + run_loop.QuitClosure())); + run_loop.Run(); + + ASSERT_GE(watcher_->NumTasksOnUIThread(), 1); + EXPECT_FALSE(watcher_->QueueTimesUIThread()[0].is_null()); + ASSERT_GE(watcher_->NumTasksOnIOThread(), 1); + EXPECT_FALSE(watcher_->QueueTimesIOThread()[0].is_null()); +} + } // namespace responsiveness
diff --git a/content/browser/site_per_process_browsertest.cc b/content/browser/site_per_process_browsertest.cc index ddd79e1..d60314085 100644 --- a/content/browser/site_per_process_browsertest.cc +++ b/content/browser/site_per_process_browsertest.cc
@@ -530,6 +530,35 @@ node->current_frame_host()->GetProcess()->GetFrameDepth()); } +// Check |intersects_viewport| on widget and process. +bool CheckIntersectsViewport(bool expected, FrameTreeNode* node) { + RenderProcessHost::Priority priority = + node->current_frame_host()->GetRenderWidgetHost()->GetPriority(); + return priority.intersects_viewport == expected && + node->current_frame_host()->GetProcess()->GetIntersectsViewport() == + expected; +} + +// Layout child frames in cross_site_iframe_factory.html so that they are the +// same width as the viewport, and 75% of the height of the window. This is for +// testing viewport intersection. Note this does not recurse into child frames +// and re-layout in the same way since children might be in a different origin. +void LayoutNonRecursiveForTestingViewportIntersection( + WebContents* web_contents) { + static const char* script = + "function relayoutNonRecursiveForTestingViewportIntersection() {\ + var width = window.innerWidth;\ + var height = window.innerHeight * 0.75;\ + for (var i = 0; i < window.frames.length; i++) {\ + child = document.getElementById(\"child-\" + i);\ + child.width = width;\ + child.height = height;\ + }\ + }\ + relayoutNonRecursiveForTestingViewportIntersection();"; + EXPECT_TRUE(ExecuteScript(web_contents, script)); +} + void GenerateTapDownGesture(RenderWidgetHost* rwh) { blink::WebGestureEvent gesture_tap_down( blink::WebGestureEvent::kGestureTapDown, @@ -540,6 +569,78 @@ rwh->ForwardGestureEvent(gesture_tap_down); } +// Class to monitor incoming FrameHostMsg_UpdateViewportIntersection messages. +class UpdateViewportIntersectionMessageFilter + : public content::BrowserMessageFilter { + public: + UpdateViewportIntersectionMessageFilter() + : content::BrowserMessageFilter(FrameMsgStart), msg_received_(false) {} + + bool OnMessageReceived(const IPC::Message& message) override { + IPC_BEGIN_MESSAGE_MAP(UpdateViewportIntersectionMessageFilter, message) + IPC_MESSAGE_HANDLER(FrameHostMsg_UpdateViewportIntersection, + OnUpdateViewportIntersection) + IPC_END_MESSAGE_MAP() + return false; + } + + gfx::Rect GetCompositingRect() const { return compositing_rect_; } + gfx::Rect GetViewportIntersection() const { return viewport_intersection_; } + + void Wait() { + DCHECK(!run_loop_); + if (msg_received_) { + msg_received_ = false; + return; + } + std::unique_ptr<base::RunLoop> run_loop(new base::RunLoop); + run_loop_ = run_loop.get(); + run_loop_->Run(); + run_loop_ = nullptr; + msg_received_ = false; + } + + void set_run_loop(base::RunLoop* run_loop) { run_loop_ = run_loop; } + + private: + ~UpdateViewportIntersectionMessageFilter() override {} + + void OnUpdateViewportIntersection(const gfx::Rect& viewport_intersection, + const gfx::Rect& compositing_rect) { + // The message is going to be posted to UI thread after + // OnUpdateViewportIntersection returns. This additional post on the IO + // thread guarantees that by the time OnUpdateViewportIntersectionOnUI runs, + // the message has been handled on the UI thread. + content::BrowserThread::PostTask( + content::BrowserThread::IO, FROM_HERE, + base::BindOnce(&UpdateViewportIntersectionMessageFilter:: + OnUpdateViewportIntersectionPostOnIO, + this, viewport_intersection, compositing_rect)); + } + void OnUpdateViewportIntersectionPostOnIO( + const gfx::Rect& viewport_intersection, + const gfx::Rect& compositing_rect) { + content::BrowserThread::PostTask( + content::BrowserThread::UI, FROM_HERE, + base::BindOnce(&UpdateViewportIntersectionMessageFilter:: + OnUpdateViewportIntersectionOnUI, + this, viewport_intersection, compositing_rect)); + } + void OnUpdateViewportIntersectionOnUI(const gfx::Rect& viewport_intersection, + const gfx::Rect& compositing_rect) { + viewport_intersection_ = viewport_intersection; + compositing_rect_ = compositing_rect; + msg_received_ = true; + if (run_loop_) + run_loop_->Quit(); + } + base::RunLoop* run_loop_ = nullptr; + bool msg_received_; + gfx::Rect compositing_rect_; + gfx::Rect viewport_intersection_; + DISALLOW_COPY_AND_ASSIGN(UpdateViewportIntersectionMessageFilter); +}; + } // namespace // @@ -11504,6 +11605,100 @@ EXPECT_EQ(0u, popup_process->GetFrameDepth()); } +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, + FrameViewportIntersectionTestSimple) { + GURL main_url(embedded_test_server()->GetURL( + "a.com", "/cross_site_iframe_factory.html?a(b(c),d,e(f))")); + EXPECT_TRUE(NavigateToURL(shell(), main_url)); + + FrameTreeNode* root = web_contents()->GetFrameTree()->root(); + scoped_refptr<UpdateViewportIntersectionMessageFilter> root_filter = + new UpdateViewportIntersectionMessageFilter(); + root->current_frame_host()->GetProcess()->AddFilter(root_filter.get()); + + scoped_refptr<UpdateViewportIntersectionMessageFilter> child0_filter = + new UpdateViewportIntersectionMessageFilter(); + root->child_at(0)->current_frame_host()->GetProcess()->AddFilter( + child0_filter.get()); + + scoped_refptr<UpdateViewportIntersectionMessageFilter> child2_filter = + new UpdateViewportIntersectionMessageFilter(); + root->child_at(2)->current_frame_host()->GetProcess()->AddFilter( + child2_filter.get()); + + // Each immediate child is sized to 100% width and 75% height. + LayoutNonRecursiveForTestingViewportIntersection(shell()->web_contents()); + + while (true) { + base::RunLoop run_loop; + root_filter->set_run_loop(&run_loop); + child0_filter->set_run_loop(&run_loop); + child2_filter->set_run_loop(&run_loop); + run_loop.Run(); + root_filter->set_run_loop(nullptr); + child0_filter->set_run_loop(nullptr); + child2_filter->set_run_loop(nullptr); + + if ( // Root should always intersect. + CheckIntersectsViewport(true, root) && + // Child 0 should be entirely in viewport. + CheckIntersectsViewport(true, root->child_at(0)) && + // Grand child should match parent. + CheckIntersectsViewport(true, root->child_at(0)->child_at(0)) && + // Child 1 should be partially in viewport. + CheckIntersectsViewport(true, root->child_at(1)) && + // Child 2 should be not be in viewport. + CheckIntersectsViewport(false, root->child_at(2)) && + // Grand child should match parent. + CheckIntersectsViewport(false, root->child_at(2)->child_at(0))) { + break; + } + } +} + +IN_PROC_BROWSER_TEST_F(SitePerProcessBrowserTest, + FrameViewportIntersectionTestAggregate) { + GURL main_url(embedded_test_server()->GetURL( + "a.com", "/cross_site_iframe_factory.html?a(b,c,a,b)")); + EXPECT_TRUE(NavigateToURL(shell(), main_url)); + + FrameTreeNode* root = web_contents()->GetFrameTree()->root(); + scoped_refptr<UpdateViewportIntersectionMessageFilter> filter = + new UpdateViewportIntersectionMessageFilter(); + root->current_frame_host()->GetProcess()->AddFilter(filter.get()); + + // Each immediate child is sized to 100% width and 75% height. + LayoutNonRecursiveForTestingViewportIntersection(shell()->web_contents()); + + while (true) { + filter->Wait(); + + bool pass = true; + { + // Child 2 does not intersect, but shares widget with the main frame. + FrameTreeNode* node = root->child_at(2); + RenderProcessHost::Priority priority = + node->current_frame_host()->GetRenderWidgetHost()->GetPriority(); + pass = pass && priority.intersects_viewport; + pass = pass && + node->current_frame_host()->GetProcess()->GetIntersectsViewport(); + } + + { + // Child 3 does not intersect, but shares a process with child 0. + FrameTreeNode* node = root->child_at(3); + RenderProcessHost::Priority priority = + node->current_frame_host()->GetRenderWidgetHost()->GetPriority(); + pass = pass && !priority.intersects_viewport; + pass = pass && + node->current_frame_host()->GetProcess()->GetIntersectsViewport(); + } + + if (pass) + break; + } +} + // Ensure that after a main frame with an OOPIF is navigated cross-site, the // unload handler in the OOPIF sees correct main frame origin, namely the old // and not the new origin. See https://crbug.com/825283. @@ -11647,62 +11842,6 @@ EXPECT_EQ(start_url, rfh->GetLastCommittedURL()); } -// Class to monitor incoming FrameHostMsg_UpdateViewportIntersection messages. -class UpdateViewportIntersectionMessageFilter - : public content::BrowserMessageFilter { - public: - UpdateViewportIntersectionMessageFilter() - : content::BrowserMessageFilter(FrameMsgStart), msg_received_(false) {} - - bool OnMessageReceived(const IPC::Message& message) override { - IPC_BEGIN_MESSAGE_MAP(UpdateViewportIntersectionMessageFilter, message) - IPC_MESSAGE_HANDLER(FrameHostMsg_UpdateViewportIntersection, - OnUpdateViewportIntersection) - IPC_END_MESSAGE_MAP() - return false; - } - - gfx::Rect GetCompositingRect() const { return compositing_rect_; } - gfx::Rect GetViewportIntersection() const { return viewport_intersection_; } - - void Wait() { - DCHECK(!run_loop_); - if (msg_received_) { - msg_received_ = false; - return; - } - run_loop_.reset(new base::RunLoop()); - run_loop_->Run(); - run_loop_.reset(); - msg_received_ = false; - } - - private: - ~UpdateViewportIntersectionMessageFilter() override {} - - void OnUpdateViewportIntersection(const gfx::Rect& viewport_intersection, - const gfx::Rect& compositing_rect) { - content::BrowserThread::PostTask( - content::BrowserThread::UI, FROM_HERE, - base::BindOnce(&UpdateViewportIntersectionMessageFilter:: - OnUpdateViewportIntersectionOnUI, - this, viewport_intersection, compositing_rect)); - } - void OnUpdateViewportIntersectionOnUI(const gfx::Rect& viewport_intersection, - const gfx::Rect& compositing_rect) { - compositing_rect_ = compositing_rect; - viewport_intersection_ = viewport_intersection; - msg_received_ = true; - if (run_loop_) - run_loop_->Quit(); - } - std::unique_ptr<base::RunLoop> run_loop_; - bool msg_received_; - gfx::Rect compositing_rect_; - gfx::Rect viewport_intersection_; - DISALLOW_COPY_AND_ASSIGN(UpdateViewportIntersectionMessageFilter); -}; - // Tests that when a large OOPIF has been scaled, the compositor raster area // sent from the embedder is correct. #if defined(OS_ANDROID) || defined(OS_MACOSX)
diff --git a/content/browser/site_per_process_hit_test_browsertest.cc b/content/browser/site_per_process_hit_test_browsertest.cc index a3dc9af..11ee010 100644 --- a/content/browser/site_per_process_hit_test_browsertest.cc +++ b/content/browser/site_per_process_hit_test_browsertest.cc
@@ -16,6 +16,7 @@ #include "components/viz/common/features.h" #include "content/browser/compositor/surface_utils.h" #include "content/browser/renderer_host/cursor_manager.h" +#include "content/browser/renderer_host/input/synthetic_smooth_scroll_gesture.h" #include "content/browser/renderer_host/input/synthetic_tap_gesture.h" #include "content/browser/renderer_host/input/touch_emulator.h" #include "content/browser/renderer_host/render_widget_host_input_event_router.h" @@ -1314,6 +1315,99 @@ RunTest(TouchActionBubbling); } +#if defined(OS_ANDROID) || defined(USE_AURA) +namespace { +// This function is used in TouchActionAckTimeout and +// SubframeGestureEventRouting, which is defined either under Android or Aura. +void OnSyntheticGestureCompleted(scoped_refptr<MessageLoopRunner> runner, + SyntheticGesture::Result result) { + EXPECT_EQ(SyntheticGesture::GESTURE_FINISHED, result); + runner->Quit(); +} + +} // namespace +#endif // defined(OS_ANDROID) || defined(USE_AURA) + +// Regression test for https://crbug.com/851644. The test passes as long as it +// doesn't crash. +// Touch action ack timeout is enabled on Android only. +#if defined(OS_ANDROID) +IN_PROC_BROWSER_TEST_P(SitePerProcessHitTestBrowserTest, + TouchActionAckTimeout) { + GURL main_url( + embedded_test_server()->GetURL("/frame_tree/page_with_janky_frame.html")); + ASSERT_TRUE(NavigateToURL(shell(), main_url)); + FrameTreeNode* root = web_contents()->GetFrameTree()->root(); + ASSERT_EQ(1U, root->child_count()); + GURL frame_url(embedded_test_server()->GetURL( + "baz.com", "/page_with_touch_start_janking_main_thread.html")); + auto* child_frame_host = root->child_at(0)->current_frame_host(); + + RenderWidgetHostViewBase* rwhv_root = static_cast<RenderWidgetHostViewBase*>( + root->current_frame_host()->GetRenderWidgetHost()->GetView()); + RenderWidgetHostViewChildFrame* rwhv_child = + static_cast<RenderWidgetHostViewChildFrame*>( + child_frame_host->GetRenderWidgetHost()->GetView()); + + WaitForHitTestDataOrChildSurfaceReady(child_frame_host); + + // Compute the point so that the gesture event can target the child frame. + const gfx::Rect root_bounds = rwhv_root->GetViewBounds(); + const gfx::Rect child_bounds = rwhv_child->GetViewBounds(); + RenderFrameSubmissionObserver render_frame_submission_observer( + shell()->web_contents()); + const float page_scale_factor = + render_frame_submission_observer.LastRenderFrameMetadata() + .page_scale_factor; + const gfx::PointF point_in_child( + (child_bounds.x() - root_bounds.x() + 25) * page_scale_factor, + (child_bounds.y() - root_bounds.y() + 25) * page_scale_factor); + + SyntheticSmoothScrollGestureParams params; + params.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; + params.anchor = gfx::PointF(point_in_child.x(), point_in_child.y()); + params.distances.push_back(gfx::Vector2dF(0, -10)); + // Make this scroll slow so that the second scroll will be queued even before + // this one ends. + params.speed_in_pixels_s = 1000; + std::unique_ptr<SyntheticSmoothScrollGesture> gesture( + new SyntheticSmoothScrollGesture(params)); + + scoped_refptr<MessageLoopRunner> runner = new MessageLoopRunner(); + RenderWidgetHostImpl* render_widget_host = + root->current_frame_host()->GetRenderWidgetHost(); + render_widget_host->QueueSyntheticGesture( + std::move(gesture), base::BindOnce(OnSyntheticGestureCompleted, runner)); + // The first gesture takes 100ms, so wait for 120ms to ensure that it has + // finished. + runner->Run(); + std::unique_ptr<RenderFrameSubmissionObserver> frame_observer = + std::make_unique<RenderFrameSubmissionObserver>( + child_frame_host->GetRenderWidgetHost()->render_frame_metadata_provider()); + frame_observer->WaitForAnyFrameSubmission(); + + SyntheticSmoothScrollGestureParams params2; + params2.gesture_source_type = SyntheticGestureParams::TOUCH_INPUT; + params2.anchor = gfx::PointF(point_in_child.x(), point_in_child.y()); + params2.distances.push_back(gfx::Vector2dF(0, -10)); + params2.speed_in_pixels_s = 100000; + std::unique_ptr<SyntheticSmoothScrollGesture> gesture2( + new SyntheticSmoothScrollGesture(params2)); + render_widget_host->QueueSyntheticGesture( + std::move(gesture2), base::BindOnce(OnSyntheticGestureCompleted, runner)); + + runner->Run(); + runner = nullptr; + + // Give enough time to make sure all gesture are flushed and handled. + base::RunLoop run_loop; + base::ThreadTaskRunnerHandle::Get()->PostDelayedTask( + FROM_HERE, run_loop.QuitClosure(), + base::TimeDelta::FromMilliseconds(2500)); + run_loop.Run(); +} +#endif // defined(OS_ANDROID) + #if defined(USE_AURA) || defined(OS_ANDROID) // When unconsumed scrolls in a child bubble to the root and start an @@ -1583,7 +1677,10 @@ // Verify that this a mouse wheel event was sent to the child frame renderer. EXPECT_TRUE(child_frame_monitor.EventWasReceived()); - EXPECT_EQ(child_frame_monitor.EventType(), blink::WebInputEvent::kMouseWheel); + const auto& child_events = child_frame_monitor.events_received(); + EXPECT_NE(child_events.end(), + std::find(child_events.begin(), child_events.end(), + blink::WebInputEvent::kMouseWheel)); } #if defined(THREAD_SANITIZER) @@ -2882,7 +2979,10 @@ // Verify that this a mouse wheel event was sent to the child frame renderer. EXPECT_TRUE(child_frame_monitor.EventWasReceived()); - EXPECT_EQ(child_frame_monitor.EventType(), blink::WebInputEvent::kMouseWheel); + const auto& child_events = child_frame_monitor.events_received(); + EXPECT_NE(child_events.end(), + std::find(child_events.begin(), child_events.end(), + blink::WebInputEvent::kMouseWheel)); // Kill the wheel target view process. This must reset the wheel_target_. RenderProcessHost* child_process = @@ -3042,17 +3142,6 @@ render_widget_host->input_router()->AllowedTouchAction()); } -namespace { - -// Declared here to be close to the SubframeGestureEventRouting test. -void OnSyntheticGestureCompleted(scoped_refptr<MessageLoopRunner> runner, - SyntheticGesture::Result result) { - EXPECT_EQ(SyntheticGesture::GESTURE_FINISHED, result); - runner->Quit(); -} - -} // anonymous namespace - // https://crbug.com/592320 IN_PROC_BROWSER_TEST_P(SitePerProcessHitTestBrowserTest, DISABLED_SubframeGestureEventRouting) { @@ -3280,9 +3369,9 @@ ui::EventTimeForNow(), pinch_end_details); UpdateEventRootLocation(&pinch_end, root_view_aura); root_view_aura->OnGestureEvent(&pinch_end); - EXPECT_EQ(expected_target, router_touchpad_gesture_target); EXPECT_TRUE(target_monitor.EventWasReceived()); EXPECT_EQ(target_monitor.EventType(), blink::WebInputEvent::kGesturePinchEnd); + EXPECT_EQ(nullptr, router_touchpad_gesture_target); } #if !defined(OS_WIN) @@ -3290,20 +3379,14 @@ void SendTouchpadFlingSequenceWithExpectedTarget( RenderWidgetHostViewBase* root_view, const gfx::Point& gesture_point, - RenderWidgetHostViewBase*& router_touchpad_gesture_target, + RenderWidgetHostViewBase*& router_wheel_target, RenderWidgetHostViewBase* expected_target) { auto* root_view_aura = static_cast<RenderWidgetHostViewAura*>(root_view); - // Touchpad Fling must be sent inside a gesture scroll seqeunce. - blink::WebGestureEvent gesture_event( - blink::WebGestureEvent::kGestureScrollBegin, - blink::WebInputEvent::kNoModifiers, - blink::WebInputEvent::GetStaticTimeStampForTests(), - blink::kWebGestureDeviceTouchpad); - gesture_event.SetPositionInWidget(gfx::PointF(gesture_point)); - gesture_event.data.scroll_begin.delta_x_hint = 0.0f; - gesture_event.data.scroll_begin.delta_y_hint = 1.0f; - expected_target->GetRenderWidgetHost()->ForwardGestureEvent(gesture_event); + ui::ScrollEvent scroll_begin(ui::ET_SCROLL, gesture_point, + ui::EventTimeForNow(), 0, 1, 0, 1, 0, 2); + UpdateEventRootLocation(&scroll_begin, root_view_aura); + root_view_aura->OnScrollEvent(&scroll_begin); ui::ScrollEvent fling_start(ui::ET_SCROLL_FLING_START, gesture_point, ui::EventTimeForNow(), 0, 1, 0, 1, 0, 1); @@ -3328,23 +3411,23 @@ } fling_start_waiter.Wait(); EXPECT_TRUE(target_monitor.EventWasReceived()); - EXPECT_EQ(expected_target, router_touchpad_gesture_target); + EXPECT_EQ(expected_target, router_wheel_target); target_monitor.ResetEventsReceived(); // Send a GFC event, the fling_controller will process the GFC and stop the // fling by generating a wheel event with phaseEnded. The // mouse_wheel_event_queue will process the wheel event and generate a GSE. + InputEventAckWaiter fling_cancel_waiter( + expected_target->GetRenderWidgetHost(), + blink::WebInputEvent::kGestureFlingCancel); ui::ScrollEvent fling_cancel(ui::ET_SCROLL_FLING_CANCEL, gesture_point, ui::EventTimeForNow(), 0, 1, 0, 1, 0, 1); UpdateEventRootLocation(&fling_cancel, root_view_aura); root_view_aura->OnScrollEvent(&fling_cancel); - EXPECT_EQ(expected_target, router_touchpad_gesture_target); - EXPECT_TRUE(target_monitor.EventWasReceived()); - EXPECT_EQ(target_monitor.EventType(), - blink::WebInputEvent::kGestureFlingCancel); // Since the fling velocity is small, sometimes the fling is over before // sending the GFC event. gestrue_scroll_end_waiter.GetAckStateWaitIfNecessary(); + fling_cancel_waiter.Wait(); } #endif // !defined(OS_WIN) @@ -3609,18 +3692,15 @@ // Send touchpad fling sequence to main-frame. SendTouchpadFlingSequenceWithExpectedTarget( - rwhv_parent, main_frame_point, router->touchpad_gesture_target_.target, - rwhv_parent); + rwhv_parent, main_frame_point, router->wheel_target_.target, rwhv_parent); // Send touchpad fling sequence to child. SendTouchpadFlingSequenceWithExpectedTarget( - rwhv_parent, child_center, router->touchpad_gesture_target_.target, - rwhv_child); + rwhv_parent, child_center, router->wheel_target_.target, rwhv_child); // Send another touchpad fling sequence to main frame. SendTouchpadFlingSequenceWithExpectedTarget( - rwhv_parent, main_frame_point, router->touchpad_gesture_target_.target, - rwhv_parent); + rwhv_parent, main_frame_point, router->wheel_target_.target, rwhv_parent); #endif } @@ -3628,7 +3708,7 @@ // wheel events to the child and causes the page scale factor to change for // the main frame (given that the child did not consume the wheel). IN_PROC_BROWSER_TEST_P(SitePerProcessHitTestBrowserTest, - TouchpadPinchOverOOPIF) { + MAYBE_TouchpadPinchOverOOPIF) { GURL main_url(embedded_test_server()->GetURL( "/frame_tree/page_with_positioned_frame.html")); EXPECT_TRUE(NavigateToURL(shell(), main_url));
diff --git a/content/browser/site_per_process_mac_browsertest.mm b/content/browser/site_per_process_mac_browsertest.mm index 9402cd6..ca814f4d 100644 --- a/content/browser/site_per_process_mac_browsertest.mm +++ b/content/browser/site_per_process_mac_browsertest.mm
@@ -278,7 +278,7 @@ [cocoa_view magnifyWithEvent:pinchEndEvent]; if (ShouldSendGestureEvents()) [cocoa_view endGestureWithEvent:pinchEndEvent]; - EXPECT_EQ(expected_target, router_touchpad_gesture_target); + EXPECT_EQ(nullptr, router_touchpad_gesture_target); } } // namespace
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.cc b/content/browser/speech/speech_recognition_dispatcher_host.cc index 87617e6..165811987 100644 --- a/content/browser/speech/speech_recognition_dispatcher_host.cc +++ b/content/browser/speech/speech_recognition_dispatcher_host.cc
@@ -16,11 +16,13 @@ #include "content/browser/speech/speech_recognition_manager_impl.h" #include "content/browser/web_contents/web_contents_impl.h" #include "content/public/browser/browser_context.h" +#include "content/public/browser/content_browser_client.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/speech_recognition_manager_delegate.h" #include "content/public/browser/speech_recognition_session_config.h" #include "content/public/browser/speech_recognition_session_context.h" #include "content/public/browser/storage_partition.h" +#include "content/public/common/content_client.h" #include "content/public/common/content_switches.h" #include "mojo/public/cpp/bindings/strong_binding.h" #include "services/network/public/cpp/shared_url_loader_factory.h" @@ -131,8 +133,9 @@ ->delegate() ->FilterProfanities(embedder_render_process_id); + content::BrowserContext* browser_context = web_contents->GetBrowserContext(); StoragePartition* storage_partition = BrowserContext::GetStoragePartition( - web_contents->GetBrowserContext(), web_contents->GetSiteInstance()); + browser_context, web_contents->GetSiteInstance()); BrowserThread::PostTask( BrowserThread::IO, FROM_HERE, @@ -142,7 +145,7 @@ embedder_render_process_id, embedder_render_frame_id, filter_profanities, storage_partition->GetURLLoaderFactoryForBrowserProcessIOThread(), - base::WrapRefCounted(storage_partition->GetURLRequestContext()))); + GetContentClient()->browser()->GetAcceptLangs(browser_context))); } void SpeechRecognitionDispatcherHost::StartSessionOnIO( @@ -152,7 +155,7 @@ bool filter_profanities, std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - scoped_refptr<net::URLRequestContextGetter> deprecated_context_getter) { + const std::string& accept_language) { DCHECK_CURRENTLY_ON(BrowserThread::IO); SpeechRecognitionSessionContext context; @@ -167,13 +170,12 @@ SpeechRecognitionSessionConfig config; config.language = params->language; + config.accept_language = accept_language; config.max_hypotheses = params->max_hypotheses; config.origin = params->origin; config.initial_context = context; config.shared_url_loader_factory = network::SharedURLLoaderFactory::Create( std::move(shared_url_loader_factory_info)); - config.deprecated_url_request_context_getter = - std::move(deprecated_context_getter); config.filter_profanities = filter_profanities; config.continuous = params->continuous; config.interim_results = params->interim_results;
diff --git a/content/browser/speech/speech_recognition_dispatcher_host.h b/content/browser/speech/speech_recognition_dispatcher_host.h index 9eeeb44..2ae1596 100644 --- a/content/browser/speech/speech_recognition_dispatcher_host.h +++ b/content/browser/speech/speech_recognition_dispatcher_host.h
@@ -6,6 +6,7 @@ #define CONTENT_BROWSER_SPEECH_SPEECH_RECOGNITION_DISPATCHER_HOST_H_ #include <memory> +#include <string> #include "base/macros.h" #include "base/memory/weak_ptr.h" @@ -14,7 +15,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/speech_recognition_event_listener.h" #include "mojo/public/cpp/bindings/binding.h" -#include "net/url_request/url_request_context_getter.h" #include "third_party/blink/public/mojom/speech/speech_recognizer.mojom.h" namespace network { @@ -57,7 +57,7 @@ bool filter_profanities, std::unique_ptr<network::SharedURLLoaderFactoryInfo> shared_url_loader_factory_info, - scoped_refptr<net::URLRequestContextGetter> deprecated_context_getter); + const std::string& accept_language); const int render_process_id_; const int render_frame_id_;
diff --git a/content/browser/speech/speech_recognition_engine.cc b/content/browser/speech/speech_recognition_engine.cc index 275129d3..3bb628a 100644 --- a/content/browser/speech/speech_recognition_engine.cc +++ b/content/browser/speech/speech_recognition_engine.cc
@@ -22,11 +22,6 @@ #include "net/base/escape.h" #include "net/base/load_flags.h" #include "net/traffic_annotation/network_traffic_annotation.h" -#include "net/url_request/http_user_agent_settings.h" -#include "net/url_request/url_fetcher.h" -#include "net/url_request/url_request_context.h" -#include "net/url_request/url_request_context_getter.h" -#include "net/url_request/url_request_status.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "services/network/public/cpp/simple_url_loader.h" #include "services/network/public/mojom/chunked_data_pipe_getter.mojom.h" @@ -293,11 +288,9 @@ SpeechRecognitionEngine::SpeechRecognitionEngine( scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory, - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter) + const std::string& accept_language) : shared_url_loader_factory_(std::move(shared_url_loader_factory)), - deprecated_url_request_context_getter_( - std::move(deprecated_url_request_context_getter)), + accept_language_(accept_language), got_last_definitive_result_(false), is_dispatching_event_(false), use_framed_post_data_(false), @@ -872,23 +865,13 @@ std::string SpeechRecognitionEngine::GetAcceptedLanguages() const { std::string langs = config_.language; - if (langs.empty() && deprecated_url_request_context_getter_.get()) { + if (langs.empty() && !accept_language_.empty()) { // If no language is provided then we use the first from the accepted // language list. If this list is empty then it defaults to "en-US". // Example of the contents of this list: "es,en-GB;q=0.8", "" - net::URLRequestContext* request_context = - deprecated_url_request_context_getter_->GetURLRequestContext(); - DCHECK(request_context); - // TODO(pauljensen): SpeechRecognitionEngine should be constructed with - // a reference to the HttpUserAgentSettings rather than accessing the - // accept language through the URLRequestContext. - if (request_context->http_user_agent_settings()) { - std::string accepted_language_list = - request_context->http_user_agent_settings()->GetAcceptLanguage(); - size_t separator = accepted_language_list.find_first_of(",;"); - if (separator != std::string::npos) - langs = accepted_language_list.substr(0, separator); - } + size_t separator = accept_language_.find_first_of(",;"); + if (separator != std::string::npos) + langs = accept_language_.substr(0, separator); } if (langs.empty()) langs = "en-US";
diff --git a/content/browser/speech/speech_recognition_engine.h b/content/browser/speech/speech_recognition_engine.h index 5119585..1f35012 100644 --- a/content/browser/speech/speech_recognition_engine.h +++ b/content/browser/speech/speech_recognition_engine.h
@@ -24,10 +24,6 @@ #include "third_party/blink/public/mojom/speech/speech_recognition_grammar.mojom.h" #include "third_party/blink/public/mojom/speech/speech_recognition_result.mojom.h" -namespace net { -class URLRequestContextGetter; -} - namespace network { class SharedURLLoaderFactory; } @@ -104,14 +100,10 @@ // Duration of each audio packet. static const int kAudioPacketIntervalMs; - // |deprecated_url_request_context_getter| is only for poking at the - // Accept-Language header. - // TODO(mmenke): Remove |deprecated_url_request_context_getter| as an - // argument. + // |accept_language| is the default Accept-Language header. SpeechRecognitionEngine( scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory, - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter); + const std::string& accept_language); ~SpeechRecognitionEngine(); // Sets the URL requests are sent to for tests. @@ -215,8 +207,7 @@ std::unique_ptr<UpstreamLoader> upstream_loader_; std::unique_ptr<DownstreamLoader> downstream_loader_; scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory_; - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter_; + const std::string accept_language_; std::unique_ptr<AudioEncoder> encoder_; std::unique_ptr<AudioEncoder> preamble_encoder_; ChunkedByteBuffer chunked_byte_buffer_;
diff --git a/content/browser/speech/speech_recognition_engine_unittest.cc b/content/browser/speech/speech_recognition_engine_unittest.cc index e5cc094..e67d251 100644 --- a/content/browser/speech/speech_recognition_engine_unittest.cc +++ b/content/browser/speech/speech_recognition_engine_unittest.cc
@@ -489,7 +489,7 @@ engine_under_test_.reset(new SpeechRecognitionEngine( base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( &url_loader_factory_), - nullptr /*URLRequestContextGetter*/)); + "" /* accept_language */)); engine_under_test_->set_delegate(this); }
diff --git a/content/browser/speech/speech_recognition_manager_impl.cc b/content/browser/speech/speech_recognition_manager_impl.cc index 0fe2c517..08bcec6 100644 --- a/content/browser/speech/speech_recognition_manager_impl.cc +++ b/content/browser/speech/speech_recognition_manager_impl.cc
@@ -282,9 +282,8 @@ remote_engine_config.auth_scope = config.auth_scope; remote_engine_config.preamble = config.preamble; - SpeechRecognitionEngine* google_remote_engine = - new SpeechRecognitionEngine(config.shared_url_loader_factory, - config.deprecated_url_request_context_getter); + SpeechRecognitionEngine* google_remote_engine = new SpeechRecognitionEngine( + config.shared_url_loader_factory, config.accept_language); google_remote_engine->SetConfig(remote_engine_config); session->recognizer = new SpeechRecognizerImpl(
diff --git a/content/browser/speech/speech_recognizer_impl.h b/content/browser/speech/speech_recognizer_impl.h index fd6d57b..5636b18c 100644 --- a/content/browser/speech/speech_recognizer_impl.h +++ b/content/browser/speech/speech_recognizer_impl.h
@@ -15,7 +15,6 @@ #include "content/browser/speech/speech_recognition_engine.h" #include "content/browser/speech/speech_recognizer.h" #include "media/base/audio_capturer_source.h" -#include "net/url_request/url_request_context_getter.h" #include "third_party/blink/public/mojom/speech/speech_recognition_error.mojom.h" #include "third_party/blink/public/mojom/speech/speech_recognition_result.mojom.h"
diff --git a/content/browser/speech/speech_recognizer_impl_unittest.cc b/content/browser/speech/speech_recognizer_impl_unittest.cc index 0ef14a5d..8c4fa52 100644 --- a/content/browser/speech/speech_recognizer_impl_unittest.cc +++ b/content/browser/speech/speech_recognizer_impl_unittest.cc
@@ -85,7 +85,7 @@ SpeechRecognitionEngine* sr_engine = new SpeechRecognitionEngine( base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>( &url_loader_factory_), - nullptr /* URLRequestContextGetter */); + "" /* accept_language */); SpeechRecognitionEngine::Config config; config.audio_num_bits_per_sample = SpeechRecognizerImpl::kNumBitsPerAudioSample;
diff --git a/content/browser/tracing/power_tracing_agent.cc b/content/browser/tracing/power_tracing_agent.cc deleted file mode 100644 index 4c6e4fd5..0000000 --- a/content/browser/tracing/power_tracing_agent.cc +++ /dev/null
@@ -1,197 +0,0 @@ -// Copyright 2015 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/tracing/power_tracing_agent.h" - -#include <utility> - -#include "base/bind.h" -#include "base/lazy_instance.h" -#include "base/memory/singleton.h" -#include "base/task_scheduler/post_task.h" -#include "base/task_scheduler/task_traits.h" -#include "base/threading/thread_task_runner_handle.h" -#include "base/time/time.h" -#include "base/trace_event/trace_config.h" -#include "base/trace_event/trace_event_impl.h" -#include "mojo/public/cpp/bindings/interface_request.h" -#include "services/service_manager/public/cpp/connector.h" -#include "services/tracing/public/mojom/constants.mojom.h" -#include "tools/battor_agent/battor_finder.h" - -namespace content { - -namespace { - -const char kPowerTraceLabel[] = "powerTraceAsString"; - -} // namespace - -// static -PowerTracingAgent* PowerTracingAgent::GetInstance() { - return base::Singleton<PowerTracingAgent>::get(); -} - -PowerTracingAgent::PowerTracingAgent(service_manager::Connector* connector) - : binding_(this) { - DCHECK_CURRENTLY_ON(BrowserThread::UI); - // Connect to the agent registry interface. - tracing::mojom::AgentRegistryPtr agent_registry; - connector->BindInterface(tracing::mojom::kServiceName, &agent_registry); - - // Register this agent. - tracing::mojom::AgentPtr agent; - binding_.Bind(mojo::MakeRequest(&agent)); - agent_registry->RegisterAgent( - std::move(agent), kPowerTraceLabel, tracing::mojom::TraceDataType::STRING, - true /* supports_explicit_clock_sync */, base::kNullProcessId); -} - -PowerTracingAgent::PowerTracingAgent() : binding_(this) {} -PowerTracingAgent::~PowerTracingAgent() = default; - -void PowerTracingAgent::StartTracing(const std::string& config, - base::TimeTicks coordinator_time, - Agent::StartTracingCallback callback) { - base::trace_event::TraceConfig trace_config(config); - if (!trace_config.IsSystraceEnabled()) { - std::move(callback).Run(false /* success */); - return; - } - - base::PostTaskWithTraits( - FROM_HERE, {base::TaskPriority::BEST_EFFORT, base::MayBlock()}, - base::BindOnce(&PowerTracingAgent::FindBattOrOnBackgroundThread, - base::Unretained(this), std::move(callback))); -} - -void PowerTracingAgent::FindBattOrOnBackgroundThread( - Agent::StartTracingCallback callback) { - std::string path = battor::BattOrFinder::FindBattOr(); - if (path.empty()) { - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - base::BindOnce(std::move(callback), false /* success */)); - return; - } - - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::BindOnce(&PowerTracingAgent::StartTracingOnIOThread, - base::Unretained(this), path, std::move(callback))); -} - -void PowerTracingAgent::StartTracingOnIOThread( - const std::string& path, - Agent::StartTracingCallback callback) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - battor_agent_.reset(new battor::BattOrAgent( - path, this, BrowserThread::GetTaskRunnerForThread(BrowserThread::UI))); - - start_tracing_callback_ = std::move(callback); - battor_agent_->StartTracing(); -} - -void PowerTracingAgent::OnStartTracingComplete(battor::BattOrError error) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - bool success = (error == battor::BATTOR_ERROR_NONE); - if (!success) - battor_agent_.reset(); - - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - base::BindOnce(std::move(start_tracing_callback_), success)); -} - -void PowerTracingAgent::StopAndFlush(tracing::mojom::RecorderPtr recorder) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::BindOnce(&PowerTracingAgent::StopAndFlushOnIOThread, - base::Unretained(this), std::move(recorder))); -} - -void PowerTracingAgent::StopAndFlushOnIOThread( - tracing::mojom::RecorderPtr recorder) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - // This makes sense only when the battor agent exists. - if (battor_agent_) { - recorder_ = std::move(recorder); - battor_agent_->StopTracing(); - } -} - -void PowerTracingAgent::OnStopTracingComplete( - const battor::BattOrResults& results, - battor::BattOrError error) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - if (error == battor::BATTOR_ERROR_NONE) - recorder_->AddChunk(results.ToString()); - recorder_.reset(); - battor_agent_.reset(); -} - -void PowerTracingAgent::RequestClockSyncMarker( - const std::string& sync_id, - Agent::RequestClockSyncMarkerCallback callback) { - BrowserThread::PostTask( - BrowserThread::IO, FROM_HERE, - base::BindOnce(&PowerTracingAgent::RequestClockSyncMarkerOnIOThread, - base::Unretained(this), sync_id, std::move(callback))); -} - -void PowerTracingAgent::RequestClockSyncMarkerOnIOThread( - const std::string& sync_id, - Agent::RequestClockSyncMarkerCallback callback) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - // This makes sense only when the battor agent exists. - if (!battor_agent_) { - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - base::BindOnce(std::move(callback), base::TimeTicks(), - base::TimeTicks())); - return; - } - - request_clock_sync_marker_callback_ = std::move(callback); - request_clock_sync_marker_start_time_ = TRACE_TIME_TICKS_NOW(); - battor_agent_->RecordClockSyncMarker(sync_id); -} - -void PowerTracingAgent::OnRecordClockSyncMarkerComplete( - battor::BattOrError error) { - DCHECK_CURRENTLY_ON(BrowserThread::IO); - - base::TimeTicks issue_start_ts = request_clock_sync_marker_start_time_; - base::TimeTicks issue_end_ts = TRACE_TIME_TICKS_NOW(); - - if (error != battor::BATTOR_ERROR_NONE) - issue_start_ts = issue_end_ts = base::TimeTicks(); - - BrowserThread::PostTask( - BrowserThread::UI, FROM_HERE, - base::BindOnce(std::move(request_clock_sync_marker_callback_), - issue_start_ts, issue_end_ts)); - request_clock_sync_marker_start_time_ = base::TimeTicks(); -} - -void PowerTracingAgent::OnGetFirmwareGitHashComplete( - const std::string& version, battor::BattOrError error) { - return; -} - -void PowerTracingAgent::GetCategories(Agent::GetCategoriesCallback callback) { - std::move(callback).Run(""); -} - -void PowerTracingAgent::RequestBufferStatus( - Agent::RequestBufferStatusCallback callback) { - std::move(callback).Run(0, 0); -} - -} // namespace content
diff --git a/content/browser/tracing/power_tracing_agent.h b/content/browser/tracing/power_tracing_agent.h deleted file mode 100644 index 6623bc12..0000000 --- a/content/browser/tracing/power_tracing_agent.h +++ /dev/null
@@ -1,98 +0,0 @@ -// Copyright 2015 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. - -#ifndef CONTENT_BROWSER_TRACING_POWER_TRACING_AGENT_H_ -#define CONTENT_BROWSER_TRACING_POWER_TRACING_AGENT_H_ - -#include <memory> -#include <string> - -#include "base/macros.h" -#include "base/memory/ref_counted_memory.h" -#include "base/threading/thread.h" -#include "content/public/browser/browser_thread.h" -#include "mojo/public/cpp/bindings/binding.h" -#include "services/tracing/public/mojom/tracing.mojom.h" -#include "tools/battor_agent/battor_agent.h" -#include "tools/battor_agent/battor_error.h" - -namespace base { -template <typename Type> -struct DefaultSingletonTraits; -} // namespace base - -namespace service_manager { -class Connector; -} // namespace service_manager - -namespace content { - -using tracing::mojom::Agent; - -class PowerTracingAgent : public Agent, public battor::BattOrAgent::Listener { - public: - // Retrieve the singleton instance. - static PowerTracingAgent* GetInstance(); - - explicit PowerTracingAgent(service_manager::Connector* connector); - - // BattOrAgent::Listener implementation. - void OnStartTracingComplete(battor::BattOrError error) override; - void OnStopTracingComplete(const battor::BattOrResults& results, - battor::BattOrError error) override; - void OnRecordClockSyncMarkerComplete(battor::BattOrError error) override; - void OnGetFirmwareGitHashComplete(const std::string& version, - battor::BattOrError error) override; - - private: - // This allows constructor and destructor to be private and usable only - // by the Singleton class. - friend struct base::DefaultSingletonTraits<PowerTracingAgent>; - friend std::default_delete<PowerTracingAgent>; - - PowerTracingAgent(); - ~PowerTracingAgent() override; - - // tracing::mojom::Agent. Called by Mojo internals on the UI thread. - void StartTracing(const std::string& config, - base::TimeTicks coordinator_time, - Agent::StartTracingCallback callback) override; - void StopAndFlush(tracing::mojom::RecorderPtr recorder) override; - void RequestClockSyncMarker( - const std::string& sync_id, - Agent::RequestClockSyncMarkerCallback callback) override; - void GetCategories(Agent::GetCategoriesCallback callback) override; - void RequestBufferStatus( - Agent::RequestBufferStatusCallback callback) override; - - void FindBattOrOnBackgroundThread(Agent::StartTracingCallback callback); - void StartTracingOnIOThread(const std::string& path, - Agent::StartTracingCallback callback); - void StopAndFlushOnIOThread(tracing::mojom::RecorderPtr recorder); - void RequestClockSyncMarkerOnIOThread( - const std::string& sync_id, - Agent::RequestClockSyncMarkerCallback callback); - - // Returns the path of a BattOr (e.g. /dev/ttyUSB0), or an empty string if - // none are found. - std::string GetBattOrPath(); - - // All interactions with the BattOrAgent (after construction) must happen on - // the IO thread. - std::unique_ptr<battor::BattOrAgent, BrowserThread::DeleteOnIOThread> - battor_agent_; - - Agent::StartTracingCallback start_tracing_callback_; - tracing::mojom::RecorderPtr recorder_; - base::TimeTicks request_clock_sync_marker_start_time_; - Agent::RequestClockSyncMarkerCallback request_clock_sync_marker_callback_; - - mojo::Binding<tracing::mojom::Agent> binding_; - - DISALLOW_COPY_AND_ASSIGN(PowerTracingAgent); -}; - -} // namespace content - -#endif // CONTENT_BROWSER_TRACING_POWER_TRACING_AGENT_H_
diff --git a/content/browser/tracing/tracing_controller_impl.cc b/content/browser/tracing/tracing_controller_impl.cc index ee4fa86..1fdbc22 100644 --- a/content/browser/tracing/tracing_controller_impl.cc +++ b/content/browser/tracing/tracing_controller_impl.cc
@@ -38,15 +38,6 @@ #include "services/tracing/public/mojom/constants.mojom.h" #include "v8/include/v8-version-string.h" -#if (defined(OS_POSIX) && defined(USE_UDEV)) || defined(OS_WIN) || \ - defined(OS_MACOSX) -#define ENABLE_POWER_TRACING -#endif - -#if defined(ENABLE_POWER_TRACING) -#include "content/browser/tracing/power_tracing_agent.h" -#endif - #if defined(OS_CHROMEOS) #include "chromeos/dbus/dbus_thread_manager.h" #include "chromeos/dbus/debug_daemon_client.h" @@ -140,11 +131,6 @@ content::ServiceManagerConnection::GetForProcess()->GetConnector(); connector->BindInterface(tracing::mojom::kServiceName, &coordinator_); -// Register tracing agents. -#if defined(ENABLE_POWER_TRACING) - agents_.push_back(std::make_unique<PowerTracingAgent>(connector)); -#endif - #if defined(OS_CHROMEOS) agents_.push_back(std::make_unique<CrOSTracingAgent>(connector)); #elif defined(CAST_TRACING_AGENT)
diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java index e0e8421f..8b23dd6a 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java +++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessLauncherHelperImpl.java
@@ -137,7 +137,8 @@ sLauncherByPid.put(pid, ChildProcessLauncherHelperImpl.this); if (mRanking != null) { mRanking.addConnection(connection, false /* foreground */, - 1 /* frameDepth */, ChildProcessImportance.MODERATE); + 1 /* frameDepth */, false /* intersectsViewport */, + ChildProcessImportance.MODERATE); } // If the connection fails and pid == 0, the Java-side cleanup was already @@ -435,7 +436,8 @@ @CalledByNative private void setPriority(int pid, boolean foreground, long frameDepth, - boolean boostForPendingViews, @ChildProcessImportance int importance) { + boolean intersectsViewport, boolean boostForPendingViews, + @ChildProcessImportance int importance) { assert LauncherThread.runningOnLauncherThread(); assert mLauncher.getPid() == pid; if (getByPid(pid) == null) { @@ -453,7 +455,7 @@ int newEffectiveImportance; if ((foreground && frameDepth == 0) || importance == ChildProcessImportance.IMPORTANT) { newEffectiveImportance = ChildProcessImportance.IMPORTANT; - } else if ((foreground && frameDepth > 0) || boostForPendingViews + } else if ((foreground && frameDepth > 0 && intersectsViewport) || boostForPendingViews || importance == ChildProcessImportance.MODERATE) { newEffectiveImportance = ChildProcessImportance.MODERATE; } else { @@ -489,7 +491,8 @@ } if (mRanking != null) { - mRanking.updateConnection(connection, foreground, frameDepth, importance); + mRanking.updateConnection( + connection, foreground, frameDepth, intersectsViewport, importance); } if (mEffectiveImportance != newEffectiveImportance) {
diff --git a/content/public/android/java/src/org/chromium/content/browser/ChildProcessRanking.java b/content/public/android/java/src/org/chromium/content/browser/ChildProcessRanking.java index 0f5512a..d5176fd 100644 --- a/content/public/android/java/src/org/chromium/content/browser/ChildProcessRanking.java +++ b/content/public/android/java/src/org/chromium/content/browser/ChildProcessRanking.java
@@ -20,14 +20,17 @@ // Info for ranking a connection. public boolean foreground; public long frameDepth; + public boolean intersectsViewport; @ChildProcessImportance public int importance; public ConnectionWithRank(ChildProcessConnection connection, boolean foreground, - long frameDepth, @ChildProcessImportance int importance) { + long frameDepth, boolean intersectsViewport, + @ChildProcessImportance int importance) { this.connection = connection; this.foreground = foreground; this.frameDepth = frameDepth; + this.intersectsViewport = intersectsViewport; this.importance = importance; } } @@ -50,6 +53,7 @@ // Ranking order: // * foreground or ChildProcessImportance.IMPORTANT // * ChildProcessImportance.MODERATE + // * intersectsViewport // * frameDepth (lower value is higher rank) // Note boostForPendingViews is not used for ranking. @@ -72,6 +76,12 @@ return 1; } + if (o1.intersectsViewport && !o2.intersectsViewport) { + return -1; + } else if (!o1.intersectsViewport && o2.intersectsViewport) { + return 1; + } + return (int) (o1.frameDepth - o2.frameDepth); } } @@ -88,11 +98,12 @@ } public void addConnection(ChildProcessConnection connection, boolean foreground, - long frameDepth, @ChildProcessImportance int importance) { + long frameDepth, boolean intersectsViewport, @ChildProcessImportance int importance) { assert connection != null; assert indexOf(connection) == -1; assert mSize < mRankings.length; - mRankings[mSize] = new ConnectionWithRank(connection, foreground, frameDepth, importance); + mRankings[mSize] = new ConnectionWithRank( + connection, foreground, frameDepth, intersectsViewport, importance); mSize++; sort(); } @@ -110,7 +121,7 @@ } public void updateConnection(ChildProcessConnection connection, boolean foreground, - long frameDepth, @ChildProcessImportance int importance) { + long frameDepth, boolean intersectsViewport, @ChildProcessImportance int importance) { assert connection != null; assert mSize > 0; int i = indexOf(connection); @@ -118,6 +129,7 @@ mRankings[i].foreground = foreground; mRankings[i].frameDepth = frameDepth; + mRankings[i].intersectsViewport = intersectsViewport; mRankings[i].importance = importance; sort(); }
diff --git a/content/public/android/junit/src/org/chromium/content/browser/ChildProcessRankingTest.java b/content/public/android/junit/src/org/chromium/content/browser/ChildProcessRankingTest.java index 18ebf92e..aeb9a4d 100644 --- a/content/public/android/junit/src/org/chromium/content/browser/ChildProcessRankingTest.java +++ b/content/public/android/junit/src/org/chromium/content/browser/ChildProcessRankingTest.java
@@ -45,14 +45,14 @@ ChildProcessRanking ranking = new ChildProcessRanking(4); // Insert in lowest ranked to highest ranked order. - ranking.addConnection( - c1, false /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c2, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c3, true /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c4, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.addConnection(c1, false /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c2, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c3, true /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c4, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); assertRankingAndRemoveAll(ranking, new ChildProcessConnection[] {c4, c3, c2, c1}); } @@ -67,14 +67,14 @@ ChildProcessRanking ranking = new ChildProcessRanking(4); // Insert in lowest ranked to highest ranked order. - ranking.addConnection( - c1, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c2, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.MODERATE); - ranking.addConnection( - c3, false /* foreground */, 1 /* frameDepth */, ChildProcessImportance.IMPORTANT); - ranking.addConnection( - c4, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.IMPORTANT); + ranking.addConnection(c1, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c2, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.MODERATE); + ranking.addConnection(c3, false /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.IMPORTANT); + ranking.addConnection(c4, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.IMPORTANT); assertRankingAndRemoveAll(ranking, new ChildProcessConnection[] {c4, c3, c2, c1}); } @@ -89,25 +89,25 @@ ChildProcessRanking ranking = new ChildProcessRanking(4); // c1,2 are in one tab, and c3,4 are in second tab. - ranking.addConnection( - c1, true /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c2, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c3, false /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c4, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.addConnection(c1, true /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c2, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c3, false /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c4, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); Assert.assertEquals(c3, ranking.getLowestRankedConnection()); // Switch from tab c1,2 to tab c3,c4. - ranking.updateConnection( - c1, false /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c2, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c3, true /* foreground */, 1 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c4, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c1, false /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c2, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c3, true /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c4, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); assertRankingAndRemoveAll(ranking, new ChildProcessConnection[] {c4, c3, c2, c1}); } @@ -122,31 +122,50 @@ ChildProcessRanking ranking = new ChildProcessRanking(4); // Each connection is its own tab. - ranking.addConnection( - c1, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c2, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c3, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.addConnection( - c4, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.addConnection(c1, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c2, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c3, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c4, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); // Tab through each connection. - ranking.updateConnection( - c2, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c1, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c2, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c1, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c3, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c2, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c3, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c2, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c4, true /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); - ranking.updateConnection( - c3, false /* foreground */, 0 /* frameDepth */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c4, true /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.updateConnection(c3, false /* foreground */, 0 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); assertRankingAndRemoveAll(ranking, new ChildProcessConnection[] {c4, c3, c2, c1}); } + + @Test + public void testIntersectsViewport() { + ChildProcessConnection c1 = createConnection(); + ChildProcessConnection c2 = createConnection(); + ChildProcessConnection c3 = createConnection(); + + ChildProcessRanking ranking = new ChildProcessRanking(4); + + // Insert in lowest ranked to highest ranked order. + ranking.addConnection(c1, true /* foreground */, 1 /* frameDepth */, + false /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c2, true /* foreground */, 1 /* frameDepth */, + true /* intersectsViewport */, ChildProcessImportance.NORMAL); + ranking.addConnection(c3, true /* foreground */, 0 /* frameDepth */, + true /* intersectsViewport */, ChildProcessImportance.NORMAL); + + assertRankingAndRemoveAll(ranking, new ChildProcessConnection[] {c3, c2, c1}); + } }
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h index 19d9c106..2f0a51e 100644 --- a/content/public/browser/render_process_host.h +++ b/content/public/browser/render_process_host.h
@@ -76,6 +76,7 @@ struct Priority { bool is_hidden; unsigned int frame_depth; + bool intersects_viewport; #if defined(OS_ANDROID) ChildProcessImportance importance; #endif @@ -149,6 +150,9 @@ // Get computed frame depth from PriorityClients. virtual unsigned int GetFrameDepth() const = 0; + // Get computed viewport intersection state from PriorityClients. + virtual bool GetIntersectsViewport() const = 0; + virtual RendererAudioOutputStreamFactoryContext* GetRendererAudioOutputStreamFactoryContext() = 0;
diff --git a/content/public/browser/speech_recognition_session_config.h b/content/public/browser/speech_recognition_session_config.h index b42c1cf..2aeff39 100644 --- a/content/public/browser/speech_recognition_session_config.h +++ b/content/public/browser/speech_recognition_session_config.h
@@ -14,7 +14,6 @@ #include "content/common/content_export.h" #include "content/public/browser/speech_recognition_session_context.h" #include "content/public/browser/speech_recognition_session_preamble.h" -#include "net/url_request/url_request_context_getter.h" #include "services/network/public/cpp/shared_url_loader_factory.h" #include "third_party/blink/public/mojom/speech/speech_recognition_grammar.mojom.h" #include "url/origin.h" @@ -30,6 +29,9 @@ ~SpeechRecognitionSessionConfig(); std::string language; + // Accept language header. If |language| is empty, used to get a language + // instead. + std::string accept_language; std::vector<blink::mojom::SpeechRecognitionGrammar> grammars; url::Origin origin; bool filter_profanities; @@ -41,9 +43,6 @@ scoped_refptr<SpeechRecognitionSessionPreamble> preamble; SpeechRecognitionSessionContext initial_context; scoped_refptr<network::SharedURLLoaderFactory> shared_url_loader_factory; - // TODO(mmenke): Remove this dependency. - scoped_refptr<net::URLRequestContextGetter> - deprecated_url_request_context_getter; base::WeakPtr<SpeechRecognitionEventListener> event_listener; };
diff --git a/content/public/test/mock_render_process_host.cc b/content/public/test/mock_render_process_host.cc index 95d09af..499fe2db 100644 --- a/content/public/test/mock_render_process_host.cc +++ b/content/public/test/mock_render_process_host.cc
@@ -168,6 +168,11 @@ return 0u; } +bool MockRenderProcessHost::GetIntersectsViewport() const { + NOTIMPLEMENTED(); + return true; +} + bool MockRenderProcessHost::IsForGuestsOnly() const { return is_for_guests_only_; }
diff --git a/content/public/test/mock_render_process_host.h b/content/public/test/mock_render_process_host.h index acfb2cc..42dbd58 100644 --- a/content/public/test/mock_render_process_host.h +++ b/content/public/test/mock_render_process_host.h
@@ -74,6 +74,7 @@ void UpdateClientPriority(PriorityClient* client) override; int VisibleClientCount() const override; unsigned int GetFrameDepth() const override; + bool GetIntersectsViewport() const override; bool IsForGuestsOnly() const override; RendererAudioOutputStreamFactoryContext* GetRendererAudioOutputStreamFactoryContext() override;
diff --git a/content/public/test/nested_message_pump_android.h b/content/public/test/nested_message_pump_android.h index 4f5cebe..f1a7905 100644 --- a/content/public/test/nested_message_pump_android.h +++ b/content/public/test/nested_message_pump_android.h
@@ -17,6 +17,7 @@ class NestedMessagePumpAndroid : public base::MessagePumpForUI { public: NestedMessagePumpAndroid(); + ~NestedMessagePumpAndroid() override; void Run(Delegate* delegate) override; void Quit() override; @@ -24,9 +25,6 @@ void ScheduleDelayedWork(const base::TimeTicks& delayed_work_time) override; void Attach(Delegate* delegate) override; - protected: - ~NestedMessagePumpAndroid() override; - private: // We may make recursive calls to Run, so we save state that needs to be // separate between them in this structure type.
diff --git a/content/renderer/gpu/gpu_benchmarking_extension.cc b/content/renderer/gpu/gpu_benchmarking_extension.cc index 0b2b903..f9fc34d6 100644 --- a/content/renderer/gpu/gpu_benchmarking_extension.cc +++ b/content/renderer/gpu/gpu_benchmarking_extension.cc
@@ -1085,14 +1085,31 @@ RenderThreadImpl::current()->GetGpuChannel(); if (!gpu_channel) return; + const gpu::GpuFeatureInfo& gpu_feature_info = + gpu_channel->gpu_feature_info(); const std::vector<int32_t>& workarounds = - gpu_channel->gpu_feature_info().enabled_gpu_driver_bug_workarounds; + gpu_feature_info.enabled_gpu_driver_bug_workarounds; for (int32_t workaround : workarounds) { gpu_driver_bug_workarounds.push_back( gpu::GpuDriverBugWorkaroundTypeToString( static_cast<gpu::GpuDriverBugWorkaroundType>(workaround))); } + // This code must be kept in sync with compositor_util's + // GetDriverBugWorkaroundsImpl. + for (auto ext : base::SplitString(gpu_feature_info.disabled_extensions, + " ", + base::TRIM_WHITESPACE, + base::SPLIT_WANT_NONEMPTY)) { + gpu_driver_bug_workarounds.push_back("disabled_extension_" + ext); + } + for (auto ext : base::SplitString(gpu_feature_info.disabled_webgl_extensions, + " ", + base::TRIM_WHITESPACE, + base::SPLIT_WANT_NONEMPTY)) { + gpu_driver_bug_workarounds.push_back("disabled_webgl_extension_" + ext); + } + v8::Local<v8::Value> result; if (gin::TryConvertToV8(args->isolate(), gpu_driver_bug_workarounds, &result)) args->Return(result);
diff --git a/content/renderer/media/stream/media_stream_constraints_util_sets_unittest.cc b/content/renderer/media/stream/media_stream_constraints_util_sets_unittest.cc index 62f74c12..cd8eb4a 100644 --- a/content/renderer/media/stream/media_stream_constraints_util_sets_unittest.cc +++ b/content/renderer/media/stream/media_stream_constraints_util_sets_unittest.cc
@@ -792,7 +792,7 @@ // Ideal height. { factory_.Reset(); - factory_.basic().height.SetIdeal(std::numeric_limits<long>::max()); + factory_.basic().height.SetIdeal(std::numeric_limits<int32_t>::max()); Point point = SelectClosestPointToIdeal(set); EXPECT_POINT_EQ( Point(ResolutionSet::kMaxDimension, ResolutionSet::kMaxDimension), @@ -805,7 +805,7 @@ // Ideal width. { factory_.Reset(); - factory_.basic().width.SetIdeal(std::numeric_limits<long>::max()); + factory_.basic().width.SetIdeal(std::numeric_limits<int32_t>::max()); Point point = SelectClosestPointToIdeal(set); EXPECT_POINT_EQ(Point(ResolutionSet::kMaxDimension / kDefaultAspectRatio, ResolutionSet::kMaxDimension),
diff --git a/content/renderer/media/stream/media_stream_constraints_util_video_device.cc b/content/renderer/media/stream/media_stream_constraints_util_video_device.cc index 66c6cab..0062de4 100644 --- a/content/renderer/media/stream/media_stream_constraints_util_video_device.cc +++ b/content/renderer/media/stream/media_stream_constraints_util_video_device.cc
@@ -204,19 +204,19 @@ const blink::LongConstraint& width_constraint, double* min_source_aspect_ratio, double* max_source_aspect_ratio) { - long min_height = constrained_format.MinHeight(); + int32_t min_height = constrained_format.MinHeight(); if (ConstraintHasMin(height_constraint)) min_height = std::max(min_height, ConstraintMin(height_constraint)); - long max_height = constrained_format.MaxHeight(); + int32_t max_height = constrained_format.MaxHeight(); if (ConstraintHasMax(height_constraint)) max_height = std::min(max_height, ConstraintMax(height_constraint)); - long min_width = constrained_format.MinWidth(); + int32_t min_width = constrained_format.MinWidth(); if (ConstraintHasMin(width_constraint)) min_width = std::max(min_width, ConstraintMin(width_constraint)); - long max_width = constrained_format.MaxWidth(); + int32_t max_width = constrained_format.MaxWidth(); if (ConstraintHasMax(width_constraint)) max_width = std::min(max_width, ConstraintMax(width_constraint));
diff --git a/content/renderer/media/stream/webmediaplayer_ms.cc b/content/renderer/media/stream/webmediaplayer_ms.cc index 2d13eb7..02cd78b5 100644 --- a/content/renderer/media/stream/webmediaplayer_ms.cc +++ b/content/renderer/media/stream/webmediaplayer_ms.cc
@@ -819,13 +819,13 @@ return compositor_->dropped_frame_count(); } -size_t WebMediaPlayerMS::AudioDecodedByteCount() const { +uint64_t WebMediaPlayerMS::AudioDecodedByteCount() const { DCHECK(thread_checker_.CalledOnValidThread()); NOTIMPLEMENTED(); return 0; } -size_t WebMediaPlayerMS::VideoDecodedByteCount() const { +uint64_t WebMediaPlayerMS::VideoDecodedByteCount() const { DCHECK(thread_checker_.CalledOnValidThread()); NOTIMPLEMENTED(); return 0;
diff --git a/content/renderer/media/stream/webmediaplayer_ms.h b/content/renderer/media/stream/webmediaplayer_ms.h index 4af7956..3e2d6f93 100644 --- a/content/renderer/media/stream/webmediaplayer_ms.h +++ b/content/renderer/media/stream/webmediaplayer_ms.h
@@ -151,8 +151,8 @@ unsigned DecodedFrameCount() const override; unsigned DroppedFrameCount() const override; - size_t AudioDecodedByteCount() const override; - size_t VideoDecodedByteCount() const override; + uint64_t AudioDecodedByteCount() const override; + uint64_t VideoDecodedByteCount() const override; // WebMediaPlayerDelegate::Observer implementation. void OnFrameHidden() override;
diff --git a/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc b/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc index 6a05c12..aab767c 100644 --- a/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc +++ b/content/renderer/media_capture_from_element/html_video_element_capturer_source_unittest.cc
@@ -81,8 +81,8 @@ unsigned DecodedFrameCount() const override { return 0; } unsigned DroppedFrameCount() const override { return 0; } unsigned CorruptedFrameCount() const override { return 0; } - size_t AudioDecodedByteCount() const override { return 0; } - size_t VideoDecodedByteCount() const override { return 0; } + uint64_t AudioDecodedByteCount() const override { return 0; } + uint64_t VideoDecodedByteCount() const override { return 0; } void Paint(cc::PaintCanvas* canvas, const blink::WebRect& paint_rectangle,
diff --git a/content/renderer/pepper/ppb_graphics_3d_impl.cc b/content/renderer/pepper/ppb_graphics_3d_impl.cc index 3acd940..4e2717b 100644 --- a/content/renderer/pepper/ppb_graphics_3d_impl.cc +++ b/content/renderer/pepper/ppb_graphics_3d_impl.cc
@@ -125,11 +125,6 @@ } void PPB_Graphics3D_Impl::TakeFrontBuffer() { - if (!taken_front_buffer_.IsZero()) { - DLOG(ERROR) - << "TakeFrontBuffer should only be called once before DoSwapBuffers"; - return; - } taken_front_buffer_ = GenerateMailbox(); command_buffer_->TakeFrontBuffer(taken_front_buffer_); } @@ -195,7 +190,6 @@ viz::TransferableResource::MakeGLOverlay(taken_front_buffer_, GL_LINEAR, target, sync_token, size, is_overlay_candidate); - taken_front_buffer_.SetZero(); HostGlobals::Get() ->GetInstance(pp_instance()) ->CommitTransferableResource(resource);
diff --git a/content/shell/android/BUILD.gn b/content/shell/android/BUILD.gn index 20e35f2..88350014 100644 --- a/content/shell/android/BUILD.gn +++ b/content/shell/android/BUILD.gn
@@ -172,10 +172,13 @@ ":content_shell_assets", ":content_shell_java", "//base:base_java", + "//base:base_java_test_support", + "//components/crash/android:java", "//content/public/android:content_java", "//content/public/test/android:layouttest_java_support", "//media/capture/video/android:capture_java", "//net/android:net_java", + "//services/shape_detection:shape_detection_java", "//third_party/mesa:osmesa", "//ui/android:ui_java", ]
diff --git a/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java b/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java index d36a343..335cdf0 100644 --- a/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java +++ b/content/shell/android/java/src/org/chromium/content_shell/ShellManager.java
@@ -91,7 +91,10 @@ @SuppressWarnings("unused") @CalledByNative private Object createShell(long nativeShellPtr) { - assert mContentViewRenderView != null; + if (mContentViewRenderView == null) { + mContentViewRenderView = new ContentViewRenderView(getContext()); + mContentViewRenderView.onNativeLibraryLoaded(mWindow); + } LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); Shell shellView = (Shell) inflater.inflate(R.layout.shell_view, null);
diff --git a/content/shell/app/shell_main_delegate.cc b/content/shell/app/shell_main_delegate.cc index 0ec1525..b1e0952 100644 --- a/content/shell/app/shell_main_delegate.cc +++ b/content/shell/app/shell_main_delegate.cc
@@ -64,6 +64,7 @@ #if defined(OS_ANDROID) #include "base/android/apk_assets.h" #include "base/posix/global_descriptors.h" +#include "content/public/test/nested_message_pump_android.h" #include "content/shell/android/shell_descriptors.h" #endif @@ -93,6 +94,12 @@ namespace { +#if defined(OS_ANDROID) +std::unique_ptr<base::MessagePump> CreateMessagePumpForUI() { + return std::make_unique<content::NestedMessagePumpAndroid>(); +} +#endif + #if !defined(OS_FUCHSIA) base::LazyInstance<content::ShellCrashReporterClient>::Leaky g_shell_crash_client = LAZY_INSTANCE_INITIALIZER; @@ -408,7 +415,15 @@ } void ShellMainDelegate::PreContentInitialization() { -#if defined(OS_MACOSX) +#if defined(OS_ANDROID) + base::CommandLine& command_line = *base::CommandLine::ForCurrentProcess(); + if (command_line.HasSwitch(switches::kRunWebTests) || + command_line.HasSwitch(switches::kCheckLayoutTestSysDeps)) { + bool success = + base::MessageLoop::InitMessagePumpForUIFactory(&CreateMessagePumpForUI); + CHECK(success) << "Unable to initialize the message pump for Android"; + } +#elif defined(OS_MACOSX) RegisterShellCrApp(); #endif }
diff --git a/content/shell/browser/layout_test/blink_test_controller.cc b/content/shell/browser/layout_test/blink_test_controller.cc index 2c9aae28..27c3b6e 100644 --- a/content/shell/browser/layout_test/blink_test_controller.cc +++ b/content/shell/browser/layout_test/blink_test_controller.cc
@@ -399,14 +399,6 @@ LoadDevToolsJSTest(); else main_window_->LoadURL(test_url_); - -#if defined(OS_ANDROID) - // On Android, the browser main loop runs on the UI thread so the view - // hierarchy never gets to layout since the UI thread is blocked. This call - // simulates a layout and ensures our RenderWidget hierarchy gets correctly - // sized. - main_window_->SizeTo(initial_size_); -#endif } else { #if defined(OS_MACOSX) // Shell::SizeTo is not implemented on all platforms.
diff --git a/content/shell/browser/layout_test/layout_test_browser_main.cc b/content/shell/browser/layout_test/layout_test_browser_main.cc index a4c6d1a..ded9341 100644 --- a/content/shell/browser/layout_test/layout_test_browser_main.cc +++ b/content/shell/browser/layout_test/layout_test_browser_main.cc
@@ -59,6 +59,7 @@ // offer a blocking Run() method. For layout tests, use a nested loop // together with a base::RunLoop so it can block until a QuitClosure. base::RunLoop run_loop; + content::Shell::SetMainMessageLoopQuitClosure(run_loop.QuitClosure()); run_loop.Run(); #else main_runner->Run();
diff --git a/content/shell/browser/layout_test/scoped_android_configuration.cc b/content/shell/browser/layout_test/scoped_android_configuration.cc index b525217..99504d4 100644 --- a/content/shell/browser/layout_test/scoped_android_configuration.cc +++ b/content/shell/browser/layout_test/scoped_android_configuration.cc
@@ -18,7 +18,6 @@ #include "base/test/android/url_utils.h" #include "base/test/test_support_android.h" #include "content/public/browser/browser_thread.h" -#include "content/public/test/nested_message_pump_android.h" #include "content/shell/browser/layout_test/blink_test_controller.h" #include "content/shell/common/layout_test/layout_test_switches.h" #include "content/shell/common/shell_switches.h" @@ -35,10 +34,6 @@ namespace { -std::unique_ptr<base::MessagePump> CreateMessagePumpForUI() { - return std::unique_ptr<base::MessagePump>(new NestedMessagePumpAndroid()); -} - void ConnectCompleted(const base::Closure& socket_connected, int rv) { LOG_IF(FATAL, net::OK != rv) << " Failed to redirect to socket: " << net::ErrorToString(rv); @@ -129,11 +124,6 @@ ScopedAndroidConfiguration::ScopedAndroidConfiguration() : sockets_() { base::InitAndroidTestPaths(base::android::GetIsolatedTestRoot()); - - bool success = - base::MessageLoop::InitMessagePumpForUIFactory(&CreateMessagePumpForUI); - LOG_IF(FATAL, !success) - << "Unable to initialize the message pump for Android."; } ScopedAndroidConfiguration::~ScopedAndroidConfiguration() = default;
diff --git a/content/shell/browser/shell.cc b/content/shell/browser/shell.cc index 49643052..3ccdb5e 100644 --- a/content/shell/browser/shell.cc +++ b/content/shell/browser/shell.cc
@@ -187,6 +187,7 @@ } void Shell::QuitMainMessageLoopForTesting() { + DCHECK(*g_quit_main_message_loop); std::move(*g_quit_main_message_loop).Run(); }
diff --git a/content/test/data/frame_tree/page_with_janky_frame.html b/content/test/data/frame_tree/page_with_janky_frame.html new file mode 100644 index 0000000..25c8737b --- /dev/null +++ b/content/test/data/frame_tree/page_with_janky_frame.html
@@ -0,0 +1,21 @@ +<!DOCTYPE html> +<style> +.container { + touch-action: pan-y; +} +iframe { + position:absolute; + top: 50px; + left: 50px; + width: 100px; + height: 100px; +} +</style> +<html> +<body> +<div class="container"> + <iframe src="/cross-site/baz.com/page_with_touch_start_janking_main_thread.html"></iframe> +</div> +This page contains a positioned cross-origin iframe. +</body> +</html>
diff --git a/content/test/data/page_with_touch_start_janking_main_thread.html b/content/test/data/page_with_touch_start_janking_main_thread.html new file mode 100644 index 0000000..7480d1fd --- /dev/null +++ b/content/test/data/page_with_touch_start_janking_main_thread.html
@@ -0,0 +1,19 @@ +<html> +<style> +#janktest{ + width: 1000px; + height: 10000px; +} +</style> +<body onload='setup()'> + <div id="janktest"></div> +</body> +<script> +function setup() { + janktest.ontouchstart = function() { + var end = performance.now() + 1200; + while (performance.now() < end) ; + }; +} +</script> +</html>
diff --git a/content/test/gpu/gpu_tests/gpu_process_integration_test.py b/content/test/gpu/gpu_tests/gpu_process_integration_test.py index a252a49..9c5a6f6 100644 --- a/content/test/gpu/gpu_tests/gpu_process_integration_test.py +++ b/content/test/gpu/gpu_tests/gpu_process_integration_test.py
@@ -167,6 +167,17 @@ (sys.platform.startswith('linux') and not self._RunningOnAndroid())) + @staticmethod + def _Filterer(workaround): + # Filter all entries starting with "disabled_extension_" and + # "disabled_webgl_extension_", as these are synthetic entries + # added to make it easier to read the logs. + banned_prefixes = ['disabled_extension_', 'disabled_webgl_extension_'] + for p in banned_prefixes: + if workaround.startswith(p): + return False + return True + def _CompareAndCaptureDriverBugWorkarounds(self): tab = self.tab if not tab.EvaluateJavaScript('chrome.gpuBenchmarking.hasGpuProcess()'): @@ -175,14 +186,16 @@ if not tab.EvaluateJavaScript('chrome.gpuBenchmarking.hasGpuChannel()'): self.fail('No GPU channel detected') - browser_list = tab.EvaluateJavaScript('GetDriverBugWorkarounds()') - gpu_list = tab.EvaluateJavaScript( - 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()') + browser_list = [ + x for x in tab.EvaluateJavaScript('GetDriverBugWorkarounds()') + if self._Filterer(x)] + gpu_list = [ + x for x in tab.EvaluateJavaScript( + 'chrome.gpuBenchmarking.getGpuDriverBugWorkarounds()') + if self._Filterer(x)] diff = set(browser_list).symmetric_difference(set(gpu_list)) if len(diff) > 0: - print 'Test failed. Printing page contents:' - print tab.EvaluateJavaScript('document.body.innerHTML') self.fail('Browser and GPU process list of driver bug' 'workarounds are not equal: %s != %s, diff: %s' % (browser_list, gpu_list, list(diff)))
diff --git a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py index 6785a404..58ee341 100644 --- a/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
@@ -29,13 +29,15 @@ ['win', 'mac', 'linux']) self.Skip('WebglExtension_WEBGL_compressed_texture_s3tc_srgb', ['win', 'mac', 'linux']) - self.Skip('WebglExtension_EXT_disjoint_timer_query_webgl2', bug=808744) self.Skip('WebglExtension_WEBGL_multiview', ['mac', 'linux', 'android'], bug=864524) - # The multiview extension is only expected to be supported through ANGLE. self.Skip('WebglExtension_WEBGL_multiview', ['win', 'no_passthrough'], bug=864524) + self.Skip('WebglExtension_EXT_disjoint_timer_query_webgl2', + ['android'], bug=808744) + self.Fail('WebglExtension_EXT_disjoint_timer_query_webgl2', + ['linux', 'intel'], bug=867675) # ======================== # Conformance expectations
diff --git a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py index 3e6a144..16eb9d60 100644 --- a/content/test/gpu/gpu_tests/webgl_conformance_expectations.py +++ b/content/test/gpu/gpu_tests/webgl_conformance_expectations.py
@@ -55,15 +55,16 @@ ['win', 'mac', 'linux']) self.Skip('WebglExtension_WEBGL_compressed_texture_s3tc_srgb', ['win', 'mac', 'linux', 'android']) - self.Skip('WebglExtension_EXT_disjoint_timer_query', bug=808744) + self.Skip('WebglExtension_EXT_disjoint_timer_query', + ['android'], bug=808744) # Extensions not available under D3D9 self.Fail('WebglExtension_EXT_sRGB', ['win', 'd3d9']) - + self.Fail('WebglExtension_EXT_disjoint_timer_query', + ['win', 'd3d9'], bug=867718) self.Fail('WebglExtension_WEBGL_depth_texture', ['win', 'amd', 'd3d9']) - self.Fail('WebglExtension_WEBGL_draw_buffers', ['win', 'd3d9'])
diff --git a/device/BUILD.gn b/device/BUILD.gn index 43e791c..30667c5 100644 --- a/device/BUILD.gn +++ b/device/BUILD.gn
@@ -64,6 +64,7 @@ "bluetooth/test/test_bluetooth_local_gatt_service_delegate.cc", "bluetooth/test/test_bluetooth_local_gatt_service_delegate.h", "bluetooth/uribeacon/uri_encoder_unittest.cc", + "fido/attestation_statement_formats_unittest.cc", "fido/ble/fido_ble_connection_unittest.cc", "fido/ble/fido_ble_device_unittest.cc", "fido/ble/fido_ble_frames_unittest.cc",
diff --git a/device/fido/BUILD.gn b/device/fido/BUILD.gn index ac443f8a..2ebbb147 100644 --- a/device/fido/BUILD.gn +++ b/device/fido/BUILD.gn
@@ -11,6 +11,8 @@ "attestation_object.h", "attestation_statement.cc", "attestation_statement.h", + "attestation_statement_formats.cc", + "attestation_statement_formats.h", "attested_credential_data.cc", "attested_credential_data.h", "authenticator_data.cc", @@ -57,8 +59,6 @@ "device_response_converter.h", "ec_public_key.cc", "ec_public_key.h", - "fido_attestation_statement.cc", - "fido_attestation_statement.h", "fido_authenticator.h", "fido_constants.cc", "fido_constants.h",
diff --git a/device/fido/fido_attestation_statement.cc b/device/fido/attestation_statement_formats.cc similarity index 76% rename from device/fido/fido_attestation_statement.cc rename to device/fido/attestation_statement_formats.cc index 04dcb80..e3f1969 100644 --- a/device/fido/fido_attestation_statement.cc +++ b/device/fido/attestation_statement_formats.cc
@@ -2,12 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "device/fido/fido_attestation_statement.h" +#include "device/fido/attestation_statement_formats.h" #include <utility> #include "base/logging.h" -#include "device/fido/fido_constants.h" #include "device/fido/fido_parsing_utils.h" #include "third_party/boringssl/src/include/openssl/bytestring.h" @@ -15,6 +14,8 @@ namespace { constexpr char kFidoFormatName[] = "fido-u2f"; +constexpr char kPackedAttestationFormat[] = "packed"; +constexpr char kAlgorithmKey[] = "alg"; constexpr char kSignatureKey[] = "sig"; constexpr char kX509CertKey[] = "x5c"; @@ -148,4 +149,48 @@ return false; } +PackedAttestationStatement::PackedAttestationStatement( + CoseAlgorithmIdentifier algorithm, + std::vector<uint8_t> signature, + std::vector<std::vector<uint8_t>> x509_certificates) + : AttestationStatement(kPackedAttestationFormat), + algorithm_(algorithm), + signature_(signature), + x509_certificates_(std::move(x509_certificates)) { + DCHECK(!signature_.empty()); +} + +PackedAttestationStatement::~PackedAttestationStatement() = default; + +cbor::CBORValue::MapValue PackedAttestationStatement::GetAsCBORMap() const { + cbor::CBORValue::MapValue attestation_statement_map; + // alg + attestation_statement_map[cbor::CBORValue(kAlgorithmKey)] = + cbor::CBORValue(static_cast<int>(algorithm_)); + // sig + attestation_statement_map[cbor::CBORValue(kSignatureKey)] = + cbor::CBORValue(signature_); + // x5c (optional) + if (!x509_certificates_.empty()) { + std::vector<cbor::CBORValue> certificate_array; + for (const auto& cert : x509_certificates_) { + certificate_array.push_back(cbor::CBORValue(cert)); + } + attestation_statement_map[cbor::CBORValue(kX509CertKey)] = + cbor::CBORValue(std::move(certificate_array)); + } + return attestation_statement_map; +} + +bool PackedAttestationStatement:: + IsAttestationCertificateInappropriatelyIdentifying() { + for (const auto& der_bytes : x509_certificates_) { + if (IsCertificateInappropriatelyIdentifying(der_bytes)) { + return true; + } + } + + return false; +} + } // namespace device
diff --git a/device/fido/attestation_statement_formats.h b/device/fido/attestation_statement_formats.h new file mode 100644 index 0000000..fb16d88c --- /dev/null +++ b/device/fido/attestation_statement_formats.h
@@ -0,0 +1,69 @@ +// Copyright 2017 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. + +#ifndef DEVICE_FIDO_ATTESTATION_STATEMENT_FORMATS_H_ +#define DEVICE_FIDO_ATTESTATION_STATEMENT_FORMATS_H_ + +#include <stdint.h> +#include <memory> +#include <vector> + +#include "base/component_export.h" +#include "base/containers/span.h" +#include "base/macros.h" +#include "components/cbor/cbor_values.h" +#include "device/fido/attestation_statement.h" +#include "device/fido/fido_constants.h" + +namespace device { + +// https://www.w3.org/TR/2017/WD-webauthn-20170505/#fido-u2f-attestation +class COMPONENT_EXPORT(DEVICE_FIDO) FidoAttestationStatement + : public AttestationStatement { + public: + static std::unique_ptr<FidoAttestationStatement> + CreateFromU2fRegisterResponse(base::span<const uint8_t> u2f_data); + + FidoAttestationStatement(std::vector<uint8_t> signature, + std::vector<std::vector<uint8_t>> x509_certificates); + ~FidoAttestationStatement() override; + + // AttestationStatement + cbor::CBORValue::MapValue GetAsCBORMap() const override; + bool IsAttestationCertificateInappropriatelyIdentifying() override; + + private: + const std::vector<uint8_t> signature_; + const std::vector<std::vector<uint8_t>> x509_certificates_; + + DISALLOW_COPY_AND_ASSIGN(FidoAttestationStatement); +}; + +// Implements the "packed" attestation statement format from +// https://www.w3.org/TR/webauthn/#packed-attestation. +// +// It currently only supports the (optional) "x5c" field, but not "ecdaaKeyId" +// (see packedStmtFormat choices). +class COMPONENT_EXPORT(DEVICE_FIDO) PackedAttestationStatement + : public AttestationStatement { + public: + PackedAttestationStatement( + CoseAlgorithmIdentifier algorithm, + std::vector<uint8_t> signature, + std::vector<std::vector<uint8_t>> x509_certificates); + ~PackedAttestationStatement() override; + + // AttestationStatement + cbor::CBORValue::MapValue GetAsCBORMap() const override; + bool IsAttestationCertificateInappropriatelyIdentifying() override; + + private: + const CoseAlgorithmIdentifier algorithm_; + const std::vector<uint8_t> signature_; + const std::vector<std::vector<uint8_t>> x509_certificates_; +}; + +} // namespace device + +#endif // DEVICE_FIDO_ATTESTATION_STATEMENT_FORMATS_H_
diff --git a/device/fido/attestation_statement_formats_unittest.cc b/device/fido/attestation_statement_formats_unittest.cc new file mode 100644 index 0000000..d82969b3 --- /dev/null +++ b/device/fido/attestation_statement_formats_unittest.cc
@@ -0,0 +1,104 @@ +// Copyright 2018 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 <vector> + +#include "components/cbor/cbor_writer.h" +#include "device/fido/attestation_statement_formats.h" +#include "device/fido/fido_constants.h" +#include "device/fido/fido_parsing_utils.h" +#include "device/fido/fido_test_data.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace device { +namespace { + +// The signature part from test_data::kPackedAttestationStatementCBOR. +constexpr uint8_t kSignature[] = { + 0x30, 0x45, 0x02, 0x20, 0x32, 0x47, 0x79, 0xC6, 0x8F, 0x33, 0x80, 0x28, + 0x8A, 0x11, 0x97, 0xB6, 0x09, 0x5F, 0x7A, 0x6E, 0xB9, 0xB1, 0xB1, 0xC1, + 0x27, 0xF6, 0x6A, 0xE1, 0x2A, 0x99, 0xFE, 0x85, 0x32, 0xEC, 0x23, 0xB9, + 0x02, 0x21, 0x00, 0xE3, 0x95, 0x16, 0xAC, 0x4D, 0x61, 0xEE, 0x64, 0x04, + 0x4D, 0x50, 0xB4, 0x15, 0xA6, 0xA4, 0xD4, 0xD8, 0x4B, 0xA6, 0xD8, 0x95, + 0xCB, 0x5A, 0xB7, 0xA1, 0xAA, 0x7D, 0x08, 0x1D, 0xE3, 0x41, 0xFA, +}; + +// The certificates part from test_data::kPackedAttestationStatementCBOR. +constexpr uint8_t kCertificates[] = { + 0x30, 0x82, 0x02, 0x4A, 0x30, 0x82, 0x01, 0x32, 0xA0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x04, 0x04, 0x6C, 0x88, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, + 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x2E, + 0x31, 0x2C, 0x30, 0x2A, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x23, 0x59, + 0x75, 0x62, 0x69, 0x63, 0x6F, 0x20, 0x55, 0x32, 0x46, 0x20, 0x52, 0x6F, + 0x6F, 0x74, 0x20, 0x43, 0x41, 0x20, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6C, + 0x20, 0x34, 0x35, 0x37, 0x32, 0x30, 0x30, 0x36, 0x33, 0x31, 0x30, 0x20, + 0x17, 0x0D, 0x31, 0x34, 0x30, 0x38, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x5A, 0x18, 0x0F, 0x32, 0x30, 0x35, 0x30, 0x30, 0x39, 0x30, + 0x34, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x30, 0x2C, 0x31, 0x2A, + 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C, 0x21, 0x59, 0x75, 0x62, + 0x69, 0x63, 0x6F, 0x20, 0x55, 0x32, 0x46, 0x20, 0x45, 0x45, 0x20, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6C, 0x20, 0x32, 0x34, 0x39, 0x31, 0x38, 0x32, + 0x33, 0x32, 0x34, 0x37, 0x37, 0x30, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, + 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 0x86, 0x48, + 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x3C, 0xCA, 0xB9, + 0x2C, 0xCB, 0x97, 0x28, 0x7E, 0xE8, 0xE6, 0x39, 0x43, 0x7E, 0x21, 0xFC, + 0xD6, 0xB6, 0xF1, 0x65, 0xB2, 0xD5, 0xA3, 0xF3, 0xDB, 0x13, 0x1D, 0x31, + 0xC1, 0x6B, 0x74, 0x2B, 0xB4, 0x76, 0xD8, 0xD1, 0xE9, 0x90, 0x80, 0xEB, + 0x54, 0x6C, 0x9B, 0xBD, 0xF5, 0x56, 0xE6, 0x21, 0x0F, 0xD4, 0x27, 0x85, + 0x89, 0x9E, 0x78, 0xCC, 0x58, 0x9E, 0xBE, 0x31, 0x0F, 0x6C, 0xDB, 0x9F, + 0xF4, 0xA3, 0x3B, 0x30, 0x39, 0x30, 0x22, 0x06, 0x09, 0x2B, 0x06, 0x01, + 0x04, 0x01, 0x82, 0xC4, 0x0A, 0x02, 0x04, 0x15, 0x31, 0x2E, 0x33, 0x2E, + 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x2E, 0x34, 0x31, 0x34, 0x38, + 0x32, 0x2E, 0x31, 0x2E, 0x32, 0x30, 0x13, 0x06, 0x0B, 0x2B, 0x06, 0x01, + 0x04, 0x01, 0x82, 0xE5, 0x1C, 0x02, 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, + 0x04, 0x30, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, + 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9F, 0x9B, + 0x05, 0x22, 0x48, 0xBC, 0x4C, 0xF4, 0x2C, 0xC5, 0x99, 0x1F, 0xCA, 0xAB, + 0xAC, 0x9B, 0x65, 0x1B, 0xBE, 0x5B, 0xDC, 0xDC, 0x8E, 0xF0, 0xAD, 0x2C, + 0x1C, 0x1F, 0xFB, 0x36, 0xD1, 0x87, 0x15, 0xD4, 0x2E, 0x78, 0xB2, 0x49, + 0x22, 0x4F, 0x92, 0xC7, 0xE6, 0xE7, 0xA0, 0x5C, 0x49, 0xF0, 0xE7, 0xE4, + 0xC8, 0x81, 0xBF, 0x2E, 0x94, 0xF4, 0x5E, 0x4A, 0x21, 0x83, 0x3D, 0x74, + 0x56, 0x85, 0x1D, 0x0F, 0x6C, 0x14, 0x5A, 0x29, 0x54, 0x0C, 0x87, 0x4F, + 0x30, 0x92, 0xC9, 0x34, 0xB4, 0x3D, 0x22, 0x2B, 0x89, 0x62, 0xC0, 0xF4, + 0x10, 0xCE, 0xF1, 0xDB, 0x75, 0x89, 0x2A, 0xF1, 0x16, 0xB4, 0x4A, 0x96, + 0xF5, 0xD3, 0x5A, 0xDE, 0xA3, 0x82, 0x2F, 0xC7, 0x14, 0x6F, 0x60, 0x04, + 0x38, 0x5B, 0xCB, 0x69, 0xB6, 0x5C, 0x99, 0xE7, 0xEB, 0x69, 0x19, 0x78, + 0x67, 0x03, 0xC0, 0xD8, 0xCD, 0x41, 0xE8, 0xF7, 0x5C, 0xCA, 0x44, 0xAA, + 0x8A, 0xB7, 0x25, 0xAD, 0x8E, 0x79, 0x9F, 0xF3, 0xA8, 0x69, 0x6A, 0x6F, + 0x1B, 0x26, 0x56, 0xE6, 0x31, 0xB1, 0xE4, 0x01, 0x83, 0xC0, 0x8F, 0xDA, + 0x53, 0xFA, 0x4A, 0x8F, 0x85, 0xA0, 0x56, 0x93, 0x94, 0x4A, 0xE1, 0x79, + 0xA1, 0x33, 0x9D, 0x00, 0x2D, 0x15, 0xCA, 0xBD, 0x81, 0x00, 0x90, 0xEC, + 0x72, 0x2E, 0xF5, 0xDE, 0xF9, 0x96, 0x5A, 0x37, 0x1D, 0x41, 0x5D, 0x62, + 0x4B, 0x68, 0xA2, 0x70, 0x7C, 0xAD, 0x97, 0xBC, 0xDD, 0x17, 0x85, 0xAF, + 0x97, 0xE2, 0x58, 0xF3, 0x3D, 0xF5, 0x6A, 0x03, 0x1A, 0xA0, 0x35, 0x6D, + 0x8E, 0x8D, 0x5E, 0xBC, 0xAD, 0xC7, 0x4E, 0x07, 0x16, 0x36, 0xC6, 0xB1, + 0x10, 0xAC, 0xE5, 0xCC, 0x9B, 0x90, 0xDF, 0xEA, 0xCA, 0xE6, 0x40, 0xFF, + 0x1B, 0xB0, 0xF1, 0xFE, 0x5D, 0xB4, 0xEF, 0xF7, 0xA9, 0x5F, 0x06, 0x07, + 0x33, 0xF5, +}; + +TEST(PackedAttestationStatementTest, CBOR) { + EXPECT_THAT( + *cbor::CBORWriter::Write( + cbor::CBORValue(PackedAttestationStatement( + CoseAlgorithmIdentifier::kCoseEs256, + fido_parsing_utils::Materialize(kSignature), + {fido_parsing_utils::Materialize(kCertificates)}) + .GetAsCBORMap())), + testing::ElementsAreArray(test_data::kPackedAttestationStatementCBOR)); +} + +TEST(PackedAttestationStatementTest, CBOR_NoCerts) { + EXPECT_THAT(*cbor::CBORWriter::Write(cbor::CBORValue( + PackedAttestationStatement( + CoseAlgorithmIdentifier::kCoseEs256, + fido_parsing_utils::Materialize(kSignature), {}) + .GetAsCBORMap())), + testing::ElementsAreArray( + test_data::kPackedAttestationStatementCBORNoCerts)); +} + +} // namespace +} // namespace device
diff --git a/device/fido/authenticator_make_credential_response.cc b/device/fido/authenticator_make_credential_response.cc index ea89e94..fd6576e0 100644 --- a/device/fido/authenticator_make_credential_response.cc +++ b/device/fido/authenticator_make_credential_response.cc
@@ -7,10 +7,10 @@ #include <utility> #include "device/fido/attestation_object.h" +#include "device/fido/attestation_statement_formats.h" #include "device/fido/attested_credential_data.h" #include "device/fido/authenticator_data.h" #include "device/fido/ec_public_key.h" -#include "device/fido/fido_attestation_statement.h" #include "device/fido/fido_parsing_utils.h" namespace device {
diff --git a/device/fido/ctap_response_unittest.cc b/device/fido/ctap_response_unittest.cc index 567ac36..17c58cbb 100644 --- a/device/fido/ctap_response_unittest.cc +++ b/device/fido/ctap_response_unittest.cc
@@ -5,11 +5,11 @@ #include "components/cbor/cbor_reader.h" #include "components/cbor/cbor_values.h" #include "components/cbor/cbor_writer.h" +#include "device/fido/attestation_statement_formats.h" #include "device/fido/authenticator_get_assertion_response.h" #include "device/fido/authenticator_make_credential_response.h" #include "device/fido/device_response_converter.h" #include "device/fido/ec_public_key.h" -#include "device/fido/fido_attestation_statement.h" #include "device/fido/fido_constants.h" #include "device/fido/fido_parsing_utils.h" #include "device/fido/fido_test_data.h"
diff --git a/device/fido/fido_attestation_statement.h b/device/fido/fido_attestation_statement.h deleted file mode 100644 index 4ecd75a5f..0000000 --- a/device/fido/fido_attestation_statement.h +++ /dev/null
@@ -1,48 +0,0 @@ -// Copyright 2017 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. - -#ifndef DEVICE_FIDO_FIDO_ATTESTATION_STATEMENT_H_ -#define DEVICE_FIDO_FIDO_ATTESTATION_STATEMENT_H_ - -#include <stdint.h> -#include <memory> -#include <vector> - -#include "base/component_export.h" -#include "base/containers/span.h" -#include "base/macros.h" -#include "components/cbor/cbor_values.h" -#include "device/fido/attestation_statement.h" - -namespace device { - -// https://www.w3.org/TR/2017/WD-webauthn-20170505/#fido-u2f-attestation -class COMPONENT_EXPORT(DEVICE_FIDO) FidoAttestationStatement - : public AttestationStatement { - public: - static std::unique_ptr<FidoAttestationStatement> - CreateFromU2fRegisterResponse(base::span<const uint8_t> u2f_data); - - FidoAttestationStatement(std::vector<uint8_t> signature, - std::vector<std::vector<uint8_t>> x509_certificates); - ~FidoAttestationStatement() override; - - // AttestationStatement overrides - - // Produces a map in the following format: - // { "x5c": [ x509_certs bytes ], "sig": signature bytes ] } - cbor::CBORValue::MapValue GetAsCBORMap() const override; - - bool IsAttestationCertificateInappropriatelyIdentifying() override; - - private: - const std::vector<uint8_t> signature_; - const std::vector<std::vector<uint8_t>> x509_certificates_; - - DISALLOW_COPY_AND_ASSIGN(FidoAttestationStatement); -}; - -} // namespace device - -#endif // DEVICE_FIDO_FIDO_ATTESTATION_STATEMENT_H_
diff --git a/device/fido/fido_test_data.h b/device/fido/fido_test_data.h index 3c447ad..b6fe2ac4 100644 --- a/device/fido/fido_test_data.h +++ b/device/fido/fido_test_data.h
@@ -684,6 +684,115 @@ 0x33, 0xF5, }; +// Like kU2fAttestationStatementCBOR but in 'packed' format. +constexpr uint8_t kPackedAttestationStatementCBOR[] = { + // Map(3) + 0xA3, + // Text(3) + 0x63, + // "alg" + 0x61, 0x6C, 0x67, + // COSEAlgorithmIdentifier "ES256" (-7) + 0x26, + // Text(3) + 0x63, + // "sig" + 0x73, 0x69, 0x67, + // Bytes(71) + 0x58, 0x47, + // Byte array content + 0x30, 0x45, 0x02, 0x20, 0x32, 0x47, 0x79, 0xC6, 0x8F, 0x33, 0x80, 0x28, + 0x8A, 0x11, 0x97, 0xB6, 0x09, 0x5F, 0x7A, 0x6E, 0xB9, 0xB1, 0xB1, 0xC1, + 0x27, 0xF6, 0x6A, 0xE1, 0x2A, 0x99, 0xFE, 0x85, 0x32, 0xEC, 0x23, 0xB9, + 0x02, 0x21, 0x00, 0xE3, 0x95, 0x16, 0xAC, 0x4D, 0x61, 0xEE, 0x64, 0x04, + 0x4D, 0x50, 0xB4, 0x15, 0xA6, 0xA4, 0xD4, 0xD8, 0x4B, 0xA6, 0xD8, 0x95, + 0xCB, 0x5A, 0xB7, 0xA1, 0xAA, 0x7D, 0x08, 0x1D, 0xE3, 0x41, 0xFA, + // Text(3) + 0x63, + // "x5c" + 0x78, 0x35, 0x63, + // Array(1) + 0x81, + // Bytes(590) + 0x59, 0x02, 0x4E, + // Byte array content + 0x30, 0x82, 0x02, 0x4A, 0x30, 0x82, 0x01, 0x32, 0xA0, 0x03, 0x02, 0x01, + 0x02, 0x02, 0x04, 0x04, 0x6C, 0x88, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, + 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x2E, + 0x31, 0x2C, 0x30, 0x2A, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x23, 0x59, + 0x75, 0x62, 0x69, 0x63, 0x6F, 0x20, 0x55, 0x32, 0x46, 0x20, 0x52, 0x6F, + 0x6F, 0x74, 0x20, 0x43, 0x41, 0x20, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6C, + 0x20, 0x34, 0x35, 0x37, 0x32, 0x30, 0x30, 0x36, 0x33, 0x31, 0x30, 0x20, + 0x17, 0x0D, 0x31, 0x34, 0x30, 0x38, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x5A, 0x18, 0x0F, 0x32, 0x30, 0x35, 0x30, 0x30, 0x39, 0x30, + 0x34, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5A, 0x30, 0x2C, 0x31, 0x2A, + 0x30, 0x28, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0C, 0x21, 0x59, 0x75, 0x62, + 0x69, 0x63, 0x6F, 0x20, 0x55, 0x32, 0x46, 0x20, 0x45, 0x45, 0x20, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6C, 0x20, 0x32, 0x34, 0x39, 0x31, 0x38, 0x32, + 0x33, 0x32, 0x34, 0x37, 0x37, 0x30, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, + 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 0x86, 0x48, + 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x3C, 0xCA, 0xB9, + 0x2C, 0xCB, 0x97, 0x28, 0x7E, 0xE8, 0xE6, 0x39, 0x43, 0x7E, 0x21, 0xFC, + 0xD6, 0xB6, 0xF1, 0x65, 0xB2, 0xD5, 0xA3, 0xF3, 0xDB, 0x13, 0x1D, 0x31, + 0xC1, 0x6B, 0x74, 0x2B, 0xB4, 0x76, 0xD8, 0xD1, 0xE9, 0x90, 0x80, 0xEB, + 0x54, 0x6C, 0x9B, 0xBD, 0xF5, 0x56, 0xE6, 0x21, 0x0F, 0xD4, 0x27, 0x85, + 0x89, 0x9E, 0x78, 0xCC, 0x58, 0x9E, 0xBE, 0x31, 0x0F, 0x6C, 0xDB, 0x9F, + 0xF4, 0xA3, 0x3B, 0x30, 0x39, 0x30, 0x22, 0x06, 0x09, 0x2B, 0x06, 0x01, + 0x04, 0x01, 0x82, 0xC4, 0x0A, 0x02, 0x04, 0x15, 0x31, 0x2E, 0x33, 0x2E, + 0x36, 0x2E, 0x31, 0x2E, 0x34, 0x2E, 0x31, 0x2E, 0x34, 0x31, 0x34, 0x38, + 0x32, 0x2E, 0x31, 0x2E, 0x32, 0x30, 0x13, 0x06, 0x0B, 0x2B, 0x06, 0x01, + 0x04, 0x01, 0x82, 0xE5, 0x1C, 0x02, 0x01, 0x01, 0x04, 0x04, 0x03, 0x02, + 0x04, 0x30, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, + 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x9F, 0x9B, + 0x05, 0x22, 0x48, 0xBC, 0x4C, 0xF4, 0x2C, 0xC5, 0x99, 0x1F, 0xCA, 0xAB, + 0xAC, 0x9B, 0x65, 0x1B, 0xBE, 0x5B, 0xDC, 0xDC, 0x8E, 0xF0, 0xAD, 0x2C, + 0x1C, 0x1F, 0xFB, 0x36, 0xD1, 0x87, 0x15, 0xD4, 0x2E, 0x78, 0xB2, 0x49, + 0x22, 0x4F, 0x92, 0xC7, 0xE6, 0xE7, 0xA0, 0x5C, 0x49, 0xF0, 0xE7, 0xE4, + 0xC8, 0x81, 0xBF, 0x2E, 0x94, 0xF4, 0x5E, 0x4A, 0x21, 0x83, 0x3D, 0x74, + 0x56, 0x85, 0x1D, 0x0F, 0x6C, 0x14, 0x5A, 0x29, 0x54, 0x0C, 0x87, 0x4F, + 0x30, 0x92, 0xC9, 0x34, 0xB4, 0x3D, 0x22, 0x2B, 0x89, 0x62, 0xC0, 0xF4, + 0x10, 0xCE, 0xF1, 0xDB, 0x75, 0x89, 0x2A, 0xF1, 0x16, 0xB4, 0x4A, 0x96, + 0xF5, 0xD3, 0x5A, 0xDE, 0xA3, 0x82, 0x2F, 0xC7, 0x14, 0x6F, 0x60, 0x04, + 0x38, 0x5B, 0xCB, 0x69, 0xB6, 0x5C, 0x99, 0xE7, 0xEB, 0x69, 0x19, 0x78, + 0x67, 0x03, 0xC0, 0xD8, 0xCD, 0x41, 0xE8, 0xF7, 0x5C, 0xCA, 0x44, 0xAA, + 0x8A, 0xB7, 0x25, 0xAD, 0x8E, 0x79, 0x9F, 0xF3, 0xA8, 0x69, 0x6A, 0x6F, + 0x1B, 0x26, 0x56, 0xE6, 0x31, 0xB1, 0xE4, 0x01, 0x83, 0xC0, 0x8F, 0xDA, + 0x53, 0xFA, 0x4A, 0x8F, 0x85, 0xA0, 0x56, 0x93, 0x94, 0x4A, 0xE1, 0x79, + 0xA1, 0x33, 0x9D, 0x00, 0x2D, 0x15, 0xCA, 0xBD, 0x81, 0x00, 0x90, 0xEC, + 0x72, 0x2E, 0xF5, 0xDE, 0xF9, 0x96, 0x5A, 0x37, 0x1D, 0x41, 0x5D, 0x62, + 0x4B, 0x68, 0xA2, 0x70, 0x7C, 0xAD, 0x97, 0xBC, 0xDD, 0x17, 0x85, 0xAF, + 0x97, 0xE2, 0x58, 0xF3, 0x3D, 0xF5, 0x6A, 0x03, 0x1A, 0xA0, 0x35, 0x6D, + 0x8E, 0x8D, 0x5E, 0xBC, 0xAD, 0xC7, 0x4E, 0x07, 0x16, 0x36, 0xC6, 0xB1, + 0x10, 0xAC, 0xE5, 0xCC, 0x9B, 0x90, 0xDF, 0xEA, 0xCA, 0xE6, 0x40, 0xFF, + 0x1B, 0xB0, 0xF1, 0xFE, 0x5D, 0xB4, 0xEF, 0xF7, 0xA9, 0x5F, 0x06, 0x07, + 0x33, 0xF5, +}; + +// Like kPackedAttestationStatementCBOR but certs are omitted. +constexpr uint8_t kPackedAttestationStatementCBORNoCerts[] = { + // Map(2) + 0xA2, + // Text(3) + 0x63, + // "alg" + 0x61, 0x6C, 0x67, + // COSEAlgorithmIdentifier "ES256" (-7) + 0x26, + // Text(3) + 0x63, + // "sig" + 0x73, 0x69, 0x67, + // Bytes(71) + 0x58, 0x47, + // Byte array content + 0x30, 0x45, 0x02, 0x20, 0x32, 0x47, 0x79, 0xC6, 0x8F, 0x33, 0x80, 0x28, + 0x8A, 0x11, 0x97, 0xB6, 0x09, 0x5F, 0x7A, 0x6E, 0xB9, 0xB1, 0xB1, 0xC1, + 0x27, 0xF6, 0x6A, 0xE1, 0x2A, 0x99, 0xFE, 0x85, 0x32, 0xEC, 0x23, 0xB9, + 0x02, 0x21, 0x00, 0xE3, 0x95, 0x16, 0xAC, 0x4D, 0x61, 0xEE, 0x64, 0x04, + 0x4D, 0x50, 0xB4, 0x15, 0xA6, 0xA4, 0xD4, 0xD8, 0x4B, 0xA6, 0xD8, 0x95, + 0xCB, 0x5A, 0xB7, 0xA1, 0xAA, 0x7D, 0x08, 0x1D, 0xE3, 0x41, 0xFA, +}; + // U2F response blob produced by a U2F sign request used in example 7 of the // CTAP spec. // https://fidoalliance.org/specs/fido-v2.0-rd-20170927/fido-client-to-authenticator-protocol-v2.0-rd-20170927.html#using-the-ctap2-authenticatorgetassertion-command-with-ctap1-u2f-authenticators
diff --git a/device/fido/mac/make_credential_operation.mm b/device/fido/mac/make_credential_operation.mm index 51f598dd..e5669be3 100644 --- a/device/fido/mac/make_credential_operation.mm +++ b/device/fido/mac/make_credential_operation.mm
@@ -11,7 +11,7 @@ #include "base/mac/foundation_util.h" #include "base/mac/mac_logging.h" #include "base/mac/scoped_cftyperef.h" -#include "device/fido/fido_attestation_statement.h" +#include "device/fido/attestation_statement_formats.h" #include "device/fido/fido_constants.h" #include "device/fido/fido_parsing_utils.h" #include "device/fido/mac/credential_metadata.h" @@ -201,9 +201,9 @@ std::vector<std::vector<uint8_t>> no_certificates; AuthenticatorMakeCredentialResponse response(AttestationObject( std::move(*authenticator_data), - // TODO(martinkr): Add a PackedAttestationStatement for self-attestation. - std::make_unique<FidoAttestationStatement>(std::move(*signature), - std::move(no_certificates)))); + std::make_unique<PackedAttestationStatement>( + CoseAlgorithmIdentifier::kCoseEs256, std::move(*signature), + std::move(no_certificates)))); std::move(callback()) .Run(CtapDeviceResponseCode::kSuccess, std::move(response)); }
diff --git a/device/fido/mac/util.mm b/device/fido/mac/util.mm index ea14dace..af4f6105 100644 --- a/device/fido/mac/util.mm +++ b/device/fido/mac/util.mm
@@ -18,7 +18,6 @@ #include "base/strings/string_number_conversions.h" #include "components/cbor/cbor_writer.h" #include "device/fido/ec_public_key.h" -#include "device/fido/fido_attestation_statement.h" #include "device/fido/fido_constants.h" #include "device/fido/fido_parsing_utils.h" #include "device/fido/mac/keychain.h"
diff --git a/extensions/browser/api/web_request/web_request_api.cc b/extensions/browser/api/web_request/web_request_api.cc index b64d49f..7af76db 100644 --- a/extensions/browser/api/web_request/web_request_api.cc +++ b/extensions/browser/api/web_request/web_request_api.cc
@@ -599,8 +599,6 @@ // Match the behavior of the WebRequestInfo constructor // which takes a net::URLRequest*. is_for_browser_initiated_requests ? -1 : frame->GetProcess()->GetID(), - is_for_browser_initiated_requests ? MSG_ROUTING_NONE - : frame->GetRoutingID(), request_id_generator_, std::move(navigation_ui_data), base::Unretained(info_map_), std::move(proxied_request), std::move(target_factory_info), proxies_));
diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc index 17927b8..a545aa50 100644 --- a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc +++ b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.cc
@@ -52,7 +52,7 @@ // Derive a new WebRequestInfo value any time |Restart()| is called, because // the details in |request_| may have changed e.g. if we've been redirected. info_.emplace( - request_id_, factory_->render_process_id_, factory_->render_frame_id_, + request_id_, factory_->render_process_id_, request_.render_frame_id, factory_->navigation_ui_data_ ? factory_->navigation_ui_data_->DeepCopy() : nullptr, routing_id_, factory_->resource_context_, request_); @@ -510,7 +510,6 @@ void* browser_context, content::ResourceContext* resource_context, int render_process_id, - int render_frame_id, scoped_refptr<WebRequestAPI::RequestIDGenerator> request_id_generator, std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data, InfoMap* info_map, @@ -520,7 +519,6 @@ : browser_context_(browser_context), resource_context_(resource_context), render_process_id_(render_process_id), - render_frame_id_(render_frame_id), request_id_generator_(std::move(request_id_generator)), navigation_ui_data_(std::move(navigation_ui_data)), info_map_(info_map), @@ -540,7 +538,6 @@ void* browser_context, content::ResourceContext* resource_context, int render_process_id, - int render_frame_id, scoped_refptr<WebRequestAPI::RequestIDGenerator> request_id_generator, std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data, InfoMap* info_map, @@ -552,7 +549,7 @@ return; auto proxy = std::make_unique<WebRequestProxyingURLLoaderFactory>( - browser_context, resource_context, render_process_id, render_frame_id, + browser_context, resource_context, render_process_id, std::move(request_id_generator), std::move(navigation_ui_data), info_map, std::move(loader_request), std::move(target_factory_info), proxies.get());
diff --git a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h index 19632669..e01d2061 100644 --- a/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h +++ b/extensions/browser/api/web_request/web_request_proxying_url_loader_factory.h
@@ -154,7 +154,6 @@ void* browser_context, content::ResourceContext* resource_context, int render_process_id, - int render_frame_id, scoped_refptr<WebRequestAPI::RequestIDGenerator> request_id_generator, std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data, InfoMap* info_map, @@ -168,7 +167,6 @@ void* browser_context, content::ResourceContext* resource_context, int render_process_id, - int render_frame_id, scoped_refptr<WebRequestAPI::RequestIDGenerator> request_id_generator, std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data, InfoMap* info_map, @@ -202,7 +200,6 @@ void* const browser_context_; content::ResourceContext* const resource_context_; const int render_process_id_; - const int render_frame_id_; scoped_refptr<WebRequestAPI::RequestIDGenerator> request_id_generator_; std::unique_ptr<ExtensionNavigationUIData> navigation_ui_data_; InfoMap* const info_map_;
diff --git a/extensions/shell/installer/linux/BUILD.gn b/extensions/shell/installer/linux/BUILD.gn index bd60b49..1f07d353 100644 --- a/extensions/shell/installer/linux/BUILD.gn +++ b/extensions/shell/installer/linux/BUILD.gn
@@ -136,10 +136,6 @@ "//ppapi/native_client:irt", ] } - - if (!libcpp_is_static && use_custom_libcxx) { - public_deps += [ "//buildtools/third_party/libc++:libc++" ] - } } # Creates .deb installer package. @@ -166,10 +162,6 @@ ] } - if (!libcpp_is_static && use_custom_libcxx) { - packaging_files_binaries += [ "$root_out_dir/libc++.so" ] - } - deb_target_name = "${target_name}_deb" action(deb_target_name) { visibility = [ ":*" ]
diff --git a/extensions/strings/extensions_strings_no.xtb b/extensions/strings/extensions_strings_no.xtb index e1862d7..74339da 100644 --- a/extensions/strings/extensions_strings_no.xtb +++ b/extensions/strings/extensions_strings_no.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529">Ukjent produkt, <ph name="PRODUCT_ID" />, fra <ph name="VENDOR_NAME" /></translation> <translation id="7068383018033524534">Manifestfilen er ugyldig</translation> <translation id="7217838517480956708">Administratoren til denne maskinen krever at <ph name="EXTENSION_NAME" /> blir installert. Utvidelsen kan ikke fjernes eller endres.</translation> +<translation id="7939686037314084444">Utvidelsen lastet ikke inn riktig. Det kan være problemer med oppfangingen av nettverksforespørselene.</translation> <translation id="7972881773422714442">Alternativer: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">Frontkamera</translation> <translation id="8047248493720652249">Denne utvidelsen kunne ikke kalle nedlastingen «<ph name="ATTEMPTED_FILENAME" />» fordi en annen utvidelse (<ph name="EXTENSION_NAME" />) har angitt et annet filnavn («<ph name="ACTUAL_FILENAME" />»).</translation>
diff --git a/extensions/strings/extensions_strings_te.xtb b/extensions/strings/extensions_strings_te.xtb index 11c53a9..6da1cc55 100644 --- a/extensions/strings/extensions_strings_te.xtb +++ b/extensions/strings/extensions_strings_te.xtb
@@ -56,6 +56,7 @@ <translation id="7003844668372540529"><ph name="VENDOR_NAME" /> నుండి తెలియని ఉత్పత్తి <ph name="PRODUCT_ID" /></translation> <translation id="7068383018033524534">మానిఫెస్ట్ ఫైల్ చెల్లదు</translation> <translation id="7217838517480956708">ఈ మెషీన్ యొక్క నిర్వాహకుడికి <ph name="EXTENSION_NAME" /> ఇన్స్టాల్ చేయబడి ఉండటం అవసరం. దీన్ని తీసివేయడం లేదా సవరించడం సాధ్యపడదు.</translation> +<translation id="7939686037314084444">ఎక్స్టెన్షన్ సరిగా లోడ్ అవ్వడంలో విఫలం అయ్యింది. కనుక ఇది నెట్వర్క్ అభ్యర్థనలను అడ్డగించలేకపోవచ్చు.</translation> <translation id="7972881773422714442">ఎంపికలు: <ph name="EXTENSIONOPTIONS_TAG_NAME" /></translation> <translation id="8035920974645200807">వినియోగదారు వైపుగా</translation> <translation id="8047248493720652249">ఈ పొడిగింపు డౌన్లోడ్ యొక్క పేరును "<ph name="ATTEMPTED_FILENAME" />"గా పేర్కొనడంలో విఫలమైంది ఎందుకంటే మరో పొడిగింపు (<ph name="EXTENSION_NAME" />) "<ph name="ACTUAL_FILENAME" />" అనే వేరే ఫైల్ పేరుని నిశ్చయించింది.</translation>
diff --git a/gpu/config/gpu_driver_bug_list.json b/gpu/config/gpu_driver_bug_list.json index 3b1e3ba8..05f24473 100644 --- a/gpu/config/gpu_driver_bug_list.json +++ b/gpu/config/gpu_driver_bug_list.json
@@ -2738,8 +2738,11 @@ }, { "id": 256, - "description": "Don't expose disjoint_timer_query extensions to WebGL", + "description": "Don't expose disjoint_timer_query extensions to WebGL unless site isolation is enabled", "cr_bugs": [808744], + "os": { + "type": "android" + }, "disabled_webgl_extensions": [ "EXT_disjoint_timer_query", "EXT_disjoint_timer_query_webgl2"
diff --git a/infra/config/global/luci-milo.cfg b/infra/config/global/luci-milo.cfg index 2e45e22..6603184 100644 --- a/infra/config/global/luci-milo.cfg +++ b/infra/config/global/luci-milo.cfg
@@ -3271,47 +3271,6 @@ consoles { header_id: "chromium" - id: "chromium.infra.codesearch" - name: "chromium.infra.codesearch" - repo_url: "https://chromium.googlesource.com/chromium/src" - refs: "refs/heads/master" - manifest_name: "REVISION" - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-gen-chromium-android" - name: "buildbucket/luci.infra.ci/codesearch-gen-chromium-android" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-gen-chromium-chromiumos" - name: "buildbucket/luci.infra.ci/codesearch-gen-chromium-chromiumos" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-gen-chromium-initiator" - name: "buildbucket/luci.infra.ci/codesearch-gen-chromium-initiator" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-gen-chromium-linux" - name: "buildbucket/luci.infra.ci/codesearch-gen-chromium-linux" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-gen-chromium-win" - name: "buildbucket/luci.infra.ci/codesearch-gen-chromium-win" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-submodules-build" - name: "buildbucket/luci.infra.ci/codesearch-submodules-build" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-submodules-chromium" - name: "buildbucket/luci.infra.ci/codesearch-submodules-chromium" - } - builders { - name: "buildbot/chromium.infra.codesearch/codesearch-submodules-infra" - name: "buildbucket/luci.infra.ci/codesearch-submodules-infra" - } -} - -consoles { - header_id: "chromium" id: "chromium.perf.fyi" name: "chromium.perf.fyi" repo_url: "https://chromium.googlesource.com/chromium/src"
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb index fd3d67d5..624f82f 100644 --- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb +++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_tr.xtb
@@ -1,7 +1,7 @@ <?xml version="1.0" ?> <!DOCTYPE translationbundle> <translationbundle lang="tr"> -<translation id="114721135501989771">Chrome'da Google'ın akıllı yaklaşımını elde edin</translation> +<translation id="114721135501989771">Google zekası Chrome'da</translation> <translation id="1326317727527857210">Diğer cihazlarınızdaki sekmelerinize ulaşmak için Chrome'da oturum açın.</translation> <translation id="1759842336958782510">Chrome</translation> <translation id="1816764564654397850">Google Chrome Gizlilik Uyarısı</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb index 5658bf2..4dc2982 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">استخدام المزامنة وجميع الخدمات</translation> <translation id="1272079795634619415">إيقاف</translation> <translation id="1323735185997015385">حذف</translation> +<translation id="132390688737681464">حفظ العناوين وملؤها</translation> <translation id="132683371494960526">انقر مرّتين لتغيير المجلد الرئيسي.</translation> <translation id="1340643665687018190">إغلاق القائمة</translation> <translation id="1375321115329958930">كلمات المرور المحفوظة</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">عرض العناوين وبطاقات الائتمان من Google Pay</translation> <translation id="1540800554400757039">العنوان 1</translation> <translation id="1545749641540134597">فحص رمز الاستجابة السريعة</translation> +<translation id="1558704936695638228">يُرجى الضغط مع الاستمرار لعرض مزيد من خيارات علامة التبويب</translation> <translation id="1580783302095112590">تم إرسال البريد.</translation> <translation id="1582732959743469162">سيؤدي ذلك إلى إيقاف تقدّم جميع عمليات التنزيل الحالية.</translation> <translation id="1605658421715042784">نسخ الصورة</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">تثبيت Google Drive</translation> <translation id="5083464117946352670">تعذر تحديد حجم الملف.</translation> <translation id="5094827893301452931">اكتملت مشاركة Tweet.</translation> +<translation id="5123982333065001601">حفظ بطاقات الائتمان وملؤها</translation> <translation id="5173593619615111996">إغلاق جميع علامات تبويب التصفح المتخفي</translation> <translation id="5181140330217080051">تنزيل</translation> <translation id="5186185447130319458">خاص</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb index b399b69..28edfba 100644 --- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Používat synchronizaci a všechny služby</translation> <translation id="1272079795634619415">Zastavit</translation> <translation id="1323735185997015385">Smazat</translation> +<translation id="132390688737681464">Ukládat a vyplňovat adresy</translation> <translation id="132683371494960526">Dvojitým klepnutím změníte nadřazenou složku.</translation> <translation id="1340643665687018190">Zavřít nabídku</translation> <translation id="1375321115329958930">Uložená hesla</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Zobrazit adresy a karty ze služby Google Pay</translation> <translation id="1540800554400757039">První řádek adresy</translation> <translation id="1545749641540134597">Naskenovat QR kód</translation> +<translation id="1558704936695638228">Podržením zobrazíte další možnosti karet</translation> <translation id="1580783302095112590">E-mail byl odeslán.</translation> <translation id="1582732959743469162">Tímto zastavíte veškerý postup aktuálního stahování.</translation> <translation id="1605658421715042784">Kopírovat obrázek</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Instalace Disku Google</translation> <translation id="5083464117946352670">Velikost souboru nelze zjistit.</translation> <translation id="5094827893301452931">Tweet byl odeslán.</translation> +<translation id="5123982333065001601">Ukládat a vyplňovat platební karty</translation> <translation id="5173593619615111996">Zavřít všechny anonymní karty</translation> <translation id="5181140330217080051">Stahování</translation> <translation id="5186185447130319458">Soukromé</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb index 83ebea5..f5592ea 100644 --- a/ios/chrome/app/strings/resources/ios_strings_da.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Brug synkronisering og alle tjenester</translation> <translation id="1272079795634619415">Stop</translation> <translation id="1323735185997015385">Slet</translation> +<translation id="132390688737681464">Gem og udfyld adresser</translation> <translation id="132683371494960526">Tryk to gange for at ændre den overordnede mappe.</translation> <translation id="1340643665687018190">Luk menu</translation> <translation id="1375321115329958930">Gemte adgangskoder</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Se adresser og kreditkort fra Google Pay</translation> <translation id="1540800554400757039">Adresse 1</translation> <translation id="1545749641540134597">Scan QR-kode</translation> +<translation id="1558704936695638228">Hold fingeren nede for at se flere fanemuligheder</translation> <translation id="1580783302095112590">Email sendt.</translation> <translation id="1582732959743469162">Denne handling stopper den aktuelle download.</translation> <translation id="1605658421715042784">Kopiér billede</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Installer Google Drev</translation> <translation id="5083464117946352670">Kan ikke fastslå filstørrelse.</translation> <translation id="5094827893301452931">Indlæg delt på Twitter.</translation> +<translation id="5123982333065001601">Gem og udfyld betalingskort</translation> <translation id="5173593619615111996">Luk alle inkognitofaner</translation> <translation id="5181140330217080051">Downloader</translation> <translation id="5186185447130319458">Privat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb index 1b137c7..a912090 100644 --- a/ios/chrome/app/strings/resources/ios_strings_de.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Synchronisierung und alle Dienste nutzen</translation> <translation id="1272079795634619415">Stopp</translation> <translation id="1323735185997015385">Löschen</translation> +<translation id="132390688737681464">Adressen speichern und ausfüllen</translation> <translation id="132683371494960526">Tippen Sie hier doppelt, um den übergeordneten Ordner zu ändern.</translation> <translation id="1340643665687018190">Menü schließen</translation> <translation id="1375321115329958930">Gespeicherte Passwörter</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Adressen und Kreditkarten aus Google Pay anzeigen</translation> <translation id="1540800554400757039">Adresse 1</translation> <translation id="1545749641540134597">QR-Code scannen</translation> +<translation id="1558704936695638228">Für weitere Tab-Optionen gedrückt halten</translation> <translation id="1580783302095112590">E-Mail gesendet</translation> <translation id="1582732959743469162">Hierdurch wird Ihrer aktueller Download abgebrochen.</translation> <translation id="1605658421715042784">Bild kopieren</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Google Drive installieren</translation> <translation id="5083464117946352670">Fehler bei Bestimmung der Dateigröße</translation> <translation id="5094827893301452931">Tweet gepostet</translation> +<translation id="5123982333065001601">Kreditkarten speichern und ausfüllen</translation> <translation id="5173593619615111996">Alle Inkognito-Tabs schließen</translation> <translation id="5181140330217080051">Download wird ausgeführt...</translation> <translation id="5186185447130319458">Privat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb index 240c4c63..bb95103 100644 --- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Gamitin ang pag-sync at ang lahat ng serbisyo</translation> <translation id="1272079795634619415">Stop</translation> <translation id="1323735185997015385">I-delete</translation> +<translation id="132390688737681464">I-save at Punan ang Mga Address</translation> <translation id="132683371494960526">I-double tap upang baguhin ang parent folder.</translation> <translation id="1340643665687018190">Isara ang Menu</translation> <translation id="1375321115329958930">Mga Naka-save na Password</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Ipakita ang mga address at credit card mula sa Google Pay</translation> <translation id="1540800554400757039">Address 1</translation> <translation id="1545749641540134597">I-scan ang QR Code</translation> +<translation id="1558704936695638228">Pindutin nang matagal para sa higit pang opsyon sa tab</translation> <translation id="1580783302095112590">Naipadala na ang mail.</translation> <translation id="1582732959743469162">Ihihinto nito ang lahat ng progreso para sa iyong kasalukuyang pag-download.</translation> <translation id="1605658421715042784">Kopyahin ang Larawan</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">I-install - Google Drive</translation> <translation id="5083464117946352670">Hindi matukoy ang file size.</translation> <translation id="5094827893301452931">Kumpleto na ang Tweet.</translation> +<translation id="5123982333065001601">I-save at Punan ang Mga Credit Card</translation> <translation id="5173593619615111996">Isara ang Lahat ng Tab na Incognito</translation> <translation id="5181140330217080051">Nagda-download</translation> <translation id="5186185447130319458">Pribado</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb index e305a805..6cd11b07 100644 --- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">સિંક અને બધી સેવાઓનો ઉપયોગ કરો</translation> <translation id="1272079795634619415">રોકો</translation> <translation id="1323735185997015385">કાઢી નાખો</translation> +<translation id="132390688737681464">સરનામાં સાચવો અને ભરો</translation> <translation id="132683371494960526">મૂળ ફોલ્ડર બદલવા માટે બે વાર ટૅપ કરો.</translation> <translation id="1340643665687018190">મેનૂ બંધ કરો</translation> <translation id="1375321115329958930">સાચવેલા પાસવર્ડ્સ</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Google Pay માંથી સરનામાં અને ક્રેડિટ કાર્ડ બતાવો</translation> <translation id="1540800554400757039">સરનામું 1</translation> <translation id="1545749641540134597">QR કોડ સ્કેન કરો</translation> +<translation id="1558704936695638228">વધુ ટૅબ વિકલ્પો માટે દબાવી રાખો</translation> <translation id="1580783302095112590">મેઇલ મોકલ્યો છે.</translation> <translation id="1582732959743469162">આનાથી તમારું હાલનું ડાઉનલોડ આગળ વધતું અટકી જશે.</translation> <translation id="1605658421715042784">છબી કૉપિ કરો</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Google ડ્રાઇવ ઇન્સ્ટોલ કરો</translation> <translation id="5083464117946352670">ફાઇલ કદ નિર્ધારિત કરી શકાતું નથી.</translation> <translation id="5094827893301452931">ટ્વિટ પૂર્ણ કરેલ છે.</translation> +<translation id="5123982333065001601">ક્રેડિટ કાર્ડ સાચવો અને ભરો</translation> <translation id="5173593619615111996">બધા છુપા ટૅબ્સ બંધ કરો</translation> <translation id="5181140330217080051">ડાઉનલોડ કરી રહ્યું છે</translation> <translation id="5186185447130319458">ખાનગી</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb index 1d20f54..01f1c15 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">सिंक और सभी सेवाएं इस्तेमाल करें</translation> <translation id="1272079795634619415">रोकें</translation> <translation id="1323735185997015385">हटाएं</translation> +<translation id="132390688737681464">पतों की जानकारी सेव करें और भरें</translation> <translation id="132683371494960526">पेरेंट फ़ोल्डर बदलने के लिए डबल टैप करें.</translation> <translation id="1340643665687018190">बंद करें मेनू</translation> <translation id="1375321115329958930">सहेजे गए पासवर्ड</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Google Pay से पते और क्रेडिट कार्ड दिखाएं</translation> <translation id="1540800554400757039">पता 1</translation> <translation id="1545749641540134597">QR कोड स्कैन करें</translation> +<translation id="1558704936695638228">टैब के और विकल्प देखने के लिए दबाकर रखें</translation> <translation id="1580783302095112590">मेल भेजा गया.</translation> <translation id="1582732959743469162">यह आपके इस समय हो रहे सभी डाउनलोड को बंद कर देगा.</translation> <translation id="1605658421715042784">इमेज की कॉपी करें</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Google डिस्क इंस्टॉल करें</translation> <translation id="5083464117946352670">फ़ाइल आकार तय नहीं हो पा रहा.</translation> <translation id="5094827893301452931">ट्वीट पूर्ण.</translation> +<translation id="5123982333065001601">क्रेडिट कार्ड की जानकारी सेव करें और भरें</translation> <translation id="5173593619615111996">सभी गुप्त टैब बंद करें</translation> <translation id="5181140330217080051">डाउनलोड हो रहा है</translation> <translation id="5186185447130319458">निजी</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb index 4f99da4..6974250a 100644 --- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Upotreba sinkronizacije i svih usluga</translation> <translation id="1272079795634619415">Zaustavi</translation> <translation id="1323735185997015385">Izbriši</translation> +<translation id="132390688737681464">Spremi i popuni adrese</translation> <translation id="132683371494960526">Dodirnite dvaput da biste promijenili nadređenu mapu.</translation> <translation id="1340643665687018190">Zatvori izbornik</translation> <translation id="1375321115329958930">Spremljene zaporke</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Prikaži adrese i kreditne kartice s Google Paya</translation> <translation id="1540800554400757039">1. adresni redak</translation> <translation id="1545749641540134597">Skeniranje QR koda</translation> +<translation id="1558704936695638228">Pritisnite i zadržite za više opcija za karticu</translation> <translation id="1580783302095112590">Poruka je poslana.</translation> <translation id="1582732959743469162">Time će se zaustaviti trenutačno preuzimanje i izbrisati sve što je dosad preuzeto.</translation> <translation id="1605658421715042784">Kopiraj sliku</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Instaliraj Google disk</translation> <translation id="5083464117946352670">Veličina datoteke nije utvrđena.</translation> <translation id="5094827893301452931">Tweet je dovršen.</translation> +<translation id="5123982333065001601">Spremi i popuni kreditne kartice</translation> <translation id="5173593619615111996">Zatvori sve anonimne kartice</translation> <translation id="5181140330217080051">Preuzimanje</translation> <translation id="5186185447130319458">Privatno</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb index f983db8..2b0e3c6 100644 --- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">שימוש בסינכרון ובכל השירותים</translation> <translation id="1272079795634619415">הפסק</translation> <translation id="1323735185997015385">מחק</translation> +<translation id="132390688737681464">שמירה ומילוי של כתובות</translation> <translation id="132683371494960526">הקש פעמיים כדי לשנות את תיקיית האב.</translation> <translation id="1340643665687018190">סגור את התפריט</translation> <translation id="1375321115329958930">סיסמאות שמורות</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">הצגת כתובות וכרטיסי אשראי מ-Google Pay</translation> <translation id="1540800554400757039">כתובת, שורה 1</translation> <translation id="1545749641540134597">סריקת קוד QR</translation> +<translation id="1558704936695638228">לחיצה ארוכה תציג עוד אפשרויות כרטיסייה</translation> <translation id="1580783302095112590">הדואר נשלח.</translation> <translation id="1582732959743469162">הפעולה תפסיק את ההורדה הנוכחית.</translation> <translation id="1605658421715042784">העתקת התמונה</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">התקן את Google Drive</translation> <translation id="5083464117946352670">גודל הקובץ אינו ידוע.</translation> <translation id="5094827893301452931">הציוץ בוצע.</translation> +<translation id="5123982333065001601">שמירה ומילוי של כרטיסי אשראי</translation> <translation id="5173593619615111996">סגור את כל כרטיסיות הגלישה בסתר</translation> <translation id="5181140330217080051">מוריד</translation> <translation id="5186185447130319458">פרטי</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb index 89761cd1..08e165d3 100644 --- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">ಸಿಂಕ್ ಮತ್ತು ಎಲ್ಲಾ ಸೇವೆಗಳನ್ನು ಬಳಸಿ</translation> <translation id="1272079795634619415">ನಿಲ್ಲಿಸಿ</translation> <translation id="1323735185997015385">ಅಳಿಸಿ</translation> +<translation id="132390688737681464">ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation> <translation id="132683371494960526">ಮೂಲ ಫೋಲ್ಡರ್ ಅನ್ನು ಬದಲಾಯಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ.</translation> <translation id="1340643665687018190">ಮುಚ್ಚು ಮೆನು</translation> <translation id="1375321115329958930">ಉಳಿಸಿದ ಪಾಸ್ವರ್ಡ್ಗಳು</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Google Pay ನಿಂದ ವಿಳಾಸಗಳು ಮತ್ತು ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ಗಳನ್ನು ತೋರಿಸಿ</translation> <translation id="1540800554400757039">ವಿಳಾಸ 1</translation> <translation id="1545749641540134597">QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ</translation> +<translation id="1558704936695638228">ಹೆಚ್ಚಿನ ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗೆ ಬಟನ್ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ</translation> <translation id="1580783302095112590">ಮೇಲ್ ಕಳುಹಿಸಲಾಗಿದೆ.</translation> <translation id="1582732959743469162">ಇದು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೌನ್ಲೋಡ್ಗಾಗಿ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.</translation> <translation id="1605658421715042784">ಚಿತ್ರವನ್ನು ನಕಲಿಸಿ</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Google ಡ್ರೈವ್ ಸ್ಥಾಪಿಸಿ</translation> <translation id="5083464117946352670">ಫೈಲ್ ಗಾತ್ರವನ್ನು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.</translation> <translation id="5094827893301452931">Tweet ಪೂರ್ಣಗೊಂಡಿದೆ.</translation> +<translation id="5123982333065001601">ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ಗಳ ಮಾಹಿತಿಯನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation> <translation id="5173593619615111996">ಎಲ್ಲಾ ಅದೃಶ್ಯ ಟ್ಯಾಬ್ಗಳನ್ನು ಮುಚ್ಚಿ</translation> <translation id="5181140330217080051">ಡೌನ್ಲೋಡ್ ಆಗುತ್ತಿದೆ</translation> <translation id="5186185447130319458">ಖಾಸಗಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb index 5f1b02e..8a56eb61 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Sinchronizavimo ir visų paslaugų naudojimas</translation> <translation id="1272079795634619415">Sustabdyti</translation> <translation id="1323735185997015385">Ištrinti</translation> +<translation id="132390688737681464">Išsaugoti ir užpildyti adresus</translation> <translation id="132683371494960526">Dukart palieskite, kad pakeistumėte viršaplankį.</translation> <translation id="1340643665687018190">Uždaryti meniu</translation> <translation id="1375321115329958930">Išsaugoti slaptažodžiai</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Rodyti „Google Pay“ adresus ir kredito korteles</translation> <translation id="1540800554400757039">1 adreso eil.</translation> <translation id="1545749641540134597">Nuskaitykite QR kodą</translation> +<translation id="1558704936695638228">Paspauskite ir palaikykite, kad būtų pateikta daugiau skirtukų parinkčių</translation> <translation id="1580783302095112590">El. laiškas išsiųstas.</translation> <translation id="1582732959743469162">Bus sustabdytas dabartinis atsisiuntimas.</translation> <translation id="1605658421715042784">Kopijuoti vaizdą</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Įdiegti „Google“ diską</translation> <translation id="5083464117946352670">Nepav. nustatyti failo dydžio.</translation> <translation id="5094827893301452931">„Tweet“ įrašas paskelbtas.</translation> +<translation id="5123982333065001601">Išsaugoti ir užpildyti kredito kortelių informaciją</translation> <translation id="5173593619615111996">Už. ink. skirt.</translation> <translation id="5181140330217080051">Atsisiunčiama</translation> <translation id="5186185447130319458">Privatu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb index c8f60b2..31d8ba4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Sinhronizēšanas un visu pakalpojumu izmantošana</translation> <translation id="1272079795634619415">Apturēt</translation> <translation id="1323735185997015385">Dzēst</translation> +<translation id="132390688737681464">Saglabāt un aizpildīt adreses</translation> <translation id="132683371494960526">Veiciet dubultskārienu, lai mainītu vecākmapi.</translation> <translation id="1340643665687018190">Aizvērt izvēlni</translation> <translation id="1375321115329958930">Saglabātās paroles</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Rādīt adreses un kredītkartes no pakalpojuma Google Pay</translation> <translation id="1540800554400757039">1. adrese</translation> <translation id="1545749641540134597">Skenējiet QR kodu</translation> +<translation id="1558704936695638228">Lai atvērtu citas ciļņu opcijas, nospiediet un turiet.</translation> <translation id="1580783302095112590">E-pasts nosūtīts.</translation> <translation id="1582732959743469162">Šādi tiks pārtraukta pašreizējās lejupielādes norise.</translation> <translation id="1605658421715042784">Kopēt attēlu</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Instalēt Google disku</translation> <translation id="5083464117946352670">Nevar noteikt faila lielumu.</translation> <translation id="5094827893301452931">Twitter ziņa izveidota.</translation> +<translation id="5123982333065001601">Saglabāt un aizpildīt kredītkaršu informāciju</translation> <translation id="5173593619615111996">Aizvērt inkognito cilnes</translation> <translation id="5181140330217080051">Notiek lejupielāde</translation> <translation id="5186185447130319458">Privāti</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb index 7df7337..8b56d286 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">സമന്വയവും എല്ലാ സേവനങ്ങളും ഉപയോഗിക്കുക</translation> <translation id="1272079795634619415">നിര്ത്തുക</translation> <translation id="1323735185997015385">ഇല്ലാതാക്കുക</translation> +<translation id="132390688737681464">വിലാസങ്ങൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="132683371494960526">പാരന്റ് ഫോൾഡർ മാറ്റാൻ രണ്ടുതവണ ടാപ്പുചെയ്യുക.</translation> <translation id="1340643665687018190">മെനു അടയ്ക്കുക</translation> <translation id="1375321115329958930">സംരക്ഷിച്ച പാസ്വേഡുകള്</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Google Pay-യിൽ നിന്നുള്ള വിലാസങ്ങളും ക്രെഡിറ്റ് കാർഡുകളും കാണിക്കുക</translation> <translation id="1540800554400757039">വിലാസം 1</translation> <translation id="1545749641540134597">QR കോഡ് സ്കാൻ ചെയ്യുക</translation> +<translation id="1558704936695638228">കൂടുതൽ ടാബ് ഓപ്ഷനുകൾക്കായി അമർത്തിപ്പിടിക്കുക</translation> <translation id="1580783302095112590">മെയിൽ അയച്ചു.</translation> <translation id="1582732959743469162">ഇത്, നിലവിലെ ഡൗൺലോഡിന്റെ എല്ലാ പുരോഗതിയും നിർത്തും.</translation> <translation id="1605658421715042784">ചിത്രം പകർത്തുക</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Google ഡ്രൈവ് ഇൻസ്റ്റാളുചെയ്യുക</translation> <translation id="5083464117946352670">ഫയൽ വലുപ്പം നിർണ്ണയിക്കാനാവില്ല.</translation> <translation id="5094827893301452931">Tweet പങ്കിടൽ പൂർത്തിയായി.</translation> +<translation id="5123982333065001601">ക്രെഡിറ്റ് കാർഡുകൾ സംരക്ഷിച്ച് സ്വമേധയാ പൂരിപ്പിക്കുക</translation> <translation id="5173593619615111996">എല്ലാ ആൾമാറാട്ട ടാബുകളും അടയ്ക്കുക</translation> <translation id="5181140330217080051">ഡൗൺലോഡുചെയ്യുന്നു</translation> <translation id="5186185447130319458">സ്വകാര്യം</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb index 4939a73..681e8b9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">सिंक आणि सर्व सेवा वापरा</translation> <translation id="1272079795634619415">थांबा</translation> <translation id="1323735185997015385">हटवा</translation> +<translation id="132390688737681464">पत्ते भरा आणि सेव्ह करा</translation> <translation id="132683371494960526">मुख्य फोल्डर बदलण्यासाठी दोनदा टॅप करा.</translation> <translation id="1340643665687018190">मेनू बंद करा</translation> <translation id="1375321115329958930">सेव्ह केलेले पासवर्ड</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Google Pay वरील पत्ते आणि क्रेडिट कार्ड दाखवा</translation> <translation id="1540800554400757039">पत्ता 1</translation> <translation id="1545749641540134597">QR कोड स्कॅन करा</translation> +<translation id="1558704936695638228">अधिक टॅब पर्यायांसाठी दाबा आणि धरून ठेवा</translation> <translation id="1580783302095112590">मेल पाठवले.</translation> <translation id="1582732959743469162">यामुळे तुमच्या सुरू असलेल्या डाउनलोडची पुढची सर्व प्रगती थांबेल.</translation> <translation id="1605658421715042784">इमेज कॉपी करा</translation> @@ -240,6 +242,7 @@ <translation id="5062321486222145940">Google ड्राइव्ह इंस्टॉल करा</translation> <translation id="5083464117946352670">फाईल आकार निर्धारित करू शकत नाही.</translation> <translation id="5094827893301452931">Tweet पूर्ण केले.</translation> +<translation id="5123982333065001601">क्रेडिट कार्ड सेव्ह करा आणि भरा</translation> <translation id="5173593619615111996">सर्व गुप्त टॅब बंद करा</translation> <translation id="5181140330217080051">डाउनलोड करीत आहे</translation> <translation id="5186185447130319458">खाजगी</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb index 8e58408..4882608 100644 --- a/ios/chrome/app/strings/resources/ios_strings_no.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -76,6 +76,7 @@ <translation id="2120297377148151361">Aktivitet og interaksjoner</translation> <translation id="213900355088104901">Åpne en inkognitofane for å besøke nettsteder anonymt</translation> <translation id="2149973817440762519">Rediger bokmerke</translation> +<translation id="2207590065820824892"><ph name="UNREAD_COUNT" /> uleste leseliste artikler.</translation> <translation id="2230173723195178503">Nettsiden er lastet inn</translation> <translation id="2256128224215992540">Nettsteds- og søkeforslag</translation> <translation id="2267753748892043616">Legg til konto</translation> @@ -219,6 +220,7 @@ Dataene dine er kryptert med passordfrasen din for synkronisering. Skriv den inn for å starte synkroniseringen.</translation> <translation id="473775607612524610">Oppdater</translation> +<translation id="4807020197310989387">1 ulest leseliste artikler.</translation> <translation id="481968316161811770">Informasjonskapsler og nettstedsdata</translation> <translation id="4854345657858711387">Angi en adgangskode</translation> <translation id="4860895144060829044">Ring</translation> @@ -394,6 +396,7 @@ <translation id="7830720446622801252">Tjenester uten personlig preg</translation> <translation id="7856733331829174190">Kunne ikke laste ned</translation> <translation id="7859704718976024901">Nettlesingsloggen</translation> +<translation id="7918293828610777738">Leselisten din er tilgjengelig uten nett. Du kan legge til sider i leselisten ved å trykke på <ph name="SHARE_OPENING_ICON" /> og deretter <ph name="READ_LATER_TEXT" />.</translation> <translation id="7938254975914653459">FaceTime</translation> <translation id="7939128259257418052">Eksportér passord</translation> <translation id="7947953824732555851">Godta og logg på</translation> @@ -411,6 +414,7 @@ <translation id="8080028325999236607">Lukk alle faner</translation> <translation id="8114753159095730575">Filnedlasting er tilgjengelig. Du finner alternativer på nedre del av skjermen.</translation> <translation id="8160722851663543621">Sender søk fra adressefeltet og søkefeltet samt noen informasjonskapsler til standardsøkemotoren din</translation> +<translation id="8178325540017397816">Elementet du har valgt vil fjernes</translation> <translation id="8205564605687841303">Avbryt</translation> <translation id="8225985093977202398">Bufrede bilder og filer</translation> <translation id="8261506727792406068">Slett</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb index 4dc0d4a..dc153f9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Używaj synchronizacji i wszystkich usług</translation> <translation id="1272079795634619415">Zatrzymaj</translation> <translation id="1323735185997015385">Usuń</translation> +<translation id="132390688737681464">Zapisuj i automatycznie uzupełniaj adresy</translation> <translation id="132683371494960526">Kliknij dwukrotnie, by zmienić folder nadrzędny.</translation> <translation id="1340643665687018190">Zamknij menu</translation> <translation id="1375321115329958930">Zapisane hasła</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Pokaż adresy i karty kredytowe z Google Pay</translation> <translation id="1540800554400757039">Adres 1</translation> <translation id="1545749641540134597">Zeskanuj kod QR</translation> +<translation id="1558704936695638228">Naciśnij i przytrzymaj, by wyświetlić więcej opcji kart</translation> <translation id="1580783302095112590">E-mail wysłany.</translation> <translation id="1582732959743469162">Spowoduje to zatrzymanie bieżącego pobierania.</translation> <translation id="1605658421715042784">Kopiuj obraz</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Zainstaluj Dysk Google</translation> <translation id="5083464117946352670">Nie można ustalić rozmiaru pliku.</translation> <translation id="5094827893301452931">Tweet opublikowany.</translation> +<translation id="5123982333065001601">Zapisuj i automatycznie uzupełniaj dane kart kredytowych</translation> <translation id="5173593619615111996">Zamknij karty incognito</translation> <translation id="5181140330217080051">Pobieranie</translation> <translation id="5186185447130319458">Prywatna</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb index db53ae5..94f237a0 100644 --- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Usar a sincronização e todos os serviços</translation> <translation id="1272079795634619415">Parar</translation> <translation id="1323735185997015385">Excluir</translation> +<translation id="132390688737681464">Salvar e preencher endereços</translation> <translation id="132683371494960526">Toque duas vezes para alterar a pasta pai.</translation> <translation id="1340643665687018190">Fechar menu</translation> <translation id="1375321115329958930">Senhas salvas</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Mostrar endereços e cartões de crédito do Google Pay</translation> <translation id="1540800554400757039">Endereço 1</translation> <translation id="1545749641540134597">Ler código QR</translation> +<translation id="1558704936695638228">Toque e mantenha pressionado para ver mais opções da guia</translation> <translation id="1580783302095112590">Mensagem enviada.</translation> <translation id="1582732959743469162">Isso interromperá todo o progresso do download atual.</translation> <translation id="1605658421715042784">Copiar imagem</translation> @@ -240,6 +242,7 @@ <translation id="5062321486222145940">Instalar o Google Drive</translation> <translation id="5083464117946352670">Não é possível saber o tamanho do arquivo.</translation> <translation id="5094827893301452931">Tweet concluído.</translation> +<translation id="5123982333065001601">Salvar e preencher cartões de crédito</translation> <translation id="5173593619615111996">Fech guias an.</translation> <translation id="5181140330217080051">Fazendo download</translation> <translation id="5186185447130319458">Particular</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb index 590e01b..956b8fc 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Folosește sincronizarea și toate serviciile</translation> <translation id="1272079795634619415">Oprește</translation> <translation id="1323735185997015385">Șterge</translation> +<translation id="132390688737681464">Salvează și completează adresele</translation> <translation id="132683371494960526">Atinge de două ori pentru a modifica dosarul părinte.</translation> <translation id="1340643665687018190">Meniul Închide</translation> <translation id="1375321115329958930">Parole salvate</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Afișează adresele și cardurile de credit din Google Pay</translation> <translation id="1540800554400757039">Adresă 1</translation> <translation id="1545749641540134597">Scanează codul QR</translation> +<translation id="1558704936695638228">Apasă lung pentru mai multe opțiuni de file</translation> <translation id="1580783302095112590">E-mail trimis.</translation> <translation id="1582732959743469162">Aceasta va opri progresul descărcării actuale.</translation> <translation id="1605658421715042784">Copiază imaginea</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Instalează Google Drive</translation> <translation id="5083464117946352670">Dimensiune fișier necunoscută.</translation> <translation id="5094827893301452931">Tweet finalizat.</translation> +<translation id="5123982333065001601">Salvează și completează cardurile de credit</translation> <translation id="5173593619615111996">Închide toate filele incognito</translation> <translation id="5181140330217080051">Se descarcă</translation> <translation id="5186185447130319458">Privat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb index 4809824..934d565 100644 --- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -396,7 +396,7 @@ <translation id="7830720446622801252">Неперсонализированные сервисы</translation> <translation id="7856733331829174190">Не удалось скачать файл</translation> <translation id="7859704718976024901">История просмотра веб-страниц</translation> -<translation id="7918293828610777738">Список для чтения доступен без подключения к Интернету. Чтобы добавить в него страницу, нажмите <ph name="SHARE_OPENING_ICON" />, а потом <ph name="READ_LATER_TEXT" />.</translation> +<translation id="7918293828610777738">Список для чтения доступен без подключения к Интернету. Чтобы добавить в него страницу, нажмите <ph name="SHARE_OPENING_ICON" />, а затем –<ph name="READ_LATER_TEXT" />.</translation> <translation id="7938254975914653459">FaceTime</translation> <translation id="7939128259257418052">Экспорт паролей...</translation> <translation id="7947953824732555851">Принять и войти</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb index 88bccd9b..b84240d 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Používať synchronizáciu a všetky služby</translation> <translation id="1272079795634619415">Zastaviť</translation> <translation id="1323735185997015385">Odstrániť</translation> +<translation id="132390688737681464">Ukladať a dopĺňať adresy</translation> <translation id="132683371494960526">Dvojitým klepnutím zmeníte nadradený priečinok.</translation> <translation id="1340643665687018190">Zavrieť ponuku</translation> <translation id="1375321115329958930">Uložené heslá</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Zobraziť adresy a kreditné karty zo služby Google Pay</translation> <translation id="1540800554400757039">Adresa 1</translation> <translation id="1545749641540134597">Naskenovať kód QR</translation> +<translation id="1558704936695638228">Pridržaním zobrazíte ďalšie možnosti karty</translation> <translation id="1580783302095112590">E-mail bol odoslaný.</translation> <translation id="1582732959743469162">Tým zastavíte ďalší postup aktuálneho sťahovania.</translation> <translation id="1605658421715042784">Kopírovať obrázok</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Nainštalovať Disk Google</translation> <translation id="5083464117946352670">Nedá sa zistiť veľkosť súboru.</translation> <translation id="5094827893301452931">Tweet bol uverejnený.</translation> +<translation id="5123982333065001601">Ukladať a dopĺňať kreditné karty</translation> <translation id="5173593619615111996">Zavrieť všetky karty inkognito</translation> <translation id="5181140330217080051">Sťahovanie</translation> <translation id="5186185447130319458">Súkromné</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb index ce595906..4bed1bc4 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Uporaba sinhronizacije in vseh storitev</translation> <translation id="1272079795634619415">Ustavi</translation> <translation id="1323735185997015385">Izbriši</translation> +<translation id="132390688737681464">Shranjevanje in izpolnjevanje naslovov</translation> <translation id="132683371494960526">Double tap to change the parent folder.</translation> <translation id="1340643665687018190">Close Menu</translation> <translation id="1375321115329958930">Shranjena gesla</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Prikaži naslove in kreditne kartice iz Googla Pay</translation> <translation id="1540800554400757039">Naslov 1</translation> <translation id="1545749641540134597">Scan QR Code</translation> +<translation id="1558704936695638228">Pridržite za več možnosti zavihkov</translation> <translation id="1580783302095112590">Pošta je poslana.</translation> <translation id="1582732959743469162">S tem boste prekinili trenutni prenos.</translation> <translation id="1605658421715042784">Kopiraj sliko</translation> @@ -237,6 +239,7 @@ <translation id="5062321486222145940">Namesti Google Drive</translation> <translation id="5083464117946352670">Velikost datoteke ni mogoče določiti.</translation> <translation id="5094827893301452931">Tweet je dokončan.</translation> +<translation id="5123982333065001601">Shranjevanje in izpolnjevanje kreditnih kartic</translation> <translation id="5173593619615111996">Close All Incognito Tabs</translation> <translation id="5181140330217080051">Prenos</translation> <translation id="5186185447130319458">Zasebno</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb index d0223cb..c9ecce1 100644 --- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Користите синхронизацију и све услуге</translation> <translation id="1272079795634619415">Заустави</translation> <translation id="1323735185997015385">Избриши</translation> +<translation id="132390688737681464">Save and Fill Addresses (Чувај и уноси адресе)</translation> <translation id="132683371494960526">Додирните двапут да бисте променили надређени директоријум.</translation> <translation id="1340643665687018190">Затвори мени</translation> <translation id="1375321115329958930">Сачуване лозинке</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Приказуј адресе и кредитне картице из Google Pay-а</translation> <translation id="1540800554400757039">1. ред за адресу</translation> <translation id="1545749641540134597">Скенирајте QR кôд</translation> +<translation id="1558704936695638228">Press and hold for more tab options (Притисните и задржите ако желите више опција за картице)</translation> <translation id="1580783302095112590">Имејл је послата.</translation> <translation id="1582732959743469162">На тај начин ћете потпуно зауставити тренутно преузимање.</translation> <translation id="1605658421715042784">Копирај слику</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Инсталирај Google диск</translation> <translation id="5083464117946352670">Није могуће утврдити величину датотеке.</translation> <translation id="5094827893301452931">Твит је довршен.</translation> +<translation id="5123982333065001601">Save and Fill Credit Cards (Чувај и уноси кредитне картице)</translation> <translation id="5173593619615111996">Затвори све картице без архивирања</translation> <translation id="5181140330217080051">Преузимање</translation> <translation id="5186185447130319458">Приватно</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb index 110584e..348d253 100644 --- a/ios/chrome/app/strings/resources/ios_strings_te.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -73,6 +73,7 @@ <translation id="2116625576999540962"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> అంశాలు తరలించబడ్డాయి</translation> <translation id="213900355088104901">ప్రైవేట్గా బ్రౌజ్ చేయాలంటే, అజ్ఞాత ట్యాబ్ని తెరవండి</translation> <translation id="2149973817440762519">బుక్మార్క్ను సవరించు</translation> +<translation id="2207590065820824892">చదవాల్సిన జాబితాలో <ph name="UNREAD_COUNT" /> కథనాలు ఉన్నాయి.</translation> <translation id="2230173723195178503">వెబ్పేజీ లోడ్ అయ్యింది</translation> <translation id="2256128224215992540">శోధన & సైట్ సూచనలు</translation> <translation id="2267753748892043616">ఖాతాను జోడించు</translation> @@ -214,6 +215,7 @@ మీ సమకాలీకరణ రహస్య పదబంధంతో మీ డేటా గుప్తీకరించబడింది. సమకాలీకరణను ప్రారంభించడానికి దీన్ని నమోదు చేయండి.</translation> <translation id="473775607612524610">నవీకరణ</translation> +<translation id="4807020197310989387">చదవాల్సిన జాబితాలో 1 కథనం ఉంది.</translation> <translation id="481968316161811770">కుక్కీలు, సైట్ డేటా</translation> <translation id="4854345657858711387">పాస్కోడ్ని సెట్ చేయండి</translation> <translation id="4860895144060829044">కాల్ చేయండి</translation> @@ -384,6 +386,7 @@ <translation id="780301667611848630">వద్దు , ధన్యవాదాలు</translation> <translation id="7856733331829174190">డౌన్లోడ్ చేయడం సాధ్యపడలేదు</translation> <translation id="7859704718976024901">బ్రౌజింగ్ చరిత్ర</translation> +<translation id="7918293828610777738">మీ చదవాల్సిన జాబితా ఆఫ్లైన్లో అందుబాటులో ఉంది. మీ చదవాల్సిన జాబితాకు పేజీని జోడించడానికి, <ph name="SHARE_OPENING_ICON" />ని నొక్కి తర్వాత <ph name="READ_LATER_TEXT" /> ఎంపికను నొక్కండి.</translation> <translation id="7938254975914653459">ఫేస్టైమ్</translation> <translation id="7939128259257418052">పాస్వర్డ్లను ఎగుమతి చేయి...</translation> <translation id="7947953824732555851">ఆమోదించి, సైన్ ఇన్ చేయండి</translation> @@ -400,6 +403,7 @@ <translation id="8076014560081431679">సేవ్ చేసిన సైట్ సెట్టింగ్లు తొలగించబడవు మరియు మీ బ్రౌజింగ్ అలవాట్లను ప్రదర్శించవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation> <translation id="8080028325999236607">అన్ని ట్యాబ్లను మూసివేయి</translation> <translation id="8114753159095730575">ఫైల్ డౌన్లోడ్ అందుబాటులో ఉంది. ఎంపికలు స్క్రీన్ దిగువ భాగంలో అందుబాటులో ఉంటాయి.</translation> +<translation id="8178325540017397816">మీరు ఎంచుకున్న అంశాలు తీసివేయబడతాయి</translation> <translation id="8205564605687841303">రద్దు చేయి</translation> <translation id="8225985093977202398">కాష్ చిత్రాలు, ఫైల్లు</translation> <translation id="8261506727792406068">తొలగించు</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb index 3cab7f35..cd7fab9 100644 --- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -23,6 +23,7 @@ <translation id="127138278192656016">Використовувати синхронізацію та всі сервіси</translation> <translation id="1272079795634619415">Зупинити</translation> <translation id="1323735185997015385">Видалити</translation> +<translation id="132390688737681464">Зберігати й заповнювати адреси</translation> <translation id="132683371494960526">Двічі торкніться, щоб змінити батьківську папку.</translation> <translation id="1340643665687018190">Закрити меню</translation> <translation id="1375321115329958930">Збережені паролі</translation> @@ -39,6 +40,7 @@ <translation id="1532451416480227577">Показувати адреси й дані кредитних карток із Google Pay</translation> <translation id="1540800554400757039">Адреса 1</translation> <translation id="1545749641540134597">Сканувати QR-код</translation> +<translation id="1558704936695638228">Утримуйте, щоб відкрити більше параметрів вкладок</translation> <translation id="1580783302095112590">Лист надіслано.</translation> <translation id="1582732959743469162">Поточне завантаження зупиниться.</translation> <translation id="1605658421715042784">Копіювати зображення</translation> @@ -239,6 +241,7 @@ <translation id="5062321486222145940">Установити Google Диск</translation> <translation id="5083464117946352670">Невідомий розмір файлу.</translation> <translation id="5094827893301452931">Твіт опубліковано.</translation> +<translation id="5123982333065001601">Зберігати й заповнювати дані кредитних карток</translation> <translation id="5173593619615111996">Закрити всі анонімні вкладки</translation> <translation id="5181140330217080051">Завантаження</translation> <translation id="5186185447130319458">Конфіденційно</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb index f2c5836..6ff5381 100644 --- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb +++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -399,7 +399,7 @@ <translation id="7830720446622801252">非个性化服务</translation> <translation id="7856733331829174190">无法下载</translation> <translation id="7859704718976024901">浏览记录</translation> -<translation id="7918293828610777738">您的阅读清单可供离线访问。要将某个网页添加到该清单中,请依次点按 <ph name="SHARE_OPENING_ICON" /> 和“<ph name="READ_LATER_TEXT" />”。</translation> +<translation id="7918293828610777738">您的阅读清单支持离线访问。要将某个网页添加到该清单中,请依次点按 <ph name="SHARE_OPENING_ICON" /> 和“<ph name="READ_LATER_TEXT" />”。</translation> <translation id="7938254975914653459">FaceTime</translation> <translation id="7939128259257418052">导出密码…</translation> <translation id="7947953824732555851">接受并登录</translation>
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm index cf27b16..7ba87a95 100644 --- a/ios/chrome/browser/ui/browser_view_controller.mm +++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -1790,6 +1790,19 @@ self.visible = YES; + if (IsUIRefreshPhase1Enabled() && self.transitionCoordinator.animated) { + // The transition coordinator is animated only when presented from the + // TabGrid (when presented at the app start up, it is not animated). In that + // case, display the Long Press InProductHelp if needed. + auto completion = + ^(id<UIViewControllerTransitionCoordinatorContext> context) { + [self.bubblePresenter presentLongPressBubbleIfEligible]; + }; + + [self.transitionCoordinator animateAlongsideTransition:nil + completion:completion]; + } + // Restore hidden infobars. if (IsIPadIdiom() && _infoBarContainer) { _infoBarContainer->RestoreInfobars();
diff --git a/ios/chrome/browser/ui/ntp/incognito_view.mm b/ios/chrome/browser/ui/ntp/incognito_view.mm index ff07130..4c88896b 100644 --- a/ios/chrome/browser/ui/ntp/incognito_view.mm +++ b/ios/chrome/browser/ui/ntp/incognito_view.mm
@@ -99,8 +99,14 @@ [listString stringByReplacingOccurrencesOfString:@"<ul>" withString:@""]; listString = [listString stringByReplacingOccurrencesOfString:@"</ul>" withString:@""]; - listString = [listString stringByReplacingOccurrencesOfString:@"<li>" - withString:@"\u2022\t"]; + + // Use a regular expression to find and remove all leading whitespace from the + // lines which contain the "<li>" tag. This un-indents the bulleted lines. + listString = [listString + stringByReplacingOccurrencesOfString:@"\n +<li>" + withString:@"\n\u2022 " + options:NSRegularExpressionSearch + range:NSMakeRange(0, [listString length])]; listString = [listString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm index 72b6994..8a57dfd 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator.mm
@@ -224,6 +224,13 @@ } - (void)insertNewItemAtIndex:(NSUInteger)index { + // The incognito mediator's TabModel is briefly set to nil after the last + // incognito tab is closed. This occurs because the incognito BrowserState + // needs to be destroyed to correctly clear incognito browsing data. Don't + // attempt to create a new WebState with a nil BrowserState. + if (!self.tabModel) + return; + DCHECK(self.tabModel.browserState); web::WebState::CreateParams params(self.tabModel.browserState); std::unique_ptr<web::WebState> webState = web::WebState::Create(params);
diff --git a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm index 565ffaa..bd6522d 100644 --- a/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm +++ b/ios/chrome/browser/ui/tab_grid/tab_grid_mediator_unittest.mm
@@ -336,6 +336,17 @@ EXPECT_NSEQ(identifier, consumer_.items[0]); } +// Tests that |-insertNewItemAtIndex:| is a no-op of the mediator's TabModel +// is nil. +TEST_F(TabGridMediatorTest, InsertNewItemWithNoTabModelCommand) { + mediator_.tabModel = nil; + ASSERT_EQ(3, web_state_list_->count()); + ASSERT_EQ(1, web_state_list_->active_index()); + [mediator_ insertNewItemAtIndex:0]; + EXPECT_EQ(3, web_state_list_->count()); + EXPECT_EQ(1, web_state_list_->active_index()); +} + // Tests that when |-moveItemFromIndex:toIndex:| is called, there is no change // in the item count in |web_state_list_|, but that the constituent web states // have been reordered.
diff --git a/ios/chrome/browser/ui/toolbar/adaptive/BUILD.gn b/ios/chrome/browser/ui/toolbar/adaptive/BUILD.gn index cc44e605..6cd0825 100644 --- a/ios/chrome/browser/ui/toolbar/adaptive/BUILD.gn +++ b/ios/chrome/browser/ui/toolbar/adaptive/BUILD.gn
@@ -115,25 +115,6 @@ libs = [ "XCTest.framework" ] } -source_set("unit_tests") { - configs += [ "//build/config/compiler:enable_arc" ] - testonly = true - sources = [ - "adaptive_toolbar_view_controller_unittest.mm", - ] - deps = [ - ":adaptive_ui", - "//base", - "//base/test:test_support", - "//ios/chrome/browser/ui:ui_util", - "//ios/chrome/browser/ui/commands", - "//ios/chrome/browser/ui/popup_menu/public", - "//ios/chrome/browser/ui/toolbar/buttons", - "//testing/gtest", - "//third_party/ocmock", - ] -} - source_set("hooks") { configs += [ "//build/config/compiler:enable_arc" ] testonly = true
diff --git a/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller_unittest.mm b/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller_unittest.mm deleted file mode 100644 index c02b3619..0000000 --- a/ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller_unittest.mm +++ /dev/null
@@ -1,116 +0,0 @@ -// Copyright 2018 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. - -#import "ios/chrome/browser/ui/toolbar/adaptive/adaptive_toolbar_view_controller.h" - -#import <UIKit/UIGestureRecognizerSubclass.h> - -#include "base/run_loop.h" -#import "base/test/ios/wait_util.h" -#include "base/test/scoped_task_environment.h" -#import "ios/chrome/browser/ui/commands/popup_menu_commands.h" -#import "ios/chrome/browser/ui/popup_menu/public/popup_menu_long_press_delegate.h" -#import "ios/chrome/browser/ui/toolbar/adaptive/primary_toolbar_view_controller.h" -#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button.h" -#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_button_factory.h" -#import "ios/chrome/browser/ui/toolbar/buttons/toolbar_constants.h" -#include "ios/chrome/browser/ui/ui_util.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" -#import "third_party/ocmock/OCMock/OCMock.h" -#include "third_party/ocmock/gtest_support.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -namespace { - -UIView* GetTabGridToolbarButton(UIView* parentView) { - if (parentView.accessibilityIdentifier == kToolbarStackButtonIdentifier) - return parentView; - - for (UIView* subview in parentView.subviews) { - UIView* buttonSubview = GetTabGridToolbarButton(subview); - if (buttonSubview) - return buttonSubview; - } - return nil; -} - -class AdaptiveToolbarViewControllerTest : public PlatformTest { - protected: - AdaptiveToolbarViewControllerTest() - : scopedTaskEnvironment_( - base::test::ScopedTaskEnvironment::MainThreadType::UI) {} - - base::test::ScopedTaskEnvironment scopedTaskEnvironment_; -}; - -TEST_F(AdaptiveToolbarViewControllerTest, DetectForceTouch) { - if (!IsUIRefreshPhase1Enabled()) - return; - - id dispatcher = OCMProtocolMock(@protocol(PopupMenuCommands)); - id longPressDelegate = OCMProtocolMock(@protocol(PopupMenuLongPressDelegate)); - ToolbarButtonFactory* factory = - [[ToolbarButtonFactory alloc] initWithStyle:NORMAL]; - - AdaptiveToolbarViewController* toolbar = - [[PrimaryToolbarViewController alloc] init]; - toolbar.buttonFactory = factory; - toolbar.longPressDelegate = longPressDelegate; - toolbar.dispatcher = dispatcher; - - UIView* buttonView = GetTabGridToolbarButton(toolbar.view); - - ASSERT_NE(buttonView, nil); - ASSERT_GE(buttonView.gestureRecognizers.count, 1UL); - - UIGestureRecognizer* gestureRecognizer = buttonView.gestureRecognizers[0]; - - id event = OCMClassMock([UIEvent class]); - - id touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.7); - [gestureRecognizer touchesBegan:[NSSet setWithObject:touch] withEvent:event]; - [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event]; - - // Check that the dispatcher is called when the force touch is detected. - OCMExpect([dispatcher showTabGridButtonPopup]); - - touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.9); - [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event]; - - base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05)); - - EXPECT_OCMOCK_VERIFY(dispatcher); - - // Check that the longPressDelegate is notified when the gesture recognizer - // changes, even with lower force. - [[[longPressDelegate expect] ignoringNonObjectArgs] - longPressFocusPointChangedTo:CGPointZero]; - - touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.9); - [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event]; - - base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05)); - - EXPECT_OCMOCK_VERIFY(longPressDelegate); - - // Change the state to Ended here, as the long press gesture recognizer isn't - // working on unit test (the state is cancelled). - gestureRecognizer.state = UIGestureRecognizerStateEnded; - - base::test::ios::SpinRunLoopWithMinDelay(base::TimeDelta::FromSecondsD(0.05)); - - EXPECT_OCMOCK_VERIFY(longPressDelegate); -} - -} // namespace
diff --git a/ios/chrome/browser/ui/util/BUILD.gn b/ios/chrome/browser/ui/util/BUILD.gn index 6abd6cb..be0c9bf 100644 --- a/ios/chrome/browser/ui/util/BUILD.gn +++ b/ios/chrome/browser/ui/util/BUILD.gn
@@ -63,7 +63,6 @@ sources = [ "CRUILabel+AttributeUtils_unittest.mm", "core_text_util_unittest.mm", - "force_touch_long_press_gesture_recognizer_unittest.mm", "label_link_controller_unittest.mm", "label_observer_unittest.mm", "manual_text_framer_unittest.mm", @@ -77,7 +76,6 @@ "//ios/third_party/material_components_ios", "//ios/third_party/material_roboto_font_loader_ios", "//testing/gtest", - "//third_party/ocmock", "//url", ] }
diff --git a/ios/chrome/browser/ui/util/force_touch_long_press_gesture_recognizer_unittest.mm b/ios/chrome/browser/ui/util/force_touch_long_press_gesture_recognizer_unittest.mm deleted file mode 100644 index f3909a7f..0000000 --- a/ios/chrome/browser/ui/util/force_touch_long_press_gesture_recognizer_unittest.mm +++ /dev/null
@@ -1,69 +0,0 @@ -// Copyright 2018 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. - -#import "ios/chrome/browser/ui/util/force_touch_long_press_gesture_recognizer.h" - -#import <UIKit/UIGestureRecognizerSubclass.h> - -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" -#import "third_party/ocmock/OCMock/OCMock.h" - -#if !defined(__has_feature) || !__has_feature(objc_arc) -#error "This file requires ARC support." -#endif - -@interface ForceTouchLongPressGestureRecognizerReceiverForTest : NSObject - -@end - -@implementation ForceTouchLongPressGestureRecognizerReceiverForTest - -- (void)handleGestureRecognizer:(UIGestureRecognizer*)gesture { -} - -@end - -namespace { - -using ForceTouchLongPressGestureRecognizerTest = PlatformTest; - -TEST_F(ForceTouchLongPressGestureRecognizerTest, DetectForceTouch) { - ForceTouchLongPressGestureRecognizerReceiverForTest* testReceiver = - [[ForceTouchLongPressGestureRecognizerReceiverForTest alloc] init]; - - ForceTouchLongPressGestureRecognizer* gestureRecognizer = - [[ForceTouchLongPressGestureRecognizer alloc] - initWithTarget:testReceiver - action:@selector(handleGestureRecognizer:)]; - gestureRecognizer.forceThreshold = 0.6; - - ASSERT_EQ(UIGestureRecognizerStatePossible, gestureRecognizer.state); - - id event = OCMClassMock([UIEvent class]); - - id touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.5); - [gestureRecognizer touchesBegan:[NSSet setWithObject:touch] withEvent:event]; - [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event]; - - EXPECT_EQ(UIGestureRecognizerStatePossible, gestureRecognizer.state); - - touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.7); - [gestureRecognizer touchesMoved:[NSSet setWithObject:touch] withEvent:event]; - - EXPECT_EQ(UIGestureRecognizerStateBegan, gestureRecognizer.state); - - touch = OCMClassMock([UITouch class]); - OCMStub([touch maximumPossibleForce]).andReturn(1); - OCMStub([touch force]).andReturn(0.7); - [gestureRecognizer touchesEnded:[NSSet setWithObject:touch] withEvent:event]; - - EXPECT_EQ(UIGestureRecognizerStateCancelled, gestureRecognizer.state); -} - -} // namespace
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 12ea7a3..a4facee 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -235,7 +235,6 @@ "//ios/chrome/browser/ui/table_view/cells:unit_tests", "//ios/chrome/browser/ui/tabs:unit_tests", "//ios/chrome/browser/ui/toolbar:unit_tests", - "//ios/chrome/browser/ui/toolbar/adaptive:unit_tests", "//ios/chrome/browser/ui/toolbar/clean:unit_tests", "//ios/chrome/browser/ui/toolbar/legacy:unit_tests", "//ios/chrome/browser/ui/tools_menu:unit_tests",
diff --git a/ios/web/navigation/error_retry_state_machine.mm b/ios/web/navigation/error_retry_state_machine.mm index 7b4f681..5f2ee60f 100644 --- a/ios/web/navigation/error_retry_state_machine.mm +++ b/ios/web/navigation/error_retry_state_machine.mm
@@ -29,7 +29,19 @@ } void ErrorRetryStateMachine::SetDisplayingNativeError() { - DCHECK_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, state_); + // Native error is displayed in two scenarios: + // (1) Placeholder entry for network load error finished loading in web view. + // This is the common case. + // (2) Retry of a previously failed load failed in SSL error. This can happen + // when the first navigation failed in offline mode. SSL interstitial does + // not normally trigger ErrorRetryStateMachine because the error page is + // not to become part of the navigation history. This leaves the item + // stuck in the transient kRetryFailedNavigationItem state. So for this + // specific case, treat the SSL interstitial as a native error so that + // error retry works as expected on subsequent back/forward navigations. + DCHECK(state_ == ErrorRetryState::kReadyToDisplayErrorForFailedNavigation || + state_ == ErrorRetryState::kRetryFailedNavigationItem) + << "Unexpected error retry state: " << static_cast<int>(state_); state_ = ErrorRetryState::kDisplayingNativeErrorForFailedNavigation; }
diff --git a/ios/web/navigation/wk_based_navigation_manager_impl.mm b/ios/web/navigation/wk_based_navigation_manager_impl.mm index d0b37e4..d91997d 100644 --- a/ios/web/navigation/wk_based_navigation_manager_impl.mm +++ b/ios/web/navigation/wk_based_navigation_manager_impl.mm
@@ -46,6 +46,12 @@ navigationItem]; } +// Returns true if |url1| is the same as |url2| or is a placeholder of |url2|. +bool IsSameOrPlaceholderOf(const GURL& url1, const GURL& url2) { + return url1 == url2 || + url1 == web::wk_navigation_util::CreatePlaceholderUrlForUrl(url2); +} + } // namespace namespace web { @@ -153,16 +159,17 @@ // item has already been updated to point to the new location in back-forward // history, so pending item index should be set to the current item index. // Similarly, current item should be reused when reloading a placeholder URL. + // + // WebErrorPages and URL rewriting in ErrorRetryStateMachine make it possible + // for the web view URL to be the target URL even though current item is the + // placeholder. This is taken into consideration when checking equivalence + // between the URLs. id<CRWWebViewNavigationProxy> proxy = delegate_->GetWebViewNavigationProxy(); WKBackForwardListItem* current_wk_item = proxy.backForwardList.currentItem; - GURL current_item_url = net::GURLWithNSURL(current_wk_item.URL); - bool current_item_is_pending_item = - current_item_url == pending_item_->GetURL() || - current_item_url == wk_navigation_util::CreatePlaceholderUrlForUrl( - pending_item_->GetURL()); + const GURL current_item_url = net::GURLWithNSURL(current_wk_item.URL); if (proxy.backForwardList.currentItem && - current_item_url == net::GURLWithNSURL(proxy.URL) && - current_item_is_pending_item) { + IsSameOrPlaceholderOf(current_item_url, pending_item_->GetURL()) && + IsSameOrPlaceholderOf(current_item_url, net::GURLWithNSURL(proxy.URL))) { pending_item_index_ = web_view_cache_.GetCurrentItemIndex(); // If |currentItem| is not already associated with a NavigationItemImpl, @@ -294,6 +301,7 @@ void WKBasedNavigationManagerImpl::DiscardNonCommittedItems() { pending_item_.reset(); transient_item_.reset(); + pending_item_index_ = -1; } int WKBasedNavigationManagerImpl::GetItemCount() const {
diff --git a/ios/web/web_state/ui/crw_web_controller.mm b/ios/web/web_state/ui/crw_web_controller.mm index e24f4135..ab5c58c 100644 --- a/ios/web/web_state/ui/crw_web_controller.mm +++ b/ios/web/web_state/ui/crw_web_controller.mm
@@ -772,8 +772,7 @@ - (void)updateSSLStatusForCurrentNavigationItem; // Called when a load ends in an SSL error and certificate chain. - (void)handleSSLCertError:(NSError*)error - forNavigation:navigation - errorRetryCommand:(web::ErrorRetryCommand)command; + forNavigation:(WKNavigation*)navigation; // Used in webView:didReceiveAuthenticationChallenge:completionHandler: to // reply with NSURLSessionAuthChallengeDisposition and credentials. @@ -890,9 +889,7 @@ // If this returns NO, the load should be cancelled. - (BOOL)shouldAllowLoadWithNavigationAction:(WKNavigationAction*)action; // Called when a load ends in an error. -- (void)handleLoadError:(NSError*)error - forNavigation:(WKNavigation*)navigation - errorRetryCommand:(web::ErrorRetryCommand)command; +- (void)handleLoadError:(NSError*)error forNavigation:(WKNavigation*)navigation; // Handles cancelled load in WKWebView (error with NSURLErrorCancelled code). - (void)handleCancelledError:(NSError*)error @@ -2954,8 +2951,7 @@ } - (void)handleLoadError:(NSError*)error - forNavigation:(WKNavigation*)navigation - errorRetryCommand:(web::ErrorRetryCommand)errorRetryCommand { + forNavigation:(WKNavigation*)navigation { if (error.code == NSURLErrorUnsupportedURL) return; @@ -3045,9 +3041,26 @@ [self loadErrorPageForNavigationItem:self.currentNavItem navigationContext:navigationContext]; } else { - [self handleErrorRetryCommand:errorRetryCommand - navigationItem:self.currentNavItem - navigationContext:navigationContext]; + web::NavigationItemImpl* item = web::GetItemWithUniqueID( + self.navigationManagerImpl, + navigationContext->GetNavigationItemUniqueID()); + if (item) { + GURL errorURL = + net::GURLWithNSURL(error.userInfo[NSURLErrorFailingURLErrorKey]); + WKWebViewErrorSource source = WKWebViewErrorSourceFromError(error); + web::ErrorRetryCommand command = web::ErrorRetryCommand::kDoNothing; + if (source == PROVISIONAL_LOAD) { + command = + item->error_retry_state_machine().DidFailProvisionalNavigation( + net::GURLWithNSURL(_webView.URL), errorURL); + } else if (source == NAVIGATION) { + command = item->error_retry_state_machine().DidFailNavigation( + net::GURLWithNSURL(_webView.URL), errorURL); + } + [self handleErrorRetryCommand:command + navigationItem:item + navigationContext:navigationContext]; + } } if (base::FeatureList::IsEnabled(web::features::kWebErrorPages) && @@ -3674,8 +3687,7 @@ } - (void)handleSSLCertError:(NSError*)error - forNavigation:(WKNavigation*)navigation - errorRetryCommand:(web::ErrorRetryCommand)command { + forNavigation:(WKNavigation*)navigation { CHECK(web::IsWKWebViewSSLCertError(error)); net::SSLInfo info; @@ -3685,9 +3697,7 @@ // |info.cert| can be null if certChain in NSError is empty or can not be // parsed, in this case do not ask delegate if error should be allowed, it // should not be. - [self handleLoadError:error - forNavigation:navigation - errorRetryCommand:command]; + [self handleLoadError:error forNavigation:navigation]; return; } @@ -3718,6 +3728,21 @@ } } + // If the current navigation item is in error state, update the error retry + // state machine to indicate that SSL interstitial error will be displayed to + // make sure subsequent back/forward navigation to this item starts with the + // correct error retry state. + web::NavigationContextImpl* context = + [_navigationStates contextForNavigation:navigation]; + if (context) { + web::NavigationItemImpl* item = web::GetItemWithUniqueID( + self.navigationManagerImpl, context->GetNavigationItemUniqueID()); + if (item && item->error_retry_state_machine().state() == + web::ErrorRetryState::kRetryFailedNavigationItem) { + item->error_retry_state_machine().SetDisplayingNativeError(); + } + } + // Ask web client if this cert error should be allowed. web::GetWebClient()->AllowCertificateError( _webStateImpl, net::MapCertStatusToNetError(info.cert_status), info, @@ -3971,9 +3996,7 @@ messageRouter:messageRouter completionHandler:^(NSError* loadError) { if (loadError) - [self handleLoadError:loadError - forNavigation:nil - errorRetryCommand:web::ErrorRetryCommand::kDoNothing]; + [self handleLoadError:loadError forNavigation:nil]; else self.webStateImpl->SetContentsMimeType("text/html"); }]; @@ -4581,29 +4604,10 @@ [self handleCancelledError:error forNavigation:navigation]; } else { error = WKWebViewErrorWithSource(error, PROVISIONAL_LOAD); - - web::NavigationContextImpl* context = - [_navigationStates contextForNavigation:navigation]; - web::NavigationItemImpl* item = - context ? web::GetItemWithUniqueID(self.navigationManagerImpl, - context->GetNavigationItemUniqueID()) - : nullptr; - web::ErrorRetryCommand command = web::ErrorRetryCommand::kDoNothing; - if (item) { - GURL errorURL = - net::GURLWithNSURL(error.userInfo[NSURLErrorFailingURLErrorKey]); - command = item->error_retry_state_machine().DidFailProvisionalNavigation( - net::GURLWithNSURL(webView.URL), errorURL); - } - if (web::IsWKWebViewSSLCertError(error)) { - [self handleSSLCertError:error - forNavigation:navigation - errorRetryCommand:command]; + [self handleSSLCertError:error forNavigation:navigation]; } else { - [self handleLoadError:error - forNavigation:navigation - errorRetryCommand:command]; + [self handleLoadError:error forNavigation:navigation]; } } @@ -4913,42 +4917,11 @@ withError:(NSError*)error { [self didReceiveWebViewNavigationDelegateCallback]; - GURL webViewURL = net::GURLWithNSURL(webView.URL); - - auto errorRetryCommand = web::ErrorRetryCommand::kDoNothing; - if (web::GetWebClient()->IsSlimNavigationManagerEnabled() || - base::FeatureList::IsEnabled(web::features::kWebErrorPages)) { - // Navigation to placeholder URL should never fail. - GURL errorURL = - net::GURLWithNSURL(error.userInfo[NSURLErrorFailingURLErrorKey]); - DCHECK(!IsPlaceholderUrl(errorURL)); - // Sometimes |didFailNavigation| callback arrives after |stopLoading| has - // been called. Abort in this case. - if ([_navigationStates stateForNavigation:navigation] == - web::WKNavigationState::NONE) { - return; - } - - web::NavigationContextImpl* context = - [_navigationStates contextForNavigation:navigation]; - web::NavigationItemImpl* item = - context ? web::GetItemWithUniqueID(self.navigationManagerImpl, - context->GetNavigationItemUniqueID()) - : nullptr; - if (item) { - GURL errorURL = - net::GURLWithNSURL(error.userInfo[NSURLErrorFailingURLErrorKey]); - errorRetryCommand = item->error_retry_state_machine().DidFailNavigation( - webViewURL, errorURL); - } - } - [_navigationStates setState:web::WKNavigationState::FAILED forNavigation:navigation]; [self handleLoadError:WKWebViewErrorWithSource(error, NAVIGATION) - forNavigation:navigation - errorRetryCommand:errorRetryCommand]; + forNavigation:navigation]; _certVerificationErrors->Clear(); [self forgetNullWKNavigation:navigation]; }
diff --git a/media/base/test_helpers.cc b/media/base/test_helpers.cc index 7e07d924..e128604af 100644 --- a/media/base/test_helpers.cc +++ b/media/base/test_helpers.cc
@@ -47,19 +47,19 @@ base::Closure NewExpectedClosure() { StrictMock<MockCallback>* callback = new StrictMock<MockCallback>(); EXPECT_CALL(*callback, Run()); - return base::Bind(&MockCallback::Run, callback); + return base::Bind(&MockCallback::Run, WrapRefCounted(callback)); } base::Callback<void(bool)> NewExpectedBoolCB(bool success) { StrictMock<MockCallback>* callback = new StrictMock<MockCallback>(); EXPECT_CALL(*callback, RunWithBool(success)); - return base::Bind(&MockCallback::RunWithBool, callback); + return base::Bind(&MockCallback::RunWithBool, WrapRefCounted(callback)); } PipelineStatusCB NewExpectedStatusCB(PipelineStatus status) { StrictMock<MockCallback>* callback = new StrictMock<MockCallback>(); EXPECT_CALL(*callback, RunWithStatus(status)); - return base::Bind(&MockCallback::RunWithStatus, callback); + return base::Bind(&MockCallback::RunWithStatus, WrapRefCounted(callback)); } WaitableMessageLoopEvent::WaitableMessageLoopEvent()
diff --git a/media/blink/webmediaplayer_impl.cc b/media/blink/webmediaplayer_impl.cc index b8e6a93b..58f84ef 100644 --- a/media/blink/webmediaplayer_impl.cc +++ b/media/blink/webmediaplayer_impl.cc
@@ -1162,12 +1162,12 @@ return GetPipelineStatistics().video_frames_dropped; } -size_t WebMediaPlayerImpl::AudioDecodedByteCount() const { +uint64_t WebMediaPlayerImpl::AudioDecodedByteCount() const { DCHECK(main_task_runner_->BelongsToCurrentThread()); return GetPipelineStatistics().audio_bytes_decoded; } -size_t WebMediaPlayerImpl::VideoDecodedByteCount() const { +uint64_t WebMediaPlayerImpl::VideoDecodedByteCount() const { DCHECK(main_task_runner_->BelongsToCurrentThread()); return GetPipelineStatistics().video_bytes_decoded; }
diff --git a/media/blink/webmediaplayer_impl.h b/media/blink/webmediaplayer_impl.h index cb72c64a..a0112b5 100644 --- a/media/blink/webmediaplayer_impl.h +++ b/media/blink/webmediaplayer_impl.h
@@ -195,8 +195,8 @@ unsigned DecodedFrameCount() const override; unsigned DroppedFrameCount() const override; - size_t AudioDecodedByteCount() const override; - size_t VideoDecodedByteCount() const override; + uint64_t AudioDecodedByteCount() const override; + uint64_t VideoDecodedByteCount() const override; bool CopyVideoTextureToPlatformTexture( gpu::gles2::GLES2Interface* gl,
diff --git a/media/renderers/paint_canvas_video_renderer.cc b/media/renderers/paint_canvas_video_renderer.cc index febd8eb6..9004aa0 100644 --- a/media/renderers/paint_canvas_video_renderer.cc +++ b/media/renderers/paint_canvas_video_renderer.cc
@@ -176,8 +176,11 @@ const Context3D& context_3d) { DCHECK(PIXEL_FORMAT_ARGB == video_frame->format() || PIXEL_FORMAT_XRGB == video_frame->format() || + PIXEL_FORMAT_RGB24 == video_frame->format() || + PIXEL_FORMAT_RGB32 == video_frame->format() || PIXEL_FORMAT_NV12 == video_frame->format() || - PIXEL_FORMAT_UYVY == video_frame->format()); + PIXEL_FORMAT_UYVY == video_frame->format()) + << "Format: " << (int)video_frame->format(); const gpu::MailboxHolder& mailbox_holder = video_frame->mailbox_holder(0); DCHECK(mailbox_holder.texture_target == GL_TEXTURE_2D ||
diff --git a/net/quic/chromium/quic_stream_factory.cc b/net/quic/chromium/quic_stream_factory.cc index 56929b42..eccfc9f 100644 --- a/net/quic/chromium/quic_stream_factory.cc +++ b/net/quic/chromium/quic_stream_factory.cc
@@ -1523,6 +1523,15 @@ config.SetInitialStreamFlowControlWindowToSend(kQuicStreamMaxRecvWindowSize); config.SetBytesForConnectionIdToSend(0); ConfigureInitialRttEstimate(server_id, &config); + if (quic_version > quic::QUIC_VERSION_35 && + quic_version < quic::QUIC_VERSION_44 && + !config.HasClientSentConnectionOption(quic::kNSTP, + quic::Perspective::IS_CLIENT)) { + // Enable the no stop waiting frames connection option by default. + quic::QuicTagVector connection_options = config.SendConnectionOptions(); + connection_options.push_back(quic::kNSTP); + config.SetConnectionOptionsToSend(connection_options); + } // Use the factory to create a new socket performance watcher, and pass the // ownership to QuicChromiumClientSession.
diff --git a/net/quic/chromium/quic_test_packet_maker.cc b/net/quic/chromium/quic_test_packet_maker.cc index 4a6c02da..0904341 100644 --- a/net/quic/chromium/quic_test_packet_maker.cc +++ b/net/quic/chromium/quic_test_packet_maker.cc
@@ -136,7 +136,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back(); @@ -280,7 +280,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back(); @@ -341,7 +341,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back(); @@ -487,7 +487,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back(); @@ -573,7 +573,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back(); @@ -1064,7 +1064,7 @@ DVLOG(1) << "Adding frame: " << frames.back(); quic::QuicStopWaitingFrame stop_waiting; - if (version_ <= quic::QUIC_VERSION_43) { + if (version_ == quic::QUIC_VERSION_35) { stop_waiting.least_unacked = least_unacked; frames.push_back(quic::QuicFrame(&stop_waiting)); DVLOG(1) << "Adding frame: " << frames.back();
diff --git a/net/third_party/quic/test_tools/quic_test_utils.cc b/net/third_party/quic/test_tools/quic_test_utils.cc index fb595f83..0f9104b 100644 --- a/net/third_party/quic/test_tools/quic_test_utils.cc +++ b/net/third_party/quic/test_tools/quic_test_utils.cc
@@ -925,6 +925,14 @@ kInitialSessionFlowControlWindowForTest); QuicConfigPeer::SetReceivedMaxIncomingDynamicStreams( &config, kDefaultMaxStreamsPerConnection); + // Default enable NSTP. + // This is unnecessary for versions > 44 + if (!config.HasClientSentConnectionOption(quic::kNSTP, + quic::Perspective::IS_CLIENT)) { + quic::QuicTagVector connection_options; + connection_options.push_back(quic::kNSTP); + config.SetConnectionOptionsToSend(connection_options); + } return config; }
diff --git a/ppapi/proxy/ppb_graphics_3d_proxy.cc b/ppapi/proxy/ppb_graphics_3d_proxy.cc index 708925c4..f42220f 100644 --- a/ppapi/proxy/ppb_graphics_3d_proxy.cc +++ b/ppapi/proxy/ppb_graphics_3d_proxy.cc
@@ -44,9 +44,10 @@ } // namespace -Graphics3D::Graphics3D(const HostResource& resource, const gfx::Size& size) - : PPB_Graphics3D_Shared(resource, size) { -} +Graphics3D::Graphics3D(const HostResource& resource, + const gfx::Size& size, + const bool single_buffer) + : PPB_Graphics3D_Shared(resource, size), single_buffer(single_buffer) {} Graphics3D::~Graphics3D() { DestroyGLES2Impl(); @@ -125,9 +126,11 @@ gpu::gles2::GLES2Implementation* gl = gles2_impl(); gl->SwapBuffers(swap_id_++); - PluginDispatcher::GetForResource(this)->Send( - new PpapiHostMsg_PPBGraphics3D_TakeFrontBuffer(API_ID_PPB_GRAPHICS_3D, - host_resource())); + if (!single_buffer || swap_id_ == 1) { + PluginDispatcher::GetForResource(this)->Send( + new PpapiHostMsg_PPBGraphics3D_TakeFrontBuffer(API_ID_PPB_GRAPHICS_3D, + host_resource())); + } gpu::SyncToken new_sync_token; gl->GenSyncTokenCHROMIUM(new_sync_token.GetData()); @@ -239,7 +242,8 @@ return 0; scoped_refptr<Graphics3D> graphics_3d( - new Graphics3D(result, attrib_helper.offscreen_framebuffer_size)); + new Graphics3D(result, attrib_helper.offscreen_framebuffer_size, + attrib_helper.single_buffer)); if (!graphics_3d->Init(share_gles2, capabilities, std::move(shared_state), command_buffer_id)) { return 0;
diff --git a/ppapi/proxy/ppb_graphics_3d_proxy.h b/ppapi/proxy/ppb_graphics_3d_proxy.h index afb6a4f..8d2f636 100644 --- a/ppapi/proxy/ppb_graphics_3d_proxy.h +++ b/ppapi/proxy/ppb_graphics_3d_proxy.h
@@ -37,7 +37,9 @@ class PPAPI_PROXY_EXPORT Graphics3D : public PPB_Graphics3D_Shared { public: - Graphics3D(const HostResource& resource, const gfx::Size& size); + Graphics3D(const HostResource& resource, + const gfx::Size& size, + const bool single_buffer); ~Graphics3D() override; bool Init(gpu::gles2::GLES2Implementation* share_gles2, @@ -70,6 +72,7 @@ std::unique_ptr<PpapiCommandBufferProxy> command_buffer_; uint64_t swap_id_ = 0; + bool single_buffer = false; DISALLOW_COPY_AND_ASSIGN(Graphics3D); }; @@ -137,4 +140,3 @@ } // namespace ppapi #endif // PPAPI_PROXY_PPB_GRAPHICS_3D_PROXY_H_ -
diff --git a/ppapi/proxy/video_decoder_resource_unittest.cc b/ppapi/proxy/video_decoder_resource_unittest.cc index 89ce92d..9b3efee8 100644 --- a/ppapi/proxy/video_decoder_resource_unittest.cc +++ b/ppapi/proxy/video_decoder_resource_unittest.cc
@@ -96,7 +96,9 @@ HostResource host_resource; host_resource.SetHostResource(pp_instance(), kGraphics3D); scoped_refptr<ppapi::proxy::Graphics3D> graphics_3d( - new ppapi::proxy::Graphics3D(host_resource, gfx::Size(640, 480))); + new ppapi::proxy::Graphics3D(host_resource, gfx::Size(640, 480), + false)); + return graphics_3d->GetReference(); }
diff --git a/remoting/host/curtain_mode_mac.cc b/remoting/host/curtain_mode_mac.cc index a94e569f..9dba6ee8 100644 --- a/remoting/host/curtain_mode_mac.cc +++ b/remoting/host/curtain_mode_mac.cc
@@ -27,6 +27,37 @@ "/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/" "CGSession"; +// Most machines will have < 4 displays but a larger upper bound won't hurt. +const UInt32 kMaxDisplaysToQuery = 32; + +// 0x76697274 is a 4CC value for 'virt' which indicates the display is virtual. +const CGDirectDisplayID kVirtualDisplayID = 0x76697274; + +// This method detects whether the local machine is running headless. +// Typically returns true when the session is curtained or if there are no +// physical monitors attached. In those two scenarios, the online display will +// be marked as virtual. +bool IsRunningHeadless() { + CGDirectDisplayID online_displays[kMaxDisplaysToQuery]; + UInt32 online_display_count = 0; + CGError return_code = CGGetOnlineDisplayList( + kMaxDisplaysToQuery, online_displays, &online_display_count); + if (return_code != kCGErrorSuccess) { + LOG(ERROR) << "CGGetOnlineDisplayList() failed: " << return_code; + // If this fails, assume machine is headless to err on the side of caution. + return true; + } + + for (UInt32 i = 0; i < online_display_count; i++) { + if (CGDisplayModelNumber(online_displays[i]) != kVirtualDisplayID) { + // At least one monitor is attached so the machine is not headless. + return false; + } + } + + return true; +} + // Used to detach the current session from the local console and disconnect // the connnection if it gets re-attached. // @@ -141,6 +172,13 @@ kCGSessionOnConsoleKey); const void* logged_in = CFDictionaryGetValue(session, kCGSessionLoginDoneKey); if (logged_in == kCFBooleanTrue && on_console == kCFBooleanTrue) { + // If IsRunningHeadless() returns true then we know that CGSession will fail + // silently w/o curtaining the session. This is a publicly known issue for + // CGSession and has been for several years. We still want to try to + // curtain as the problem could be fixed in a future OS release and the user + // could try reconnecting in that case (until we had a real fix deployed). + // Issue is tracked via: rdar://42733382 + bool is_headless = IsRunningHeadless(); pid_t child = fork(); if (child == 0) { execl(kCGSessionPath, kCGSessionPath, "-suspend", nullptr); @@ -153,6 +191,17 @@ DisconnectSession(protocol::ErrorCode::HOST_CONFIGURATION_ERROR); return; } + if (is_headless) { + // Disconnect the session to prevent the user from unlocking the machine + // since the call to CGSession very likely failed. If we allow them to + // unlock the machine, the local desktop would be visible if the local + // monitor were plugged in. + LOG(ERROR) << "Machine is running in headless mode (no monitors " + << "attached), we attempted to curtain the session but " + << "CGSession is likely to fail in this mode."; + DisconnectSession(protocol::ErrorCode::HOST_CONFIGURATION_ERROR); + return; + } } else { LOG(ERROR) << "fork() failed."; DisconnectSession(protocol::ErrorCode::HOST_CONFIGURATION_ERROR);
diff --git a/remoting/host/linux/BUILD.gn b/remoting/host/linux/BUILD.gn index e0a4627..32ccdcc 100644 --- a/remoting/host/linux/BUILD.gn +++ b/remoting/host/linux/BUILD.gn
@@ -62,10 +62,10 @@ if (is_component_build) { sources += [ "$root_build_dir/libbase.so" ] deps += [ "//base:base" ] - } - if (!libcpp_is_static && use_custom_libcxx) { - sources += [ "$root_build_dir/libc++.so" ] - deps += [ "//buildtools/third_party/libc++" ] + if (use_custom_libcxx) { + sources += [ "$root_build_dir/libc++.so" ] + deps += [ "//buildtools/third_party/libc++" ] + } } }
diff --git a/remoting/protocol/fake_desktop_capturer.cc b/remoting/protocol/fake_desktop_capturer.cc index f9cd0fc7..185996e 100644 --- a/remoting/protocol/fake_desktop_capturer.cc +++ b/remoting/protocol/fake_desktop_capturer.cc
@@ -123,7 +123,7 @@ FakeDesktopCapturer::FakeDesktopCapturer() : callback_(nullptr) { frame_generator_ = base::Bind(&DefaultFrameGenerator::GenerateFrame, - new DefaultFrameGenerator()); + base::MakeRefCounted<DefaultFrameGenerator>()); } FakeDesktopCapturer::~FakeDesktopCapturer() = default;
diff --git a/services/network/public/cpp/resource_request.h b/services/network/public/cpp/resource_request.h index 13aead1..e29eee8 100644 --- a/services/network/public/cpp/resource_request.h +++ b/services/network/public/cpp/resource_request.h
@@ -180,7 +180,7 @@ bool do_not_prompt_for_login = false; // The routing id of the RenderFrame. - int render_frame_id = 0; + int render_frame_id = MSG_ROUTING_NONE; // True if |frame_id| is the main frame of a RenderView. bool is_main_frame = false;
diff --git a/services/ui/gpu_host/gpu_host.cc b/services/ui/gpu_host/gpu_host.cc index bc7d404..5aee061 100644 --- a/services/ui/gpu_host/gpu_host.cc +++ b/services/ui/gpu_host/gpu_host.cc
@@ -85,9 +85,11 @@ .subpixel_rendering); gpu_memory_buffer_manager_ = std::make_unique<viz::HostGpuMemoryBufferManager>( + base::BindRepeating( + [](viz::mojom::GpuService* gpu_service) { return gpu_service; }, + gpu_service_.get()), next_client_id_++, std::make_unique<gpu::GpuMemoryBufferSupport>(), main_thread_task_runner_); - gpu_memory_buffer_manager_->SetGpuService(gpu_service_.get()); } DefaultGpuHost::~DefaultGpuHost() {
diff --git a/skia/BUILD.gn b/skia/BUILD.gn index 453133c2..5b31cf46 100644 --- a/skia/BUILD.gn +++ b/skia/BUILD.gn
@@ -116,7 +116,7 @@ # Internal-facing config for Skia library code. config("skia_library_config") { - defines = [] + defines = [ "SK_IGNORE_EMOJI_SUBPIXEL_FIX" ] # These include directories are only included for Skia code and are not # exported to dependents.
diff --git a/testing/buildbot/chromium.android.json b/testing/buildbot/chromium.android.json index 666e80a..f4f4487 100644 --- a/testing/buildbot/chromium.android.json +++ b/testing/buildbot/chromium.android.json
@@ -3059,6 +3059,36 @@ "test": "wtf_unittests" } ], + "isolated_scripts": [ + { + "args": [ + "--debug", + "--android" + ], + "experiment_percentage": 100, + "isolate_name": "webkit_layout_tests_exparchive", + "merge": { + "args": [ + "--verbose" + ], + "script": "//third_party/blink/tools/merge_web_test_results.py" + }, + "name": "webkit_layout_tests", + "only_retry_failed_tests": true, + "results_handler": "layout tests", + "swarming": { + "can_use_on_swarming_builders": true, + "dimension_sets": [ + { + "device_os": "KTU84P", + "device_type": "hammerhead", + "os": "Android" + } + ], + "shards": 12 + } + } + ], "junit_tests": [ { "test": "base_junit_tests"
diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json index 8040747e..553ec25 100644 --- a/testing/buildbot/chromium.chromiumos.json +++ b/testing/buildbot/chromium.chromiumos.json
@@ -385,8 +385,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -999,8 +998,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/chromium.clang.json b/testing/buildbot/chromium.clang.json index a6297514..04d473c 100644 --- a/testing/buildbot/chromium.clang.json +++ b/testing/buildbot/chromium.clang.json
@@ -107,8 +107,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -820,8 +819,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -1592,8 +1590,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -2753,8 +2750,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -3902,8 +3898,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -4993,8 +4988,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -5661,8 +5655,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -6329,8 +6322,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -6997,8 +6989,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -12881,8 +12872,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -13590,8 +13580,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -14269,8 +14258,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -14958,8 +14946,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -15656,8 +15643,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -17407,8 +17393,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -18075,8 +18060,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -18743,8 +18727,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -19411,8 +19394,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -20079,8 +20061,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -20747,8 +20728,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -21415,8 +21395,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -22083,8 +22062,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -22751,8 +22729,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -23419,8 +23396,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -24098,8 +24074,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -24840,8 +24815,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json index ea6c4b7..4d116cdf 100644 --- a/testing/buildbot/chromium.fyi.json +++ b/testing/buildbot/chromium.fyi.json
@@ -1003,8 +1003,7 @@ "gtest_tests": [ { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -1440,8 +1439,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -1607,8 +1605,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -2024,8 +2021,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -4145,8 +4141,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/chromium.linux.json b/testing/buildbot/chromium.linux.json index 95af137..67ade18 100644 --- a/testing/buildbot/chromium.linux.json +++ b/testing/buildbot/chromium.linux.json
@@ -934,8 +934,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -1788,8 +1787,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -2581,8 +2579,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -3348,8 +3345,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/chromium.memory.json b/testing/buildbot/chromium.memory.json index ba5f1afc2..268426e2 100644 --- a/testing/buildbot/chromium.memory.json +++ b/testing/buildbot/chromium.memory.json
@@ -2686,7 +2686,6 @@ { "args": [ "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter", "--test-launcher-batch-limit=1", "--test-launcher-print-test-stdio=always" ], @@ -3568,8 +3567,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -4302,8 +4300,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -4915,8 +4912,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": { @@ -5519,8 +5515,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/chromium.win.json b/testing/buildbot/chromium.win.json index 65993be0..8a689e9 100644 --- a/testing/buildbot/chromium.win.json +++ b/testing/buildbot/chromium.win.json
@@ -2930,8 +2930,7 @@ }, { "args": [ - "--enable-features=VizDisplayCompositor", - "--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter" + "--enable-features=VizDisplayCompositor" ], "name": "viz_browser_tests", "swarming": {
diff --git a/testing/buildbot/filters/BUILD.gn b/testing/buildbot/filters/BUILD.gn index 8edaf8a..21fc4793 100644 --- a/testing/buildbot/filters/BUILD.gn +++ b/testing/buildbot/filters/BUILD.gn
@@ -22,7 +22,6 @@ data = [ "//testing/buildbot/filters/mash.browser_tests.filter", "//testing/buildbot/filters/mojo.fyi.network_browser_tests.filter", - "//testing/buildbot/filters/viz.browser_tests.filter", ] }
diff --git a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter index 5e732e8b..7befdd2 100644 --- a/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter +++ b/testing/buildbot/filters/mojo.fyi.network_browser_tests.filter
@@ -207,7 +207,6 @@ # http://crbug.com/721414 # TODO(rockot): add support for webRequest API. -ExtensionWebRequestApiTest.WebRequestBlocking --ExtensionWebRequestApiTest.WebRequestTypes # Note WebRequestUnloadImmediately is disabled on Linux -ExtensionWebRequestApiTest.WebRequestUnloadImmediately
diff --git a/testing/buildbot/filters/viz.browser_tests.filter b/testing/buildbot/filters/viz.browser_tests.filter deleted file mode 100644 index 96d6ae4c..0000000 --- a/testing/buildbot/filters/viz.browser_tests.filter +++ /dev/null
@@ -1,3 +0,0 @@ -#### HostFrameSinkManager::CreateCompositorFrameSinkSupport crash. -# http://crbug.com/807465 --ArcAccessibilityHelperBridgeBrowserTest.PreferenceChange
diff --git a/testing/buildbot/test_suite_exceptions.pyl b/testing/buildbot/test_suite_exceptions.pyl index 97cc087..a4d57c4 100644 --- a/testing/buildbot/test_suite_exceptions.pyl +++ b/testing/buildbot/test_suite_exceptions.pyl
@@ -1536,6 +1536,14 @@ 'Win10 Tests x64 (dbg)', ], 'modifications': { + # chromium.android + 'KitKat Phone Tester (dbg)': { + 'args': [ + '--debug', + '--android', + ], + 'experiment_percentage': 100, # crbug.com/824539 + }, # chromium.fyi 'linux-blink-gen-property-trees': { 'args': [
diff --git a/testing/buildbot/test_suites.pyl b/testing/buildbot/test_suites.pyl index 6126de3..554c28d 100644 --- a/testing/buildbot/test_suites.pyl +++ b/testing/buildbot/test_suites.pyl
@@ -1874,7 +1874,6 @@ 'viz_browser_tests': { 'args': [ '--enable-features=VizDisplayCompositor', - '--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter' ], 'swarming': { 'shards': 10, @@ -2061,7 +2060,6 @@ 'viz_browser_tests': { 'args': [ '--enable-features=VizDisplayCompositor', - '--test-launcher-filter-file=../../testing/buildbot/filters/viz.browser_tests.filter' ], 'swarming': { 'shards': 10,
diff --git a/testing/buildbot/waterfalls.pyl b/testing/buildbot/waterfalls.pyl index f0f2b00..d524263 100644 --- a/testing/buildbot/waterfalls.pyl +++ b/testing/buildbot/waterfalls.pyl
@@ -212,6 +212,7 @@ 'test_suites': { 'gtest_tests': 'chromium_android_gtests', 'junit_tests': 'chromium_junit_tests', + 'isolated_scripts': 'chromium_webkit_isolated_scripts', }, 'swarming': { 'dimension_sets': [
diff --git a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG index d25ff6a..6bc35c4 100644 --- a/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
@@ -61,7 +61,7 @@ # New failures are appended below by the script. crbug.com/591099 animations/rotate-transform-equivalent.html [ Failure ] crbug.com/728378 compositing/culling/tile-occlusion-boundaries.html [ Failure ] -crbug.com/591099 compositing/geometry/bounds-ignores-hidden.html [ Failure ] +crbug.com/591099 compositing/iframes/floating-self-painting-frame.html [ Failure ] crbug.com/591099 compositing/layer-creation/stacking-context-overlap-nested.html [ Failure ] crbug.com/591099 compositing/perpendicular-layer-sorting.html [ Failure ] crbug.com/591099 compositing/squashing/squash-above-fixed-3.html [ Failure ] @@ -472,8 +472,6 @@ crbug.com/591099 fast/block/basic/quirk-percent-height-table-cell.html [ Failure ] crbug.com/591099 fast/block/block-width-recalc-with-relative-height.html [ Failure ] crbug.com/591099 fast/block/float-avoids-padding-inline-ancestors.html [ Crash ] -crbug.com/591099 fast/block/float/negative-margin-on-element-avoiding-floats-with-margin-on-parent.html [ Failure ] -crbug.com/591099 fast/block/float/negative-margin-on-element-avoiding-floats.html [ Failure ] crbug.com/591099 fast/block/float/nopaint-after-layer-destruction.html [ Failure ] crbug.com/591099 fast/block/float/nopaint-after-layer-destruction2.html [ Failure ] crbug.com/591099 fast/block/float/overlapping-floats-paint-hittest-order-1.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/TestExpectations b/third_party/WebKit/LayoutTests/TestExpectations index 41bf08e4..a346fb4 100644 --- a/third_party/WebKit/LayoutTests/TestExpectations +++ b/third_party/WebKit/LayoutTests/TestExpectations
@@ -4124,6 +4124,8 @@ crbug.com/757165 [ Win ] virtual/gpu/fast/canvas/canvas-strokeRect-alpha-shadow.html [ Skip ] crbug.com/757165 [ Win ] virtual/gpu/fast/canvas/image-object-in-canvas.html [ Skip ] +crbug.com/868956 [ Linux ] virtual/gpu/fast/canvas/canvas-composite-video-shadow.html [ Skip ] + crbug.com/766129 svg/wicd/test-rightsizing-b.xhtml [ Failure Pass ] # Antialiasing error @@ -4750,3 +4752,119 @@ # Sheriff 2018-07-27 crbug.com/868317 [ Mac ] external/wpt/dom/ranges/Range-compareBoundaryPoints.html [ Timeout Pass ] + +# Android test failures that have crept in over 2018. +crbug.com/824539 [ Android ] compositing/sibling-positioning.html [ Failure ] +crbug.com/824539 [ Android ] compositing/geometry/limit-layer-bounds-positioned-transition.html [ Failure ] +crbug.com/824539 [ Android ] compositing/layer-creation/fixed-position-out-of-view.html [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/html/css3-modsel-18.html [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/html/css3-modsel-61.html [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/xhtml/css3-modsel-17.xml [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/xhtml/css3-modsel-18.xml [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/xml/css3-modsel-17.xml [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/xml/css3-modsel-18.xml [ Failure ] +crbug.com/824539 [ Android ] css3/selectors3/xml/css3-modsel-61.xml [ Failure ] +crbug.com/824539 [ Android ] device_orientation/motion/add-listener-from-callback.html [ Failure ] +crbug.com/824539 [ Android ] editing/execCommand/5190926.html [ Failure ] +crbug.com/824539 [ Android ] editing/inserting/5156401-2.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/drop-text-without-selection.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-line-endings-001.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-line-endings-002.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-line-endings-003.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-line-endings-004.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-line-endings-005.html [ Failure ] +crbug.com/824539 [ Android ] editing/pasteboard/paste-text-016.html [ Failure ] +crbug.com/824539 [ Android ] editing/selection/4402375.html [ Failure ] +crbug.com/824539 [ Android ] editing/selection/6476.html [ Failure ] +crbug.com/824539 [ Android ] editing/selection/leave-requested-block.html [ Failure ] +crbug.com/824539 [ Android ] editing/selection/previous-line-position.html [ Failure ] +crbug.com/824539 [ Android ] editing/style/block-styles-007.html [ Failure ] +crbug.com/824539 [ Android ] external/wpt/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html [ Failure ] +crbug.com/824539 [ Android ] external/wpt/dom/historical.html [ Failure ] +crbug.com/824539 [ Android ] external/wpt/gamepad/idlharness.html [ Failure ] +crbug.com/824539 [ Android ] external/wpt/input-events/idlharness.html [ Failure ] +crbug.com/824539 [ Android ] external/wpt/web-animations/timing-model/animations/finishing-an-animation.html [ Failure ] +crbug.com/824539 [ Android ] fast/backgrounds/background-clip-text.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/basic/018.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/float/002.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/float/centered-float-avoidance-complexity.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/float/float-in-float-hit-testing.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/float/float-in-float-painting.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/margin-collapse/019.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/margin-collapse/020.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/margin-collapse/block-inside-inline/019.html [ Failure ] +crbug.com/824539 [ Android ] fast/block/margin-collapse/block-inside-inline/020.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/child-style-can-override-visited-style.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/clip-zooming.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/compare-content-style.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/first-letter-hover.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/first-letter-visibility.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/focus-ring-multiline.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/invalid-percentage-property.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/line-height-font-order.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/line-thickness-underline-strikethrough-overline.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/nth-child-dynamic.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/text-overflow-ellipsis-strict.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/text-overflow-ellipsis.html [ Failure ] +crbug.com/824539 [ Android ] fast/css/getComputedStyle/getComputedStyle-margin-percentage.html [ Failure ] +crbug.com/824539 [ Android ] fast/css3-text/css3-text-decoration/text-decoration-style-inherit-links.html [ Failure ] +crbug.com/824539 [ Android ] fast/css3-text/css3-text-decoration/text-decoration-style-inherit-not-propagated-by-out-of-flow.html [ Failure ] +crbug.com/824539 [ Android ] fast/css3-text/css3-text-decoration/text-decoration-style-inherit-simple-underlines.html [ Failure ] +crbug.com/824539 [ Android ] fast/css3-text/css3-text-decoration/text-decoration-style-inherit.html [ Failure ] +crbug.com/824539 [ Android ] fast/css3-text/css3-text-decoration/text-decoration-style.html [ Failure ] +crbug.com/824539 [ Android ] fast/events/reveal-link-when-focused.html [ Failure ] +crbug.com/824539 [ Android ] fast/events/wheel/wheelevent-in-text-node.html [ Failure ] +crbug.com/824539 [ Android ] fast/forms/date/date-chooseronly-defaultValue.html [ Failure ] +crbug.com/824539 [ Android ] fast/forms/date-multiple-fields/date-multiple-fields-ax-value-changed-notification.html [ Failure ] +crbug.com/824539 [ Android ] fast/harness/perftests/perf-runner-compute-statistics.html [ Failure ] +crbug.com/824539 [ Android ] fast/hidpi/clip-text-in-hidpi.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline/inline-box-background-repeat-x.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline/inline-box-background-repeat-y.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline/inline-box-background.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline/inline-focus-ring.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline-block/14498-positionForCoordinates.html [ Failure ] +crbug.com/824539 [ Android ] fast/inline-block/overflow-clip.html [ Failure ] +crbug.com/824539 [ Android ] fast/invalid/009.html [ Failure ] +crbug.com/824539 [ Android ] fast/layers/normal-flow-hit-test.html [ Failure ] +crbug.com/824539 [ Android ] fast/layers/opacity-transforms.html [ Failure ] +crbug.com/824539 [ Android ] fast/lists/003.html [ Failure ] +crbug.com/824539 [ Android ] fast/lists/scrolled-marker-paint.html [ Failure ] +crbug.com/824539 [ Android ] fast/overflow/position-fixed-transform-clipping.html [ Failure ] +crbug.com/824539 [ Android ] fast/replaced/selection-rect-transform.html [ Failure ] +crbug.com/824539 [ Android ] fast/selectors/018.html [ Failure ] +crbug.com/824539 [ Android ] fast/selectors/061.html [ Failure ] +crbug.com/824539 [ Android ] fast/speech/scripted/speechrecognition-re-restart.html [ Failure ] +crbug.com/824539 [ Android ] fast/table/border-collapsing/004-vertical.html [ Failure ] +crbug.com/824539 [ Android ] fast/table/border-collapsing/004.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/stroking-decorations.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/international/001.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/international/003.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/international/bidi-LDB-2-HTML.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/international/bidi-LDB-2-formatting-characters.html [ Failure ] +crbug.com/824539 [ Android ] fast/text/international/bidi-neutral-directionality-paragraph-start.html [ Failure ] +crbug.com/824539 [ Android ] fast/writing-mode/english-lr-text.html [ Failure ] +crbug.com/824539 [ Android ] fast/xmlhttprequest/xmlhttprequest-missing-file-exception.html [ Failure ] +crbug.com/824539 [ Android ] http/tests/plugins/navigator-plugins-in-cross-origin-frame.html [ Failure ] +crbug.com/824539 [ Android ] http/tests/security/local-JavaScript-from-remote.html [ Failure ] +crbug.com/824539 [ Android ] images/imagemap-focus-ring-outline-color-not-inherited-from-map.html [ Failure ] +crbug.com/824539 [ Android ] images/size-failure.html [ Failure ] +crbug.com/824539 [ Android ] paint/invalidation/shadow-multiple.html [ Failure ] +crbug.com/824539 [ Android ] paint/invalidation/outline/focus-layers.html [ Failure ] +crbug.com/824539 [ Android ] paint/invalidation/selection/selected-replaced.html [ Failure ] +crbug.com/824539 [ Android ] paint/invalidation/selection/selection-in-composited-scrolling-container.html [ Failure ] +crbug.com/824539 [ Android ] presentation/presentationconnectionavailableevent-ctor-mock.html [ Failure ] +crbug.com/824539 [ Android ] svg/as-background-image/svg-width-100p-as-background.html [ Failure ] +crbug.com/824539 [ Android ] svg/batik/text/textAnchor3.svg [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug1188.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug2479-3.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug2479-4.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug59354.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug7342.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/bugs/bug8950.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/collapsing_borders/bug41262-3.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla/core/bloomberg.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla_expected_failures/bugs/bug1010.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla_expected_failures/bugs/bug1055-2.html [ Failure ] +crbug.com/824539 [ Android ] tables/mozilla_expected_failures/bugs/bug2479-5.html [ Failure ] +crbug.com/824539 [ Android ] transforms/transformed-caret.html [ Failure ] +crbug.com/824539 [ Android ] virtual/layout_ng/fast/block/margin-collapse/019.html [ Failure ]
diff --git a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json index a5f04738..88376bf8 100644 --- a/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json +++ b/third_party/WebKit/LayoutTests/external/WPT_BASE_MANIFEST.json
@@ -10369,6 +10369,18 @@ {} ] ], + "css/CSS2/floats/new-fc-relayout.html": [ + [ + "/css/CSS2/floats/new-fc-relayout.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats/new-fc-separates-from-float-2.html": [ [ "/css/CSS2/floats/new-fc-separates-from-float-2.html", @@ -10405,6 +10417,18 @@ {} ] ], + "css/CSS2/floats/zero-width-floats-positioning.html": [ + [ + "/css/CSS2/floats/zero-width-floats-positioning.html", + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "css/CSS2/floats/zero-width-floats.html": [ [ "/css/CSS2/floats/zero-width-floats.html", @@ -159290,6 +159314,11 @@ {} ] ], + "interfaces/webgl2.idl": [ + [ + {} + ] + ], "interfaces/webrtc-pc.idl": [ [ {} @@ -171375,6 +171404,11 @@ {} ] ], + "webrtc/RTCRtpTransceiver.https-expected.txt": [ + [ + {} + ] + ], "webrtc/RTCSctpTransport-constructor-expected.txt": [ [ {} @@ -222683,14 +222717,6 @@ {} ] ], - "html/semantics/tabular-data/processing-model-1/span-limits-2.html": [ - [ - "/html/semantics/tabular-data/processing-model-1/span-limits-2.html", - { - "timeout": "long" - } - ] - ], "html/semantics/tabular-data/processing-model-1/span-limits.html": [ [ "/html/semantics/tabular-data/processing-model-1/span-limits.html", @@ -256301,6 +256327,12 @@ {} ] ], + "webrtc/RTCRtpTransceiver.https.html": [ + [ + "/webrtc/RTCRtpTransceiver.https.html", + {} + ] + ], "webrtc/RTCSctpTransport-constructor.html": [ [ "/webrtc/RTCSctpTransport-constructor.html", @@ -283778,6 +283810,10 @@ "f378062671d9de538e54c7dba552c2deab57baa4", "reftest" ], + "css/CSS2/floats/new-fc-relayout.html": [ + "6456b1f6d72cbf1bde9b887f5b6aadd91ed1d51b", + "reftest" + ], "css/CSS2/floats/new-fc-separates-from-float-2.html": [ "91a4405707130a19100db1ccbaebb41b885531dd", "reftest" @@ -283806,6 +283842,10 @@ "c9c5728c3a45287019bbb02614229920c42518eb", "testharness" ], + "css/CSS2/floats/zero-width-floats-positioning.html": [ + "14286c807793f7aa9dba65670951d9771ad94fed", + "reftest" + ], "css/CSS2/floats/zero-width-floats.html": [ "73520c10406cb5d8bb4c9dc9b0da92b924b04298", "reftest" @@ -375410,12 +375450,8 @@ "2bee37bc667b7aaf9ffc2be912288540896e3f03", "support" ], - "html/semantics/tabular-data/processing-model-1/span-limits-2.html": [ - "057ca3ab3b2dbef61936a6d30655c233bed9af76", - "testharness" - ], "html/semantics/tabular-data/processing-model-1/span-limits.html": [ - "4ce32045b1f2c338f6d956da66fbf093163de361", + "8e22913e1a3cae5de1413765e5e8de559d5178f2", "testharness" ], "html/semantics/tabular-data/the-caption-element/.gitkeep": [ @@ -379022,6 +379058,10 @@ "e874ac0e00d7e9b78b55f9f2e1704ca263857f98", "support" ], + "interfaces/webgl2.idl": [ + "5ec433d860f230c3eddddc38bc1f4d40e94d4b23", + "support" + ], "interfaces/webrtc-pc.idl": [ "a631e2e0ea0f451c64b5d5f74fe7cbeafc231b8e", "support" @@ -410059,7 +410099,7 @@ "support" ], "webrtc/RTCPeerConnection-transceivers.https.html": [ - "a7eee2ccff5db0c393346cfcb842b0b6d9e3b966", + "3348593a64b85c7fa3778e1862a9aa631615bffd", "testharness" ], "webrtc/RTCPeerConnectionIceEvent-constructor-expected.txt": [ @@ -410206,6 +410246,14 @@ "98e0693d3a142f44bdff04137e68e8f3050fe187", "testharness" ], + "webrtc/RTCRtpTransceiver.https-expected.txt": [ + "2c4f0d998ef050fc94b7b6f22c301450f83959d4", + "support" + ], + "webrtc/RTCRtpTransceiver.https.html": [ + "f3791b97ad1b4fe65af5c54e142cee1f79789d37", + "testharness" + ], "webrtc/RTCSctpTransport-constructor-expected.txt": [ "b3ab3dc6b944a3273263ffb739fbb0b7c37ce8d2", "support"
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/new-fc-relayout.html b/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/new-fc-relayout.html new file mode 100644 index 0000000..97d8b9a --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/new-fc-relayout.html
@@ -0,0 +1,15 @@ +<!DOCTYPE html> +<title>New formatting context relayout</title> +<link rel="author" title="Ian Kilpatrick" href="ikilpatrick@chromium.org"> +<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/2452"> +<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html"> +<p>Test passes if there is a filled green square.</p> +<div style="width: 100px; line-height: 0;"> + <div style="float: right; width: 50px; height: 50px; background: green;"></div> + <div style="float: right; width: 75px; height: 50px; background: green;"></div> + <div style="overflow: hidden;"> + <div style="display: inline-block; width: 25px; height: 75px; background: green;"></div> + <div style="display: inline-block; width: 25px; height: 25px; background: green;"></div> + </div> + <div style="position: relative; width: 25px; height: 50px; background: green; top: -100px; left: 25px;"></div> +</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/zero-width-floats-positioning.html b/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/zero-width-floats-positioning.html new file mode 100644 index 0000000..7f8e34d --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/zero-width-floats-positioning.html
@@ -0,0 +1,11 @@ +<!DOCTYPE html> +<title>Zero width floats, and positioning with negative margins</title> +<link rel="author" title="Ian Kilpatrick" href="ikilpatrick@chromium.org"> +<link rel="help" href="https://www.w3.org/TR/CSS22/visudet.html#float-width" title="10.3.5 Floating, non-replaced elements"> +<link rel="match" href="../../reference/ref-filled-green-100px-square-only.html"> +<p>Test passes if there is a filled green square.</p> +<div style="margin-left: 50px; width: 125px;"> + <div style="float: left; width: 0px; height: 50px;"></div> + <div style="float: right; clear: left; width: 25px; height: 50px;"></div> + <div style="overflow: hidden; margin-left: -50px; height: 100px; background: green;"></div> +</div>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/interfaces/webgl2.idl b/third_party/WebKit/LayoutTests/external/wpt/interfaces/webgl2.idl new file mode 100644 index 0000000..b8f5b23b --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/interfaces/webgl2.idl
@@ -0,0 +1,574 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the +// "WebGL 2.0 Specification" spec. +// See: https://www.khronos.org/registry/webgl/specs/latest/2.0/ + +typedef long long GLint64; +typedef unsigned long long GLuint64; + +interface WebGLQuery : WebGLObject { +}; + +interface WebGLSampler : WebGLObject { +}; + +interface WebGLSync : WebGLObject { +}; + +interface WebGLTransformFeedback : WebGLObject { +}; + +interface WebGLVertexArrayObject : WebGLObject { +}; + +typedef ([AllowShared] Uint32Array or sequence<GLuint>) Uint32List; + +interface mixin WebGL2RenderingContextBase +{ + const GLenum READ_BUFFER = 0x0C02; + const GLenum UNPACK_ROW_LENGTH = 0x0CF2; + const GLenum UNPACK_SKIP_ROWS = 0x0CF3; + const GLenum UNPACK_SKIP_PIXELS = 0x0CF4; + const GLenum PACK_ROW_LENGTH = 0x0D02; + const GLenum PACK_SKIP_ROWS = 0x0D03; + const GLenum PACK_SKIP_PIXELS = 0x0D04; + const GLenum COLOR = 0x1800; + const GLenum DEPTH = 0x1801; + const GLenum STENCIL = 0x1802; + const GLenum RED = 0x1903; + const GLenum RGB8 = 0x8051; + const GLenum RGBA8 = 0x8058; + const GLenum RGB10_A2 = 0x8059; + const GLenum TEXTURE_BINDING_3D = 0x806A; + const GLenum UNPACK_SKIP_IMAGES = 0x806D; + const GLenum UNPACK_IMAGE_HEIGHT = 0x806E; + const GLenum TEXTURE_3D = 0x806F; + const GLenum TEXTURE_WRAP_R = 0x8072; + const GLenum MAX_3D_TEXTURE_SIZE = 0x8073; + const GLenum UNSIGNED_INT_2_10_10_10_REV = 0x8368; + const GLenum MAX_ELEMENTS_VERTICES = 0x80E8; + const GLenum MAX_ELEMENTS_INDICES = 0x80E9; + const GLenum TEXTURE_MIN_LOD = 0x813A; + const GLenum TEXTURE_MAX_LOD = 0x813B; + const GLenum TEXTURE_BASE_LEVEL = 0x813C; + const GLenum TEXTURE_MAX_LEVEL = 0x813D; + const GLenum MIN = 0x8007; + const GLenum MAX = 0x8008; + const GLenum DEPTH_COMPONENT24 = 0x81A6; + const GLenum MAX_TEXTURE_LOD_BIAS = 0x84FD; + const GLenum TEXTURE_COMPARE_MODE = 0x884C; + const GLenum TEXTURE_COMPARE_FUNC = 0x884D; + const GLenum CURRENT_QUERY = 0x8865; + const GLenum QUERY_RESULT = 0x8866; + const GLenum QUERY_RESULT_AVAILABLE = 0x8867; + const GLenum STREAM_READ = 0x88E1; + const GLenum STREAM_COPY = 0x88E2; + const GLenum STATIC_READ = 0x88E5; + const GLenum STATIC_COPY = 0x88E6; + const GLenum DYNAMIC_READ = 0x88E9; + const GLenum DYNAMIC_COPY = 0x88EA; + const GLenum MAX_DRAW_BUFFERS = 0x8824; + const GLenum DRAW_BUFFER0 = 0x8825; + const GLenum DRAW_BUFFER1 = 0x8826; + const GLenum DRAW_BUFFER2 = 0x8827; + const GLenum DRAW_BUFFER3 = 0x8828; + const GLenum DRAW_BUFFER4 = 0x8829; + const GLenum DRAW_BUFFER5 = 0x882A; + const GLenum DRAW_BUFFER6 = 0x882B; + const GLenum DRAW_BUFFER7 = 0x882C; + const GLenum DRAW_BUFFER8 = 0x882D; + const GLenum DRAW_BUFFER9 = 0x882E; + const GLenum DRAW_BUFFER10 = 0x882F; + const GLenum DRAW_BUFFER11 = 0x8830; + const GLenum DRAW_BUFFER12 = 0x8831; + const GLenum DRAW_BUFFER13 = 0x8832; + const GLenum DRAW_BUFFER14 = 0x8833; + const GLenum DRAW_BUFFER15 = 0x8834; + const GLenum MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49; + const GLenum MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A; + const GLenum SAMPLER_3D = 0x8B5F; + const GLenum SAMPLER_2D_SHADOW = 0x8B62; + const GLenum FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B; + const GLenum PIXEL_PACK_BUFFER = 0x88EB; + const GLenum PIXEL_UNPACK_BUFFER = 0x88EC; + const GLenum PIXEL_PACK_BUFFER_BINDING = 0x88ED; + const GLenum PIXEL_UNPACK_BUFFER_BINDING = 0x88EF; + const GLenum FLOAT_MAT2x3 = 0x8B65; + const GLenum FLOAT_MAT2x4 = 0x8B66; + const GLenum FLOAT_MAT3x2 = 0x8B67; + const GLenum FLOAT_MAT3x4 = 0x8B68; + const GLenum FLOAT_MAT4x2 = 0x8B69; + const GLenum FLOAT_MAT4x3 = 0x8B6A; + const GLenum SRGB = 0x8C40; + const GLenum SRGB8 = 0x8C41; + const GLenum SRGB8_ALPHA8 = 0x8C43; + const GLenum COMPARE_REF_TO_TEXTURE = 0x884E; + const GLenum RGBA32F = 0x8814; + const GLenum RGB32F = 0x8815; + const GLenum RGBA16F = 0x881A; + const GLenum RGB16F = 0x881B; + const GLenum VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD; + const GLenum MAX_ARRAY_TEXTURE_LAYERS = 0x88FF; + const GLenum MIN_PROGRAM_TEXEL_OFFSET = 0x8904; + const GLenum MAX_PROGRAM_TEXEL_OFFSET = 0x8905; + const GLenum MAX_VARYING_COMPONENTS = 0x8B4B; + const GLenum TEXTURE_2D_ARRAY = 0x8C1A; + const GLenum TEXTURE_BINDING_2D_ARRAY = 0x8C1D; + const GLenum R11F_G11F_B10F = 0x8C3A; + const GLenum UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B; + const GLenum RGB9_E5 = 0x8C3D; + const GLenum UNSIGNED_INT_5_9_9_9_REV = 0x8C3E; + const GLenum TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F; + const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80; + const GLenum TRANSFORM_FEEDBACK_VARYINGS = 0x8C83; + const GLenum TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84; + const GLenum TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85; + const GLenum TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88; + const GLenum RASTERIZER_DISCARD = 0x8C89; + const GLenum MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A; + const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B; + const GLenum INTERLEAVED_ATTRIBS = 0x8C8C; + const GLenum SEPARATE_ATTRIBS = 0x8C8D; + const GLenum TRANSFORM_FEEDBACK_BUFFER = 0x8C8E; + const GLenum TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F; + const GLenum RGBA32UI = 0x8D70; + const GLenum RGB32UI = 0x8D71; + const GLenum RGBA16UI = 0x8D76; + const GLenum RGB16UI = 0x8D77; + const GLenum RGBA8UI = 0x8D7C; + const GLenum RGB8UI = 0x8D7D; + const GLenum RGBA32I = 0x8D82; + const GLenum RGB32I = 0x8D83; + const GLenum RGBA16I = 0x8D88; + const GLenum RGB16I = 0x8D89; + const GLenum RGBA8I = 0x8D8E; + const GLenum RGB8I = 0x8D8F; + const GLenum RED_INTEGER = 0x8D94; + const GLenum RGB_INTEGER = 0x8D98; + const GLenum RGBA_INTEGER = 0x8D99; + const GLenum SAMPLER_2D_ARRAY = 0x8DC1; + const GLenum SAMPLER_2D_ARRAY_SHADOW = 0x8DC4; + const GLenum SAMPLER_CUBE_SHADOW = 0x8DC5; + const GLenum UNSIGNED_INT_VEC2 = 0x8DC6; + const GLenum UNSIGNED_INT_VEC3 = 0x8DC7; + const GLenum UNSIGNED_INT_VEC4 = 0x8DC8; + const GLenum INT_SAMPLER_2D = 0x8DCA; + const GLenum INT_SAMPLER_3D = 0x8DCB; + const GLenum INT_SAMPLER_CUBE = 0x8DCC; + const GLenum INT_SAMPLER_2D_ARRAY = 0x8DCF; + const GLenum UNSIGNED_INT_SAMPLER_2D = 0x8DD2; + const GLenum UNSIGNED_INT_SAMPLER_3D = 0x8DD3; + const GLenum UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4; + const GLenum UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7; + const GLenum DEPTH_COMPONENT32F = 0x8CAC; + const GLenum DEPTH32F_STENCIL8 = 0x8CAD; + const GLenum FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD; + const GLenum FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210; + const GLenum FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211; + const GLenum FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212; + const GLenum FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213; + const GLenum FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214; + const GLenum FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215; + const GLenum FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216; + const GLenum FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217; + const GLenum FRAMEBUFFER_DEFAULT = 0x8218; + const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A; + const GLenum DEPTH_STENCIL = 0x84F9; + const GLenum UNSIGNED_INT_24_8 = 0x84FA; + const GLenum DEPTH24_STENCIL8 = 0x88F0; + const GLenum UNSIGNED_NORMALIZED = 0x8C17; + const GLenum DRAW_FRAMEBUFFER_BINDING = 0x8CA6; /* Same as FRAMEBUFFER_BINDING */ + const GLenum READ_FRAMEBUFFER = 0x8CA8; + const GLenum DRAW_FRAMEBUFFER = 0x8CA9; + const GLenum READ_FRAMEBUFFER_BINDING = 0x8CAA; + const GLenum RENDERBUFFER_SAMPLES = 0x8CAB; + const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4; + const GLenum MAX_COLOR_ATTACHMENTS = 0x8CDF; + const GLenum COLOR_ATTACHMENT1 = 0x8CE1; + const GLenum COLOR_ATTACHMENT2 = 0x8CE2; + const GLenum COLOR_ATTACHMENT3 = 0x8CE3; + const GLenum COLOR_ATTACHMENT4 = 0x8CE4; + const GLenum COLOR_ATTACHMENT5 = 0x8CE5; + const GLenum COLOR_ATTACHMENT6 = 0x8CE6; + const GLenum COLOR_ATTACHMENT7 = 0x8CE7; + const GLenum COLOR_ATTACHMENT8 = 0x8CE8; + const GLenum COLOR_ATTACHMENT9 = 0x8CE9; + const GLenum COLOR_ATTACHMENT10 = 0x8CEA; + const GLenum COLOR_ATTACHMENT11 = 0x8CEB; + const GLenum COLOR_ATTACHMENT12 = 0x8CEC; + const GLenum COLOR_ATTACHMENT13 = 0x8CED; + const GLenum COLOR_ATTACHMENT14 = 0x8CEE; + const GLenum COLOR_ATTACHMENT15 = 0x8CEF; + const GLenum FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56; + const GLenum MAX_SAMPLES = 0x8D57; + const GLenum HALF_FLOAT = 0x140B; + const GLenum RG = 0x8227; + const GLenum RG_INTEGER = 0x8228; + const GLenum R8 = 0x8229; + const GLenum RG8 = 0x822B; + const GLenum R16F = 0x822D; + const GLenum R32F = 0x822E; + const GLenum RG16F = 0x822F; + const GLenum RG32F = 0x8230; + const GLenum R8I = 0x8231; + const GLenum R8UI = 0x8232; + const GLenum R16I = 0x8233; + const GLenum R16UI = 0x8234; + const GLenum R32I = 0x8235; + const GLenum R32UI = 0x8236; + const GLenum RG8I = 0x8237; + const GLenum RG8UI = 0x8238; + const GLenum RG16I = 0x8239; + const GLenum RG16UI = 0x823A; + const GLenum RG32I = 0x823B; + const GLenum RG32UI = 0x823C; + const GLenum VERTEX_ARRAY_BINDING = 0x85B5; + const GLenum R8_SNORM = 0x8F94; + const GLenum RG8_SNORM = 0x8F95; + const GLenum RGB8_SNORM = 0x8F96; + const GLenum RGBA8_SNORM = 0x8F97; + const GLenum SIGNED_NORMALIZED = 0x8F9C; + const GLenum COPY_READ_BUFFER = 0x8F36; + const GLenum COPY_WRITE_BUFFER = 0x8F37; + const GLenum COPY_READ_BUFFER_BINDING = 0x8F36; /* Same as COPY_READ_BUFFER */ + const GLenum COPY_WRITE_BUFFER_BINDING = 0x8F37; /* Same as COPY_WRITE_BUFFER */ + const GLenum UNIFORM_BUFFER = 0x8A11; + const GLenum UNIFORM_BUFFER_BINDING = 0x8A28; + const GLenum UNIFORM_BUFFER_START = 0x8A29; + const GLenum UNIFORM_BUFFER_SIZE = 0x8A2A; + const GLenum MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B; + const GLenum MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D; + const GLenum MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E; + const GLenum MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F; + const GLenum MAX_UNIFORM_BLOCK_SIZE = 0x8A30; + const GLenum MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31; + const GLenum MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33; + const GLenum UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34; + const GLenum ACTIVE_UNIFORM_BLOCKS = 0x8A36; + const GLenum UNIFORM_TYPE = 0x8A37; + const GLenum UNIFORM_SIZE = 0x8A38; + const GLenum UNIFORM_BLOCK_INDEX = 0x8A3A; + const GLenum UNIFORM_OFFSET = 0x8A3B; + const GLenum UNIFORM_ARRAY_STRIDE = 0x8A3C; + const GLenum UNIFORM_MATRIX_STRIDE = 0x8A3D; + const GLenum UNIFORM_IS_ROW_MAJOR = 0x8A3E; + const GLenum UNIFORM_BLOCK_BINDING = 0x8A3F; + const GLenum UNIFORM_BLOCK_DATA_SIZE = 0x8A40; + const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42; + const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43; + const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44; + const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46; + const GLenum INVALID_INDEX = 0xFFFFFFFF; + const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122; + const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125; + const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111; + const GLenum OBJECT_TYPE = 0x9112; + const GLenum SYNC_CONDITION = 0x9113; + const GLenum SYNC_STATUS = 0x9114; + const GLenum SYNC_FLAGS = 0x9115; + const GLenum SYNC_FENCE = 0x9116; + const GLenum SYNC_GPU_COMMANDS_COMPLETE = 0x9117; + const GLenum UNSIGNALED = 0x9118; + const GLenum SIGNALED = 0x9119; + const GLenum ALREADY_SIGNALED = 0x911A; + const GLenum TIMEOUT_EXPIRED = 0x911B; + const GLenum CONDITION_SATISFIED = 0x911C; + const GLenum WAIT_FAILED = 0x911D; + const GLenum SYNC_FLUSH_COMMANDS_BIT = 0x00000001; + const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE; + const GLenum ANY_SAMPLES_PASSED = 0x8C2F; + const GLenum ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A; + const GLenum SAMPLER_BINDING = 0x8919; + const GLenum RGB10_A2UI = 0x906F; + const GLenum INT_2_10_10_10_REV = 0x8D9F; + const GLenum TRANSFORM_FEEDBACK = 0x8E22; + const GLenum TRANSFORM_FEEDBACK_PAUSED = 0x8E23; + const GLenum TRANSFORM_FEEDBACK_ACTIVE = 0x8E24; + const GLenum TRANSFORM_FEEDBACK_BINDING = 0x8E25; + const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F; + const GLenum MAX_ELEMENT_INDEX = 0x8D6B; + const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF; + + const GLint64 TIMEOUT_IGNORED = -1; + + /* WebGL-specific enums */ + const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247; + + /* Buffer objects */ + // WebGL1: + void bufferData(GLenum target, GLsizeiptr size, GLenum usage); + void bufferData(GLenum target, [AllowShared] BufferSource? srcData, GLenum usage); + void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] BufferSource srcData); + // WebGL2: + void bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage, GLuint srcOffset, + optional GLuint length = 0); + void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] ArrayBufferView srcData, + GLuint srcOffset, optional GLuint length = 0); + + void copyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, + GLintptr writeOffset, GLsizeiptr size); + // MapBufferRange, in particular its read-only and write-only modes, + // can not be exposed safely to JavaScript. GetBufferSubData + // replaces it for the purpose of fetching data back from the GPU. + void getBufferSubData(GLenum target, GLintptr srcByteOffset, [AllowShared] ArrayBufferView dstBuffer, + optional GLuint dstOffset = 0, optional GLuint length = 0); + + /* Framebuffer objects */ + void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, + GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + void framebufferTextureLayer(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level, + GLint layer); + void invalidateFramebuffer(GLenum target, sequence<GLenum> attachments); + void invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments, + GLint x, GLint y, GLsizei width, GLsizei height); + void readBuffer(GLenum src); + + /* Renderbuffer objects */ + any getInternalformatParameter(GLenum target, GLenum internalformat, GLenum pname); + void renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, + GLsizei width, GLsizei height); + + /* Texture objects */ + void texStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, + GLsizei height); + void texStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth); + + // WebGL1 legacy entrypoints: + void texImage2D(GLenum target, GLint level, GLint internalformat, + GLsizei width, GLsizei height, GLint border, GLenum format, + GLenum type, [AllowShared] ArrayBufferView? pixels); + void texImage2D(GLenum target, GLint level, GLint internalformat, + GLenum format, GLenum type, TexImageSource source); // May throw DOMException + + void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLenum type, [AllowShared] ArrayBufferView? pixels); + void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLenum format, GLenum type, TexImageSource source); // May throw DOMException + + // WebGL2 entrypoints: + void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, GLintptr pboOffset); + void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, + TexImageSource source); // May throw DOMException + void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, + GLuint srcOffset); + + void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLsizei depth, GLint border, GLenum format, GLenum type, GLintptr pboOffset); + void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLsizei depth, GLint border, GLenum format, GLenum type, + TexImageSource source); // May throw DOMException + void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView? srcData); + void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, + GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, + GLuint srcOffset); + + void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, + GLsizei height, GLenum format, GLenum type, GLintptr pboOffset); + void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, + GLsizei height, GLenum format, GLenum type, + TexImageSource source); // May throw DOMException + void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, + GLsizei height, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData, + GLuint srcOffset); + + void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, + GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, + GLintptr pboOffset); + void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, + GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, + TexImageSource source); // May throw DOMException + void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, + GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, + [AllowShared] ArrayBufferView? srcData, optional GLuint srcOffset = 0); + + void copyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, + GLint x, GLint y, GLsizei width, GLsizei height); + + void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, + GLsizei height, GLint border, GLsizei imageSize, GLintptr offset); + void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, + GLsizei height, GLint border, [AllowShared] ArrayBufferView srcData, + optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0); + + void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLintptr offset); + void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, + GLsizei height, GLsizei depth, GLint border, [AllowShared] ArrayBufferView srcData, + optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0); + + void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLintptr offset); + void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, GLenum format, + [AllowShared] ArrayBufferView srcData, + optional GLuint srcOffset = 0, + optional GLuint srcLengthOverride = 0); + + void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, + GLenum format, GLsizei imageSize, GLintptr offset); + void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, + GLenum format, [AllowShared] ArrayBufferView srcData, + optional GLuint srcOffset = 0, + optional GLuint srcLengthOverride = 0); + + /* Programs and shaders */ + [WebGLHandlesContextLoss] GLint getFragDataLocation(WebGLProgram program, DOMString name); + + /* Uniforms */ + void uniform1ui(WebGLUniformLocation? location, GLuint v0); + void uniform2ui(WebGLUniformLocation? location, GLuint v0, GLuint v1); + void uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2); + void uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); + + void uniform1fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform2fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform3fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform4fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + + void uniform1iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform2iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform3iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform4iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + + void uniform1uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform2uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform3uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + void uniform4uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0, + optional GLuint srcLength = 0); + + void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix3x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix4x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + + void uniformMatrix2x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix4x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + + void uniformMatrix2x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix3x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data, + optional GLuint srcOffset = 0, optional GLuint srcLength = 0); + + /* Vertex attribs */ + void vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w); + void vertexAttribI4iv(GLuint index, Int32List values); + void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); + void vertexAttribI4uiv(GLuint index, Uint32List values); + void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); + + /* Writing to the drawing buffer */ + void vertexAttribDivisor(GLuint index, GLuint divisor); + void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount); + void drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount); + void drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset); + + /* Reading back pixels */ + // WebGL1: + void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, + [AllowShared] ArrayBufferView? dstData); + // WebGL2: + void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, + GLintptr offset); + void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, + [AllowShared] ArrayBufferView dstData, GLuint dstOffset); + + /* Multiple Render Targets */ + void drawBuffers(sequence<GLenum> buffers); + + void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32List values, + optional GLuint srcOffset = 0); + void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32List values, + optional GLuint srcOffset = 0); + void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32List values, + optional GLuint srcOffset = 0); + + void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + + /* Query Objects */ + WebGLQuery? createQuery(); + void deleteQuery(WebGLQuery? query); + [WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? query); + void beginQuery(GLenum target, WebGLQuery query); + void endQuery(GLenum target); + WebGLQuery? getQuery(GLenum target, GLenum pname); + any getQueryParameter(WebGLQuery query, GLenum pname); + + /* Sampler Objects */ + WebGLSampler? createSampler(); + void deleteSampler(WebGLSampler? sampler); + [WebGLHandlesContextLoss] GLboolean isSampler(WebGLSampler? sampler); + void bindSampler(GLuint unit, WebGLSampler? sampler); + void samplerParameteri(WebGLSampler sampler, GLenum pname, GLint param); + void samplerParameterf(WebGLSampler sampler, GLenum pname, GLfloat param); + any getSamplerParameter(WebGLSampler sampler, GLenum pname); + + /* Sync objects */ + WebGLSync? fenceSync(GLenum condition, GLbitfield flags); + [WebGLHandlesContextLoss] GLboolean isSync(WebGLSync? sync); + void deleteSync(WebGLSync? sync); + GLenum clientWaitSync(WebGLSync sync, GLbitfield flags, GLuint64 timeout); + void waitSync(WebGLSync sync, GLbitfield flags, GLint64 timeout); + any getSyncParameter(WebGLSync sync, GLenum pname); + + /* Transform Feedback */ + WebGLTransformFeedback? createTransformFeedback(); + void deleteTransformFeedback(WebGLTransformFeedback? tf); + [WebGLHandlesContextLoss] GLboolean isTransformFeedback(WebGLTransformFeedback? tf); + void bindTransformFeedback (GLenum target, WebGLTransformFeedback? tf); + void beginTransformFeedback(GLenum primitiveMode); + void endTransformFeedback(); + void transformFeedbackVaryings(WebGLProgram program, sequence<DOMString> varyings, GLenum bufferMode); + WebGLActiveInfo? getTransformFeedbackVarying(WebGLProgram program, GLuint index); + void pauseTransformFeedback(); + void resumeTransformFeedback(); + + /* Uniform Buffer Objects and Transform Feedback Buffers */ + void bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer); + void bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, GLintptr offset, GLsizeiptr size); + any getIndexedParameter(GLenum target, GLuint index); + sequence<GLuint>? getUniformIndices(WebGLProgram program, sequence<DOMString> uniformNames); + any getActiveUniforms(WebGLProgram program, sequence<GLuint> uniformIndices, GLenum pname); + GLuint getUniformBlockIndex(WebGLProgram program, DOMString uniformBlockName); + any getActiveUniformBlockParameter(WebGLProgram program, GLuint uniformBlockIndex, GLenum pname); + DOMString? getActiveUniformBlockName(WebGLProgram program, GLuint uniformBlockIndex); + void uniformBlockBinding(WebGLProgram program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + + /* Vertex Array Objects */ + WebGLVertexArrayObject? createVertexArray(); + void deleteVertexArray(WebGLVertexArrayObject? vertexArray); + [WebGLHandlesContextLoss] GLboolean isVertexArray(WebGLVertexArrayObject? vertexArray); + void bindVertexArray(WebGLVertexArrayObject? array); +}; + +interface WebGL2RenderingContext +{ +}; +WebGL2RenderingContext includes WebGLRenderingContextBase; +WebGL2RenderingContext includes WebGL2RenderingContextBase;
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/broken-origin.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/broken-origin.tentative.html index e4d28c8..d6901a1 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/broken-origin.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/broken-origin.tentative.html
@@ -6,7 +6,7 @@ <script> test(function() { assert_throws('SYNTAX_ERR', function() { - postMessage('', [], {targetOrigin: 'http://foo bar'}); + postMessage('', {targetOrigin: 'http://foo bar'}); }, 'should have failed to resolve'); }); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/host-specific-origin.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/host-specific-origin.tentative.html index 7e6d161..5003bcc8 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/host-specific-origin.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/host-specific-origin.tentative.html
@@ -5,7 +5,7 @@ <div id="log"></div> <script> async_test(function() { - postMessage('', [], {targetOrigin: location.protocol + '//' + location.host + '//'}); + postMessage('', {targetOrigin: location.protocol + '//' + location.host + '//'}); onmessage = this.step_func(function(e) { assert_equals(e.origin, location.protocol + '//' + location.host); this.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/invalid-args.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/invalid-args.tentative.html deleted file mode 100644 index b04918a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/invalid-args.tentative.html +++ /dev/null
@@ -1,10 +0,0 @@ -<!doctype html> -<title>unknown parameter</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<div id="log"></div> -<script> -test(function() { - assert_throws(new TypeError, () => postMessage('', '/', {targetOrigin: 'http://example.com'})); -}); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/message-channel-transferable.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/message-channel-transferable.tentative.html index f474286..d42db106 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/message-channel-transferable.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/message-channel-transferable.tentative.html
@@ -6,7 +6,7 @@ <script> async_test(function(t) { var channel = new MessageChannel(); - postMessage('', [channel.port1, channel.port2], {targetOrigin: '*'}); + postMessage('', {targetOrigin: '*', transfer: [channel.port1, channel.port2]}); onmessage = t.step_func(function(e) { assert_equals(e.ports.length, 2); t.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/no-target-origin.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/no-target-origin.tentative.html index e11e49d..517466cc 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/no-target-origin.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/no-target-origin.tentative.html
@@ -5,7 +5,7 @@ <div id="log"></div> <script> async_test(function() { - postMessage('', [], {}); + postMessage('', {}); onmessage = this.step_func(function(e) { assert_equals(e.data, ''); this.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-arg-two.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-transfer.tentative.html similarity index 60% rename from third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-arg-two.tentative.html rename to third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-transfer.tentative.html index d344dc4..72bebd1 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-arg-two.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/null-transfer.tentative.html
@@ -1,10 +1,10 @@ <!doctype html> -<title>null arg two interpreted as null string</title> +<title>null transfer</title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <div id=log></div> <script> test(function(t) { - assert_throws(new SyntaxError, () => postMessage('', null)); + assert_throws(new TypeError, () => postMessage('', {transfer: null})); }); </script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/slash-origin.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/slash-origin.tentative.html index 1c6691a..8bfde73 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/slash-origin.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/slash-origin.tentative.html
@@ -5,7 +5,7 @@ <div id="log"></div> <script> async_test(function() { - postMessage('', [], {targetOrigin: '/'}); + postMessage('', {targetOrigin: '/'}); onmessage = this.step_func(function(e) { assert_equals(e.data, ''); this.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/two-arg.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/two-arg.tentative.html deleted file mode 100644 index ed0314a..0000000 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/two-arg.tentative.html +++ /dev/null
@@ -1,14 +0,0 @@ -<!doctype html> -<title>two argument</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<div id="log"></div> -<script> -test(function() { - postMessage('', []); - onmessage = this.step_func(function(e) { - assert_equals(e.data, ''); - this.done(); - }); -}); -</script>
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/undefined-transferable.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/undefined-transferable.tentative.html index 36c3fe3c..a123b7d9bd 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/undefined-transferable.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/undefined-transferable.tentative.html
@@ -5,7 +5,7 @@ <div id=log></div> <script> async_test(function() { - postMessage('', undefined); + postMessage('', {transfer: undefined}); onmessage = this.step_func(function(e) { assert_array_equals(e.ports, []); this.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/unknown-parameter.tentative.html b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/unknown-parameter.tentative.html index adcd9bf0..de050e7 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/unknown-parameter.tentative.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webmessaging/with-options/unknown-parameter.tentative.html
@@ -5,7 +5,7 @@ <div id="log"></div> <script> async_test(function() { - postMessage('', [], {someBogusParameterOnThisDictionary: 'food'}); + postMessage('', {someBogusParameterOnThisDictionary: 'food'}); onmessage = this.step_func(function(e) { assert_equals(e.data, ''); this.done();
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-transceivers.https.html b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-transceivers.https.html index 3f4e508..49f6839 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-transceivers.https.html +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCPeerConnection-transceivers.https.html
@@ -16,13 +16,13 @@ return pc; } -async function createTrackWithCleanup(t, kind = 'audio') { +async function createTrackAndStreamWithCleanup(t, kind = 'audio') { let constraints = {}; constraints[kind] = true; const stream = await navigator.mediaDevices.getUserMedia(constraints); const [track] = stream.getTracks(); t.add_cleanup(() => track.stop()); - return track; + return [track, stream]; } function findTransceiverForSender(pc, sender) { @@ -64,8 +64,8 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const sender = pc.addTrack(track); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const sender = pc.addTrack(track, stream); const transceiver = findTransceiverForSender(pc, sender); assert_true(transceiver instanceof RTCRtpTransceiver); assert_true(transceiver.sender instanceof RTCRtpSender); @@ -74,8 +74,8 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_array_equals(pc.getTransceivers(), [transceiver], 'pc.getTransceivers() equals [transceiver]'); assert_array_equals(pc.getSenders(), [transceiver.sender], @@ -86,8 +86,8 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_true(transceiver.sender.track instanceof MediaStreamTrack, 'transceiver.sender.track instanceof MediaStreamTrack'); assert_equals(transceiver.sender.track, track, @@ -96,8 +96,8 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_true(transceiver.receiver instanceof RTCRtpReceiver, 'transceiver.receiver instanceof RTCRtpReceiver'); assert_true(transceiver.receiver.track instanceof MediaStreamTrack, @@ -108,51 +108,51 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_true(transceiver.receiver.track.muted); }, 'addTrack: transceiver.receiver\'s track is muted'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_equals(transceiver.mid, null); }, 'addTrack: transceiver is not associated with an m-section'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_false(transceiver.stopped); }, 'addTrack: transceiver is not stopped'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_equals(transceiver.direction, 'sendrecv'); }, 'addTrack: transceiver\'s direction is sendrecv'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); assert_equals(transceiver.currentDirection, null); }, 'addTrack: transceiver\'s currentDirection is null'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); await pc.setLocalDescription(await pc.createOffer()); assert_not_equals(transceiver.mid, null, 'transceiver.mid != null'); }, 'setLocalDescription(offer): transceiver gets associated with an m-section'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc, pc.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc, pc.addTrack(track, stream)); const offer = await pc.createOffer(); await pc.setLocalDescription(offer); let sdp = offer.sdp; @@ -166,7 +166,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_true(trackEvent instanceof RTCTrackEvent, @@ -177,8 +177,8 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - pc1.addTrack(track); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + pc1.addTrack(track, stream); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_true(trackEvent.track instanceof MediaStreamTrack, @@ -189,7 +189,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_true(trackEvent.transceiver instanceof RTCRtpTransceiver, @@ -198,8 +198,8 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc1, pc1.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc1, pc1.addTrack(track, stream)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(transceiver.mid, trackEvent.transceiver.mid); @@ -207,7 +207,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); const transceiver = trackEvent.transceiver; @@ -221,7 +221,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.transceiver.direction, 'recvonly'); @@ -229,7 +229,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.transceiver.currentDirection, null); @@ -237,7 +237,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_false(trackEvent.transceiver.stopped); @@ -245,7 +245,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - pc1.addTrack(await createTrackWithCleanup(t)); + pc1.addTrack(... await createTrackAndStreamWithCleanup(t)); const pc2 = createPeerConnectionWithCleanup(t); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); const transceiver = trackEvent.transceiver; @@ -258,8 +258,8 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const transceiver = findTransceiverForSender(pc1, pc1.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const transceiver = findTransceiverForSender(pc1, pc1.addTrack(track, stream)); const pc2 = createPeerConnectionWithCleanup(t); await exchangeOffer(pc1, pc2); assert_equals(transceiver.currentDirection, null, @@ -271,7 +271,7 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver(track); assert_true(transceiver instanceof RTCRtpTransceiver); assert_true(transceiver.sender instanceof RTCRtpSender); @@ -281,7 +281,7 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver(track); assert_array_equals(pc.getTransceivers(), [transceiver], 'pc.getTransceivers() equals [transceiver]'); @@ -293,7 +293,7 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver(track, {direction:'inactive'}); assert_equals(transceiver.direction, 'inactive'); }, 'addTransceiver(track, init): initialize direction to inactive'); @@ -301,7 +301,7 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); const otherPc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver(track, { sendEncodings: [{active:false}] }); @@ -321,7 +321,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); pc1.addTransceiver(track, {streams:[]}); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.streams.length, 0, 'trackEvent.streams.length == 0'); @@ -330,8 +330,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const stream = new MediaStream(); + const [track, stream] = await createTrackAndStreamWithCleanup(t); pc1.addTransceiver(track, {streams:[stream]}); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.streams.length, 1, 'trackEvent.streams.length == 1'); @@ -342,7 +341,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const stream0 = new MediaStream(); const stream1 = new MediaStream(); pc1.addTransceiver(track, {streams:[stream0, stream1]}); @@ -357,8 +356,8 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - pc1.addTrack(track); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + pc1.addTrack(track, stream); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.streams.length, 0, 'trackEvent.streams.length == 0'); }, 'addTrack(0 streams): ontrack fires with no stream'); @@ -366,8 +365,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const stream = new MediaStream(); + const [track, stream] = await createTrackAndStreamWithCleanup(t); pc1.addTrack(track, stream); const trackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); assert_equals(trackEvent.streams.length, 1, 'trackEvent.streams.length == 1'); @@ -378,7 +376,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const stream0 = new MediaStream(); const stream1 = new MediaStream(); pc1.addTrack(track, stream0, stream1); @@ -392,58 +390,58 @@ promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('audio'); assert_equals(transceiver.direction, 'sendrecv'); }, 'addTransceiver(\'audio\'): creates a transceiver with direction sendrecv'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('audio'); assert_equals(transceiver.receiver.track.kind, 'audio'); }, 'addTransceiver(\'audio\'): transceiver.receiver.track.kind == \'audio\''); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('video'); assert_equals(transceiver.receiver.track.kind, 'video'); }, 'addTransceiver(\'video\'): transceiver.receiver.track.kind == \'video\''); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('audio'); assert_equals(transceiver.sender.track, null); }, 'addTransceiver(\'audio\'): transceiver.sender.track == null'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('audio'); assert_equals(transceiver.currentDirection, null); }, 'addTransceiver(\'audio\'): transceiver.currentDirection is null'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); + const [track, stream] = await createTrackAndStreamWithCleanup(t); const transceiver = pc.addTransceiver('audio'); assert_false(transceiver.stopped); }, 'addTransceiver(\'audio\'): transceiver.stopped is false'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t, 'audio'); + const [track, stream] = await createTrackAndStreamWithCleanup(t, 'audio'); const transceiver = pc.addTransceiver('audio'); - const sender = pc.addTrack(track); + const sender = pc.addTrack(track, stream); assert_equals(sender, transceiver.sender, 'sender == transceiver.sender'); assert_equals(sender.track, track, 'sender.track == track'); }, 'addTrack reuses reusable transceivers'); promise_test(async t => { const pc = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t, 'audio'); + const [track, stream] = await createTrackAndStreamWithCleanup(t, 'audio'); const t1 = pc.addTransceiver('audio'); const t2 = pc.addTransceiver(track); assert_not_equals(t2, t1, 't2 != t1'); @@ -453,13 +451,13 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t); - const pc1Transceiver = findTransceiverForSender(pc1, pc1.addTrack(track)); + const [track, stream] = await createTrackAndStreamWithCleanup(t); + const pc1Transceiver = findTransceiverForSender(pc1, pc1.addTrack(track, stream)); const pc2TrackEvent = await exchangeOfferAndListenToOntrack(t, pc1, pc2); const pc2Transceiver = pc2TrackEvent.transceiver; assert_equals(pc2Transceiver.direction, 'recvonly', 'pc2Transceiver.direction is recvonly after SRD(offer)'); - const pc2Sender = pc2.addTrack(track); + const pc2Sender = pc2.addTrack(track, stream); assert_equals(pc2Transceiver.sender, pc2Sender, 'pc2Transceiver.sender == sender'); assert_equals(pc2Transceiver.direction, 'sendrecv', @@ -468,7 +466,7 @@ 'pc2Transceiver.currentDirection is null before answer'); const pc1TrackEvent = await exchangeAnswerAndListenToOntrack(t, pc1, pc2); assert_equals(pc2Transceiver.currentDirection, 'sendrecv', - 'pc2Transceiver.currentDirection is sendrecv after SLD(answer)'); + 'pc2Transceiver.currentDirection is sendrecv after SLD(answer)'); assert_equals(pc1TrackEvent.transceiver, pc1Transceiver, 'Answer: pc1.ontrack fires with the existing transceiver.'); assert_equals(pc1Transceiver.currentDirection, 'sendrecv', @@ -482,7 +480,7 @@ promise_test(async t => { const pc1 = createPeerConnectionWithCleanup(t); const pc2 = createPeerConnectionWithCleanup(t); - const track = await createTrackWithCleanup(t, 'audio'); + const [track, stream] = await createTrackAndStreamWithCleanup(t, 'audio'); const transceiver = pc1.addTransceiver(track); await exchangeOffer(pc1, pc2); await exchangeAnswer(pc1, pc2);
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt new file mode 100644 index 0000000..303e716 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt
@@ -0,0 +1,40 @@ +This is a testharness.js-based test. +Harness Error. harness_status.status = 1 , harness_status.message = Cannot read property 'receiver' of undefined +FAIL checkAddTransceiverNoTrack promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithTrack promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithAddTrack assert_equals: expected "[{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"audio\"}},sender:{track:{}},stopped:false},{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"video\"}},sender:{track:{}},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithDirection promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithStream promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithOfferToReceiveAudio assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"audio\"}},sender:{track:null},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithOfferToReceiveVideo assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"video\"}},sender:{track:null},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithOfferToReceiveBoth assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"audio\"}},sender:{track:null},stopped:false},{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"video\"}},sender:{track:null},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithSetRemoteOfferSending promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithSetRemoteOfferNoSend promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverBadKind assert_true: addTransceiver("foo") throws a TypeError expected true got false +FAIL checkSetDirection promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkCurrentDirection assert_equals: expected "[{currentDirection:null}]" but got "[]" +FAIL checkSendrecvWithNoSendTrack promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkSendrecvWithTracklessStream promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverNoTrackDoesntPair promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverWithTrackDoesntPair promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverThenReplaceTrackDoesntPair promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTransceiverThenAddTrackPairs promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkAddTrackPairs promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkReplaceTrackNullDoesntPreventPairing promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkRemoveAndReadd assert_equals: expected "[{direction:\"recvonly\",sender:{track:null}},{direction:\"sendrecv\",sender:{track:{}}}]" but got "[]" +FAIL checkAddTrackExistingTransceiverThenRemove promise_test: Unhandled rejection with value: object "InvalidStateError: Failed to execute 'addTransceiver' on 'RTCPeerConnection': This operation is only supported in 'unified-plan'. 'unified-plan' will become the default behavior in the future, but it is currently experimental. To try it out, construct the RTCPeerConnection with sdpSemantics:'unified-plan' present in the RTCConfiguration argument." +FAIL checkRemoveTrackNegotiation promise_test: Unhandled rejection with value: object "TypeError: Cannot set property 'direction' of undefined" +FAIL checkMute promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'receiver' of undefined" +FAIL checkOnAddStream assert_equals: expected "[{streams:[{}]},{streams:[{}]}]" but got "[]" +FAIL checkStop promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +FAIL checkStopAfterCreateOffer promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +FAIL checkStopAfterSetLocalOffer promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +FAIL checkStopAfterSetRemoteOffer promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +FAIL checkStopAfterCreateAnswer promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +FAIL checkStopAfterSetLocalAnswer promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'receiver' of undefined" +FAIL checkStopAfterClose assert_equals: Stopping a transceiver on a closed PC should throw. throws InvalidStateError expected "InvalidStateError" but got "TypeError" +FAIL checkLocalRollback assert_equals: expected "[{currentDirection:null,direction:\"sendrecv\",receiver:{track:{kind:\"audio\"}},sender:{track:{}},stopped:false}]" but got "[]" +FAIL checkRemoteRollback promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': The provided value 'rollback' is not a valid enum value of type RTCSdpType." +FAIL checkMsectionReuse promise_test: Unhandled rejection with value: object "TypeError: Cannot read property 'stop' of undefined" +Harness: the test ran to completion. +
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https.html b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https.html new file mode 100644 index 0000000..2bba7c46 --- /dev/null +++ b/third_party/WebKit/LayoutTests/external/wpt/webrtc/RTCRtpTransceiver.https.html
@@ -0,0 +1,2231 @@ +<!doctype html> +<meta charset=utf-8> +<title>RTCRtpTransceiver</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="RTCPeerConnection-helper.js"></script> +<script> + 'use strict'; + + const checkThrows = async (func, exceptionName, description) => { + try { + await func(); + assert_true(false, description + " throws " + exceptionName); + } catch (e) { + assert_equals(e.name, exceptionName, description + " throws " + exceptionName); + } + }; + + const stopTracks = (...streams) => { + streams.forEach(stream => stream.getTracks().forEach(track => track.stop())); + }; + + const collectEvents = (target, name, check) => { + const events = []; + const handler = e => { + check(e); + events.push(e); + }; + + target.addEventListener(name, handler); + + const finishCollecting = () => { + target.removeEventListener(name, handler); + return events; + }; + + return {finish: finishCollecting}; + }; + + const collectAddTrackEvents = stream => { + const checkEvent = e => { + assert_true(e.track instanceof MediaStreamTrack, "Track is set on event"); + assert_true(stream.getTracks().includes(e.track), + "track in addtrack event is in the stream"); + }; + return collectEvents(stream, "addtrack", checkEvent); + }; + + const collectRemoveTrackEvents = stream => { + const checkEvent = e => { + assert_true(e.track instanceof MediaStreamTrack, "Track is set on event"); + assert_true(!stream.getTracks().includes(e.track), + "track in removetrack event is not in the stream"); + }; + return collectEvents(stream, "removetrack", checkEvent); + }; + + const collectTrackEvents = pc => { + const checkEvent = e => { + assert_true(e.track instanceof MediaStreamTrack, "Track is set on event"); + assert_true(e.receiver instanceof RTCRtpReceiver, "Receiver is set on event"); + assert_true(e.transceiver instanceof RTCRtpTransceiver, "Transceiver is set on event"); + assert_true(Array.isArray(e.streams), "Streams is set on event"); + e.streams.forEach(stream => { + assert_true(stream.getTracks().includes(e.track), + "Each stream in event contains the track"); + }); + assert_equals(e.receiver, e.transceiver.receiver, + "Receiver belongs to transceiver"); + assert_equals(e.track, e.receiver.track, + "Track belongs to receiver"); + }; + + return collectEvents(pc, "track", checkEvent); + }; + + const setRemoteDescriptionReturnTrackEvents = async (pc, desc) => { + const trackEventCollector = collectTrackEvents(pc); + await pc.setRemoteDescription(desc); + return trackEventCollector.finish(); + }; + + const offerAnswer = async (offerer, answerer) => { + const offer = await offerer.createOffer(); + await answerer.setRemoteDescription(offer); + await offerer.setLocalDescription(offer); + const answer = await answerer.createAnswer(); + await offerer.setRemoteDescription(answer); + await answerer.setLocalDescription(answer); + }; + + const trickle = (t, pc1, pc2) => { + pc1.onicecandidate = t.step_func(async e => { + if (e.candidate) { + try { + await pc2.addIceCandidate(e.candidate); + } catch (e) { + assert_true(false, "addIceCandidate threw error: " + e.name); + } + } + }); + }; + + const iceConnected = pc => { + return new Promise((resolve, reject) => { + const iceCheck = () => { + if (pc.iceConnectionState == "connected") { + assert_true(true, "ICE connected"); + resolve(); + } + + if (pc.iceConnectionState == "failed") { + assert_true(false, "ICE failed"); + reject(); + } + }; + + iceCheck(); + pc.oniceconnectionstatechange = iceCheck; + }); + }; + + const negotiationNeeded = pc => { + return new Promise(resolve => pc.onnegotiationneeded = resolve); + }; + + const countEvents = (target, name) => { + const result = {count: 0}; + target.addEventListener(name, e => result.count++); + return result; + }; + + const gotMuteEvent = async track => { + await new Promise(r => track.addEventListener("mute", r, {once: true})); + + assert_true(track.muted, "track should be muted after onmute"); + }; + + const gotUnmuteEvent = async track => { + await new Promise(r => track.addEventListener("unmute", r, {once: true})); + + assert_true(!track.muted, "track should not be muted after onunmute"); + }; + + // comparable() - produces copy of object that is JSON comparable. + // o = original object (required) + // t = template of what to examine. Useful if o is non-enumerable (optional) + + const comparable = (o, t = o) => { + if (typeof o != 'object' || !o) { + return o; + } + if (Array.isArray(t) && Array.isArray(o)) { + return o.map((n, i) => comparable(n, t[i])); + } + return Object.keys(t).sort() + .reduce((r, key) => (r[key] = comparable(o[key], t[key]), r), {}); + }; + + const stripKeyQuotes = s => s.replace(/"(\w+)":/g, "$1:"); + + const hasProps = (observed, expected) => { + const observable = comparable(observed, expected); + assert_equals(stripKeyQuotes(JSON.stringify(observable)), + stripKeyQuotes(JSON.stringify(comparable(expected)))); + }; + + const hasPropsAndUniqueMids = (observed, expected) => { + hasProps(observed, expected); + + const mids = []; + observed.forEach((transceiver, i) => { + if (!("mid" in expected[i])) { + assert_not_equals(transceiver.mid, null); + assert_equals(typeof transceiver.mid, "string"); + } + if (transceiver.mid) { + assert_false(mids.includes(transceiver.mid), "mid must be unique"); + mids.push(transceiver.mid); + } + }); + }; + + const checkAddTransceiverNoTrack = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + hasProps(pc.getTransceivers(), []); + + pc.addTransceiver("audio"); + pc.addTransceiver("video"); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio", readyState: "live", muted: true}}, + sender: {track: null}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + }, + { + receiver: {track: {kind: "video", readyState: "live", muted: true}}, + sender: {track: null}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverWithTrack = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream)); + const audio = stream.getAudioTracks()[0]; + const video = stream.getVideoTracks()[0]; + + pc.addTransceiver(audio); + pc.addTransceiver(video); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: audio}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + }, + { + receiver: {track: {kind: "video"}}, + sender: {track: video}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverWithAddTrack = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream)); + const audio = stream.getAudioTracks()[0]; + const video = stream.getVideoTracks()[0]; + + pc.addTrack(audio, stream); + pc.addTrack(video, stream); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: audio}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + }, + { + receiver: {track: {kind: "video"}}, + sender: {track: video}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverWithDirection = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + pc.addTransceiver("audio", {direction: "recvonly"}); + pc.addTransceiver("video", {direction: "recvonly"}); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + direction: "recvonly", + mid: null, + currentDirection: null, + stopped: false + }, + { + receiver: {track: {kind: "video"}}, + sender: {track: null}, + direction: "recvonly", + mid: null, + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverWithStream = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const audioStream = await navigator.mediaDevices.getUserMedia({audio: true}); + const videoStream = await navigator.mediaDevices.getUserMedia({video: true}); + t.add_cleanup(() => stopTracks(audioStream, videoStream)); + + const audio = audioStream.getAudioTracks()[0]; + const video = videoStream.getVideoTracks()[0]; + + pc.addTransceiver(audio, {streams: [audioStream]}); + pc.addTransceiver(video, {streams: [videoStream]}); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: audio}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + }, + { + receiver: {track: {kind: "video"}}, + sender: {track: video}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + } + ]); + + const offer = await pc.createOffer(); + assert_true(offer.sdp.includes("a=msid:" + audioStream.id + " " + audio.id), + "offer contains the expected audio msid"); + assert_true(offer.sdp.includes("a=msid:" + videoStream.id + " " + video.id), + "offer contains the expected video msid"); + }; + + const checkAddTransceiverWithOfferToReceive = async (t, kinds) => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const propsToSet = kinds.map(kind => { + if (kind == "audio") { + return "offerToReceiveAudio"; + } else if (kind == "video") { + return "offerToReceiveVideo"; + } + }); + + const options = {}; + + for (const prop of propsToSet) { + options[prop] = true; + } + + let offer = await pc.createOffer(options); + + const expected = []; + + if (options.offerToReceiveAudio) { + expected.push( + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + direction: "recvonly", + mid: null, + currentDirection: null, + stopped: false + }); + } + + if (options.offerToReceiveVideo) { + expected.push( + { + receiver: {track: {kind: "video"}}, + sender: {track: null}, + direction: "recvonly", + mid: null, + currentDirection: null, + stopped: false + }); + } + + hasProps(pc.getTransceivers(), expected); + + // Test offerToReceive: false + for (const prop of propsToSet) { + options[prop] = false; + } + + // Check that sendrecv goes to sendonly + for (const transceiver of pc.getTransceivers()) { + transceiver.direction = "sendrecv"; + } + + for (const transceiverCheck of expected) { + transceiverCheck.direction = "sendonly"; + } + + offer = await pc.createOffer(options); + hasProps(pc.getTransceivers(), expected); + + // Check that recvonly goes to inactive + for (const transceiver of pc.getTransceivers()) { + transceiver.direction = "recvonly"; + } + + for (const transceiverCheck of expected) { + transceiverCheck.direction = "inactive"; + } + + offer = await pc.createOffer(options); + hasProps(pc.getTransceivers(), expected); + }; + + const checkAddTransceiverWithSetRemoteOfferSending = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTransceiver(track, {streams: [stream]}); + + const offer = await pc1.createOffer(); + + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + direction: "recvonly", + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverWithSetRemoteOfferNoSend = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTransceiver(track); + pc1.getTransceivers()[0].direction = "recvonly"; + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, []); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + // rtcweb-jsep says this is recvonly, w3c-webrtc does not... + direction: "recvonly", + currentDirection: null, + stopped: false + } + ]); + }; + + const checkAddTransceiverBadKind = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + try { + pc.addTransceiver("foo"); + assert_true(false, 'addTransceiver("foo") throws'); + } + catch (e) { + if (e instanceof TypeError) { + assert_true(true, 'addTransceiver("foo") throws a TypeError'); + } else { + assert_true(false, 'addTransceiver("foo") throws a TypeError'); + } + } + + hasProps(pc.getTransceivers(), []); + }; + + const checkAddTransceiverNoTrackDoesntPair = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + pc1.addTransceiver("audio"); + pc2.addTransceiver("audio"); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[1].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {mid: null}, // no addTrack magic, doesn't auto-pair + {} // Created by SRD + ]); + }; + + const checkAddTransceiverWithTrackDoesntPair = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + pc1.addTransceiver("audio"); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc2.addTransceiver(track); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[1].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {mid: null, sender: {track}}, + {sender: {track: null}} // Created by SRD + ]); + }; + + const checkAddTransceiverThenReplaceTrackDoesntPair = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + pc1.addTransceiver("audio"); + pc2.addTransceiver("audio"); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc2.getTransceivers()[0].sender.replaceTrack(track); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[1].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {mid: null, sender: {track}}, + {sender: {track: null}} // Created by SRD + ]); + }; + + const checkAddTransceiverThenAddTrackPairs = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + pc1.addTransceiver("audio"); + pc2.addTransceiver("audio"); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc2.addTrack(track, stream); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {sender: {track}} + ]); + }; + + const checkAddTrackPairs = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + pc1.addTransceiver("audio"); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc2.addTrack(track, stream); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {sender: {track}} + ]); + }; + + const checkReplaceTrackNullDoesntPreventPairing = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + pc1.addTransceiver("audio"); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc2.addTrack(track, stream); + pc2.getTransceivers()[0].sender.replaceTrack(null); + + const offer = await pc1.createOffer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + {sender: {track: null}} + ]); + }; + + const checkRemoveAndReadd = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + + await offerAnswer(pc1, pc2); + + pc1.removeTrack(pc1.getSenders()[0]); + pc1.addTrack(track, stream); + + hasProps(pc1.getTransceivers(), + [ + { + sender: {track: null}, + direction: "recvonly" + }, + { + sender: {track}, + direction: "sendrecv" + } + ]); + + // pc1 is offerer + await offerAnswer(pc1, pc2); + + hasProps(pc2.getTransceivers(), + [ + {currentDirection: "inactive"}, + {currentDirection: "recvonly"} + ]); + + pc1.removeTrack(pc1.getSenders()[1]); + pc1.addTrack(track, stream); + + hasProps(pc1.getTransceivers(), + [ + { + sender: {track: null}, + direction: "recvonly" + }, + { + sender: {track: null}, + direction: "recvonly" + }, + { + sender: {track}, + direction: "sendrecv" + } + ]); + + // pc1 is answerer. We need to create a new transceiver so pc1 will have + // something to attach the re-added track to + pc2.addTransceiver("audio"); + + await offerAnswer(pc2, pc1); + + hasProps(pc2.getTransceivers(), + [ + {currentDirection: "inactive"}, + {currentDirection: "inactive"}, + {currentDirection: "sendrecv"} + ]); + }; + + const checkAddTrackExistingTransceiverThenRemove = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + pc.addTransceiver("audio"); + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + const audio = stream.getAudioTracks()[0]; + let sender = pc.addTrack(audio, stream); + pc.removeTrack(sender); + + // Cause transceiver to be associated + await pc.setLocalDescription(await pc.createOffer()); + + // Make sure add/remove works still + sender = pc.addTrack(audio, stream); + pc.removeTrack(sender); + + stopTracks(stream); + }; + + const checkRemoveTrackNegotiation = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + const stream = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream)); + const audio = stream.getAudioTracks()[0]; + pc1.addTrack(audio, stream); + const video = stream.getVideoTracks()[0]; + pc1.addTrack(video, stream); + // We want both a sendrecv and sendonly transceiver to test that the + // appropriate direction changes happen. + pc1.getTransceivers()[1].direction = "sendonly"; + + let offer = await pc1.createOffer(); + + // Get a reference to the stream + let trackEventCollector = collectTrackEvents(pc2); + await pc2.setRemoteDescription(offer); + let pc2TrackEvents = trackEventCollector.finish(); + hasProps(pc2TrackEvents, + [ + {streams: [{id: stream.id}]}, + {streams: [{id: stream.id}]} + ]); + const receiveStream = pc2TrackEvents[0].streams[0]; + + // Verify that rollback causes onremovetrack to fire for the added tracks + let removetrackEventCollector = collectRemoveTrackEvents(receiveStream); + await pc2.setRemoteDescription({type: "rollback"}); + let removedtracks = removetrackEventCollector.finish().map(e => e.track); + assert_equals(removedtracks.length, 2, + "Rollback should have removed two tracks"); + assert_true(removedtracks.includes(pc2TrackEvents[0].track), + "First track should be removed"); + assert_true(removedtracks.includes(pc2TrackEvents[1].track), + "Second track should be removed"); + + offer = await pc1.createOffer(); + + let addtrackEventCollector = collectAddTrackEvents(receiveStream); + trackEventCollector = collectTrackEvents(pc2); + await pc2.setRemoteDescription(offer); + pc2TrackEvents = trackEventCollector.finish(); + let addedtracks = addtrackEventCollector.finish().map(e => e.track); + assert_equals(addedtracks.length, 2, + "pc2.setRemoteDescription(offer) should've added 2 tracks to receive stream"); + assert_true(addedtracks.includes(pc2TrackEvents[0].track), + "First track should be added"); + assert_true(addedtracks.includes(pc2TrackEvents[1].track), + "Second track should be added"); + + await pc1.setLocalDescription(offer); + let answer = await pc2.createAnswer(); + await pc1.setRemoteDescription(answer); + await pc2.setLocalDescription(answer); + pc1.removeTrack(pc1.getSenders()[0]); + + hasProps(pc1.getSenders(), + [ + {track: null}, + {track: video} + ]); + + hasProps(pc1.getTransceivers(), + [ + { + sender: {track: null}, + direction: "recvonly" + }, + { + sender: {track: video}, + direction: "sendonly" + } + ]); + + await negotiationNeeded(pc1); + + pc1.removeTrack(pc1.getSenders()[1]); + + hasProps(pc1.getSenders(), + [ + {track: null}, + {track: null} + ]); + + hasProps(pc1.getTransceivers(), + [ + { + sender: {track: null}, + direction: "recvonly" + }, + { + sender: {track: null}, + direction: "inactive" + } + ]); + + // pc1 as offerer + offer = await pc1.createOffer(); + + removetrackEventCollector = collectRemoveTrackEvents(receiveStream); + await pc2.setRemoteDescription(offer); + removedtracks = removetrackEventCollector.finish().map(e => e.track); + assert_equals(removedtracks.length, 2, "Should have two removed tracks"); + assert_true(removedtracks.includes(pc2TrackEvents[0].track), + "First track should be removed"); + assert_true(removedtracks.includes(pc2TrackEvents[1].track), + "Second track should be removed"); + + addtrackEventCollector = collectAddTrackEvents(receiveStream); + await pc2.setRemoteDescription({type: "rollback"}); + addedtracks = addtrackEventCollector.finish().map(e => e.track); + assert_equals(addedtracks.length, 2, "Rollback should have added two tracks"); + + // pc2 as offerer + offer = await pc2.createOffer(); + await pc2.setLocalDescription(offer); + await pc1.setRemoteDescription(offer); + answer = await pc1.createAnswer(); + await pc1.setLocalDescription(answer); + + removetrackEventCollector = collectRemoveTrackEvents(receiveStream); + await pc2.setRemoteDescription(answer); + removedtracks = removetrackEventCollector.finish().map(e => e.track); + assert_equals(removedtracks.length, 2, "Should have two removed tracks"); + + hasProps(pc2.getTransceivers(), + [ + { + currentDirection: "inactive" + }, + { + currentDirection: "inactive" + } + ]); + }; + + const checkSetDirection = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + pc.addTransceiver("audio"); + + pc.getTransceivers()[0].direction = "sendonly"; + hasProps(pc.getTransceivers(),[{direction: "sendonly"}]); + pc.getTransceivers()[0].direction = "recvonly"; + hasProps(pc.getTransceivers(),[{direction: "recvonly"}]); + pc.getTransceivers()[0].direction = "inactive"; + hasProps(pc.getTransceivers(),[{direction: "inactive"}]); + pc.getTransceivers()[0].direction = "sendrecv"; + hasProps(pc.getTransceivers(),[{direction: "sendrecv"}]); + }; + + const checkCurrentDirection = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + hasProps(pc1.getTransceivers(), [{currentDirection: null}]); + + let offer = await pc1.createOffer(); + hasProps(pc1.getTransceivers(), [{currentDirection: null}]); + + await pc1.setLocalDescription(offer); + hasProps(pc1.getTransceivers(), [{currentDirection: null}]); + + let trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasProps(pc2.getTransceivers(), [{currentDirection: null}]); + + let answer = await pc2.createAnswer(); + hasProps(pc2.getTransceivers(), [{currentDirection: null}]); + + await pc2.setLocalDescription(answer); + hasProps(pc2.getTransceivers(), [{currentDirection: "sendrecv"}]); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasProps(pc1.getTransceivers(), [{currentDirection: "sendrecv"}]); + + pc2.getTransceivers()[0].direction = "sendonly"; + + offer = await pc2.createOffer(); + hasProps(pc2.getTransceivers(), [{currentDirection: "sendrecv"}]); + + await pc2.setLocalDescription(offer); + hasProps(pc2.getTransceivers(), [{currentDirection: "sendrecv"}]); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, offer); + hasProps(trackEvents, []); + + hasProps(pc1.getTransceivers(), [{currentDirection: "sendrecv"}]); + + answer = await pc1.createAnswer(); + hasProps(pc1.getTransceivers(), [{currentDirection: "sendrecv"}]); + + await pc1.setLocalDescription(answer); + hasProps(pc1.getTransceivers(), [{currentDirection: "recvonly"}]); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, answer); + hasProps(trackEvents, []); + + hasProps(pc2.getTransceivers(), [{currentDirection: "sendonly"}]); + + pc2.getTransceivers()[0].direction = "sendrecv"; + + offer = await pc2.createOffer(); + hasProps(pc2.getTransceivers(), [{currentDirection: "sendonly"}]); + + await pc2.setLocalDescription(offer); + hasProps(pc2.getTransceivers(), [{currentDirection: "sendonly"}]); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, offer); + hasProps(trackEvents, []); + + hasProps(pc1.getTransceivers(), [{currentDirection: "recvonly"}]); + + answer = await pc1.createAnswer(); + hasProps(pc1.getTransceivers(), [{currentDirection: "recvonly"}]); + + await pc1.setLocalDescription(answer); + hasProps(pc1.getTransceivers(), [{currentDirection: "sendrecv"}]); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, answer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasProps(pc2.getTransceivers(), [{currentDirection: "sendrecv"}]); + }; + + const checkSendrecvWithNoSendTrack = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTransceiver("audio"); + pc1.getTransceivers()[0].direction = "sendrecv"; + pc2.addTrack(track, stream); + + const offer = await pc1.createOffer(); + + let trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [] + } + ]); + + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + + const answer = await pc2.createAnswer(); + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + // Spec language doesn't say anything about checking whether the transceiver + // is stopped here. + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + await iceConnected(pc1); + await iceConnected(pc2); + }; + + const checkSendrecvWithTracklessStream = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = new MediaStream(); + pc1.addTransceiver("audio", {streams: [stream]}); + + const offer = await pc1.createOffer(); + + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + }; + + const checkMute = async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const stream1 = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream1)); + const audio1 = stream1.getAudioTracks()[0]; + pc1.addTrack(audio1, stream1); + const countMuteAudio1 = countEvents(pc1.getTransceivers()[0].receiver.track, "mute"); + const countUnmuteAudio1 = countEvents(pc1.getTransceivers()[0].receiver.track, "unmute"); + + const video1 = stream1.getVideoTracks()[0]; + pc1.addTrack(video1, stream1); + const countMuteVideo1 = countEvents(pc1.getTransceivers()[1].receiver.track, "mute"); + const countUnmuteVideo1 = countEvents(pc1.getTransceivers()[1].receiver.track, "unmute"); + + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream2)); + const audio2 = stream2.getAudioTracks()[0]; + pc2.addTrack(audio2, stream2); + const countMuteAudio2 = countEvents(pc2.getTransceivers()[0].receiver.track, "mute"); + const countUnmuteAudio2 = countEvents(pc2.getTransceivers()[0].receiver.track, "unmute"); + + const video2 = stream2.getVideoTracks()[0]; + pc2.addTrack(video2, stream2); + const countMuteVideo2 = countEvents(pc2.getTransceivers()[1].receiver.track, "mute"); + const countUnmuteVideo2 = countEvents(pc2.getTransceivers()[1].receiver.track, "unmute"); + + + // Check that receive tracks start muted + hasProps(pc1.getTransceivers(), + [ + {receiver: {track: {kind: "audio", muted: true}}}, + {receiver: {track: {kind: "video", muted: true}}} + ]); + + hasProps(pc1.getTransceivers(), + [ + {receiver: {track: {kind: "audio", muted: true}}}, + {receiver: {track: {kind: "video", muted: true}}} + ]); + + let offer = await pc1.createOffer(); + await pc2.setRemoteDescription(offer); + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + let answer = await pc2.createAnswer(); + await pc1.setRemoteDescription(answer); + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + let gotUnmuteAudio1 = gotUnmuteEvent(pc1.getTransceivers()[0].receiver.track); + let gotUnmuteVideo1 = gotUnmuteEvent(pc1.getTransceivers()[1].receiver.track); + + let gotUnmuteAudio2 = gotUnmuteEvent(pc2.getTransceivers()[0].receiver.track); + let gotUnmuteVideo2 = gotUnmuteEvent(pc2.getTransceivers()[1].receiver.track); + + await iceConnected(pc1); + await iceConnected(pc2); + + // Check that receive tracks are unmuted when RTP starts flowing + await gotUnmuteAudio1; + await gotUnmuteVideo1; + await gotUnmuteAudio2; + await gotUnmuteVideo2; + + // Check whether disabling recv locally causes onmute + pc1.getTransceivers()[0].direction = "sendonly"; + pc1.getTransceivers()[1].direction = "sendonly"; + offer = await pc1.createOffer(); + await pc2.setRemoteDescription(offer); + await pc1.setLocalDescription(offer); + answer = await pc2.createAnswer(); + const gotMuteAudio1 = gotMuteEvent(pc1.getTransceivers()[0].receiver.track); + const gotMuteVideo1 = gotMuteEvent(pc1.getTransceivers()[1].receiver.track); + await pc1.setRemoteDescription(answer); + await pc2.setLocalDescription(answer); + await gotMuteAudio1; + await gotMuteVideo1; + + // Check whether disabling on remote causes onmute + pc1.getTransceivers()[0].direction = "inactive"; + pc1.getTransceivers()[1].direction = "inactive"; + offer = await pc1.createOffer(); + const gotMuteAudio2 = gotMuteEvent(pc2.getTransceivers()[0].receiver.track); + const gotMuteVideo2 = gotMuteEvent(pc2.getTransceivers()[1].receiver.track); + await pc2.setRemoteDescription(offer); + await gotMuteAudio2; + await gotMuteVideo2; + await pc1.setLocalDescription(offer); + answer = await pc2.createAnswer(); + await pc1.setRemoteDescription(answer); + await pc2.setLocalDescription(answer); + + // Check whether onunmute fires when we turn everything on again + pc1.getTransceivers()[0].direction = "sendrecv"; + pc1.getTransceivers()[1].direction = "sendrecv"; + offer = await pc1.createOffer(); + await pc2.setRemoteDescription(offer); + await pc1.setLocalDescription(offer); + answer = await pc2.createAnswer(); + gotUnmuteAudio1 = gotUnmuteEvent(pc1.getTransceivers()[0].receiver.track); + gotUnmuteVideo1 = gotUnmuteEvent(pc1.getTransceivers()[1].receiver.track); + gotUnmuteAudio2 = gotUnmuteEvent(pc2.getTransceivers()[0].receiver.track); + gotUnmuteVideo2 = gotUnmuteEvent(pc2.getTransceivers()[1].receiver.track); + await pc1.setRemoteDescription(answer); + await pc2.setLocalDescription(answer); + await gotUnmuteAudio1; + await gotUnmuteVideo1; + await gotUnmuteAudio2; + await gotUnmuteVideo2; + + // Wait a little, just in case some stray events fire + await new Promise(r => t.step_timeout(r, 100)); + + assert_equals(1, countMuteAudio1.count, "Got 1 mute event for pc1's audio track"); + assert_equals(1, countMuteVideo1.count, "Got 1 mute event for pc1's video track"); + assert_equals(1, countMuteAudio2.count, "Got 1 mute event for pc2's audio track"); + assert_equals(1, countMuteVideo2.count, "Got 1 mute event for pc2's video track"); + assert_equals(2, countUnmuteAudio1.count, "Got 2 unmute events for pc1's audio track"); + assert_equals(2, countUnmuteVideo1.count, "Got 2 unmute events for pc1's video track"); + assert_equals(2, countUnmuteAudio2.count, "Got 2 unmute events for pc2's audio track"); + assert_equals(2, countUnmuteVideo2.count, "Got 2 unmute events for pc2's video track"); + }; + + const checkOnAddStream = async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const stream1 = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream1)); + const audio1 = stream1.getAudioTracks()[0]; + pc1.addTrack(audio1, stream1); + const video1 = stream1.getVideoTracks()[0]; + pc1.addTrack(video1, stream1); + + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true, video: true}); + t.add_cleanup(() => stopTracks(stream2)); + const audio2 = stream2.getAudioTracks()[0]; + pc2.addTrack(audio2, stream2); + const video2 = stream2.getVideoTracks()[0]; + pc2.addTrack(video2, stream2); + + const offer = await pc1.createOffer(); + + let trackEventCollector = collectTrackEvents(pc2); + let addstreamEventCollector = collectEvents(pc2, "addstream", e => { + hasProps(e, {stream: {id: stream1.id}}); + assert_equals(e.stream.getAudioTracks().length, 1, "One audio track"); + assert_equals(e.stream.getVideoTracks().length, 1, "One video track"); + }); + + await pc2.setRemoteDescription(offer); + + let addstreamEvents = addstreamEventCollector.finish(); + assert_equals(addstreamEvents.length, 1, "Should have 1 addstream event"); + + let trackEvents = trackEventCollector.finish(); + + hasProps(trackEvents, + [ + {streams: [addstreamEvents[0].stream]}, + {streams: [addstreamEvents[0].stream]} + ]); + + await pc1.setLocalDescription(offer); + const answer = await pc2.createAnswer(); + + trackEventCollector = collectTrackEvents(pc1); + addstreamEventCollector = collectEvents(pc1, "addstream", e => { + hasProps(e, {stream: {id: stream2.id}}); + assert_equals(e.stream.getAudioTracks().length, 1, "One audio track"); + assert_equals(e.stream.getVideoTracks().length, 1, "One video track"); + }); + + await pc1.setRemoteDescription(answer); + addstreamEvents = addstreamEventCollector.finish(); + assert_equals(addstreamEvents.length, 1, "Should have 1 addstream event"); + + trackEvents = trackEventCollector.finish(); + + hasProps(trackEvents, + [ + {streams: [addstreamEvents[0].stream]}, + {streams: [addstreamEvents[0].stream]} + ]); + }; + + const checkStop = async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + + let offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + await pc2.setRemoteDescription(offer); + + pc2.addTrack(track, stream); + + const answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + let stoppedTransceiver = pc1.getTransceivers()[0]; + let onended = new Promise(resolve => { + stoppedTransceiver.receiver.track.onended = resolve; + }); + stoppedTransceiver.stop(); + + await onended; + + hasPropsAndUniqueMids(pc1.getTransceivers(), + [ + { + sender: {track: {kind: "audio"}}, + receiver: {track: {kind: "audio", readyState: "ended"}}, + stopped: true, + currentDirection: null, + direction: "sendrecv" + } + ]); + + const transceiver = pc1.getTransceivers()[0]; + + checkThrows(() => transceiver.sender.setParameters( + transceiver.sender.getParameters()), + "InvalidStateError", "setParameters on stopped transceiver"); + + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true}); + const track2 = stream.getAudioTracks()[0]; + checkThrows(() => transceiver.sender.replaceTrack(track2), + "InvalidStateError", "replaceTrack on stopped transceiver"); + + checkThrows(() => transceiver.direction = "sendrecv", + "InvalidStateError", "setDirection on stopped transceiver"); + + checkThrows(() => transceiver.sender.dtmf.insertDTMF("111"), + "InvalidStateError", "insertDTMF on stopped transceiver"); + + // Shouldn't throw + stoppedTransceiver.stop(); + + offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + + stoppedTransceiver = pc2.getTransceivers()[0]; + onended = new Promise(resolve => { + stoppedTransceiver.receiver.track.onended = resolve; + }); + + await pc2.setRemoteDescription(offer); + + await onended; + + hasProps(pc2.getTransceivers(), + [ + { + sender: {track: {kind: "audio"}}, + receiver: {track: {kind: "audio", readyState: "ended"}}, + stopped: true, + mid: null, + currentDirection: null, + direction: "sendrecv" + } + ]); + + // Shouldn't throw either + stoppedTransceiver.stop(); + + pc1.close(); + pc2.close(); + + // Still shouldn't throw + stoppedTransceiver.stop(); + }; + + const checkStopAfterCreateOffer = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + let offer = await pc1.createOffer(); + + pc1.getTransceivers()[0].stop(); + + await pc2.setRemoteDescription(offer) + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + + let answer = await pc2.createAnswer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + // Spec language doesn't say anything about checking whether the transceiver + // is stopped here. + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasPropsAndUniqueMids(pc1.getTransceivers(), + [ + { + stopped: true, + } + ]); + + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + await negotiationNeeded(pc1); + await iceConnected(pc1); + await iceConnected(pc2); + + offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + await pc2.setRemoteDescription(offer); + answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + hasProps(pc1.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + + hasProps(pc2.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + }; + + const checkStopAfterSetLocalOffer = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + let offer = await pc1.createOffer(); + + await pc2.setRemoteDescription(offer) + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + + pc1.getTransceivers()[0].stop(); + + let answer = await pc2.createAnswer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + // Spec language doesn't say anything about checking whether the transceiver + // is stopped here. + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasPropsAndUniqueMids(pc1.getTransceivers(), + [ + { + stopped: true, + } + ]); + await negotiationNeeded(pc1); + + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + await iceConnected(pc1); + await iceConnected(pc2); + + offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + await pc2.setRemoteDescription(offer); + answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + hasProps(pc1.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + + hasProps(pc2.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + }; + + const checkStopAfterSetRemoteOffer = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + const offer = await pc1.createOffer(); + + await pc2.setRemoteDescription(offer) + await pc1.setLocalDescription(offer); + + // Stop on _answerer_side now. Should take effect in answer. + pc2.getTransceivers()[0].stop(); + + const answer = await pc2.createAnswer(); + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, []); + + hasProps(pc1.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + + await pc2.setLocalDescription(answer); + }; + + const checkStopAfterCreateAnswer = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + let offer = await pc1.createOffer(); + + await pc2.setRemoteDescription(offer) + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + + let answer = await pc2.createAnswer(); + + // Too late for this to go in the answer. ICE should succeed. + pc2.getTransceivers()[0].stop(); + + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + stopped: true, + } + ]); + + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + await negotiationNeeded(pc2); + await iceConnected(pc1); + await iceConnected(pc2); + + offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + await pc2.setRemoteDescription(offer); + answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + hasProps(pc1.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + + hasProps(pc2.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + }; + + const checkStopAfterSetLocalAnswer = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + let offer = await pc1.createOffer(); + + await pc2.setRemoteDescription(offer) + trickle(t, pc1, pc2); + await pc1.setLocalDescription(offer); + + let answer = await pc2.createAnswer(); + + const trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + trickle(t, pc2, pc1); + await pc2.setLocalDescription(answer); + + // ICE should succeed. + pc2.getTransceivers()[0].stop(); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + stopped: true, + } + ]); + + await negotiationNeeded(pc2); + await iceConnected(pc1); + await iceConnected(pc2); + + offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + await pc2.setRemoteDescription(offer); + answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + hasProps(pc1.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + + hasProps(pc2.getTransceivers(), + [ + { + stopped: true, + mid: null + } + ]); + }; + + const checkStopAfterClose = async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + pc2.addTrack(track, stream); + + const offer = await pc1.createOffer(); + await pc2.setRemoteDescription(offer) + await pc1.setLocalDescription(offer); + const answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + pc1.close(); + await checkThrows(() => pc1.getTransceivers()[0].stop(), + "InvalidStateError", + "Stopping a transceiver on a closed PC should throw."); + }; + + const checkLocalRollback = async t => { + const pc = new RTCPeerConnection(); + t.add_cleanup(() => pc.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc.addTrack(track, stream); + + let offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + + hasPropsAndUniqueMids(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track}, + direction: "sendrecv", + currentDirection: null, + stopped: false + } + ]); + + // Verify that rollback doesn't stomp things it should not + pc.getTransceivers()[0].direction = "sendonly"; + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true}); + const track2 = stream2.getAudioTracks()[0]; + await pc.getTransceivers()[0].sender.replaceTrack(track2); + + await pc.setLocalDescription({type: "rollback"}); + + hasProps(pc.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: track2}, + direction: "sendonly", + mid: null, + currentDirection: null, + stopped: false + } + ]); + + // Make sure stop() isn't rolled back either. + offer = await pc.createOffer(); + await pc.setLocalDescription(offer); + pc.getTransceivers()[0].stop(); + await pc.setLocalDescription({type: "rollback"}); + + hasProps(pc.getTransceivers(), [{ stopped: true }]); + }; + + const checkRemoteRollback = async t => { + const pc1 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + + let offer = await pc1.createOffer(); + + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc2.close()); + await pc2.setRemoteDescription(offer); + + const removedTransceiver = pc2.getTransceivers()[0]; + + const onended = new Promise(resolve => { + removedTransceiver.receiver.track.onended = resolve; + }); + + await pc2.setRemoteDescription({type: "rollback"}); + + // Transceiver should be _gone_ + hasProps(pc2.getTransceivers(), []); + + hasProps(removedTransceiver, + { + stopped: true, + mid: null, + currentDirection: null + } + ); + + await onended; + + hasProps(removedTransceiver, + { + receiver: {track: {readyState: "ended"}}, + stopped: true, + mid: null, + currentDirection: null + } + ); + + // Setting the same offer again should do the same thing as before + await pc2.setRemoteDescription(offer); + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + direction: "recvonly", + currentDirection: null, + stopped: false + } + ]); + + const mid0 = pc2.getTransceivers()[0].mid; + + // Give pc2 a track with replaceTrack + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream2)); + const track2 = stream2.getAudioTracks()[0]; + await pc2.getTransceivers()[0].sender.replaceTrack(track2); + pc2.getTransceivers()[0].direction = "sendrecv"; + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: track2}, + direction: "sendrecv", + mid: mid0, + currentDirection: null, + stopped: false + } + ]); + + await pc2.setRemoteDescription({type: "rollback"}); + + // Transceiver should be _gone_, again. replaceTrack doesn't prevent this, + // nor does setDirection. + hasProps(pc2.getTransceivers(), []); + + // Setting the same offer for a _third_ time should do the same thing + await pc2.setRemoteDescription(offer); + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: null}, + direction: "recvonly", + mid: mid0, + currentDirection: null, + stopped: false + } + ]); + + // We should be able to add the same track again + pc2.addTrack(track2, stream2); + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: track2}, + direction: "sendrecv", + mid: mid0, + currentDirection: null, + stopped: false + } + ]); + + await pc2.setRemoteDescription({type: "rollback"}); + // Transceiver should _not_ be gone this time, because addTrack touched it. + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: track2}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: false + } + ]); + + // Complete negotiation so we can test interactions with transceiver.stop() + await pc1.setLocalDescription(offer); + + // After all this SRD/rollback, we should still get the track event + let trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + const answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + + // Make sure all this rollback hasn't messed up the signaling + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, + [ + { + track: pc1.getTransceivers()[0].receiver.track, + streams: [{id: stream2.id}] + } + ]); + hasProps(pc1.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track}, + direction: "sendrecv", + mid: mid0, + currentDirection: "sendrecv", + stopped: false + } + ]); + + // Don't bother waiting for ICE and such + + // Check to see whether rolling back a remote track removal works + pc1.getTransceivers()[0].direction = "recvonly"; + offer = await pc1.createOffer(); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, []); + + trackEvents = + await setRemoteDescriptionReturnTrackEvents(pc2, {type: "rollback"}); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[0].receiver.track, + streams: [{id: stream.id}] + } + ]); + + // Check to see that stop() cannot be rolled back + pc1.getTransceivers()[0].stop(); + offer = await pc1.createOffer(); + + await pc2.setRemoteDescription(offer); + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: track2}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: true + } + ]); + + // stop() cannot be rolled back! + await pc2.setRemoteDescription({type: "rollback"}); + hasProps(pc2.getTransceivers(), + [ + { + receiver: {track: {kind: "audio"}}, + sender: {track: {kind: "audio"}}, + direction: "sendrecv", + mid: null, + currentDirection: null, + stopped: true + } + ]); + }; + + const checkMsectionReuse = async t => { + // Use max-compat to make it easier to check for disabled m-sections + const pc1 = new RTCPeerConnection({ bundlePolicy: "max-compat" }); + const pc2 = new RTCPeerConnection({ bundlePolicy: "max-compat" }); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + const stream = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream)); + const track = stream.getAudioTracks()[0]; + pc1.addTrack(track, stream); + + let offer = await pc1.createOffer(); + await pc1.setLocalDescription(offer); + await pc2.setRemoteDescription(offer); + + // answerer stops transceiver to reject m-section + pc2.getTransceivers()[0].stop(); + + let answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + await pc1.setRemoteDescription(answer); + + hasProps(pc1.getTransceivers(), + [ + { + mid: null, + currentDirection: null, + stopped: true + } + ]); + + hasProps(pc2.getTransceivers(), + [ + { + mid: null, + currentDirection: null, + stopped: true + } + ]); + + // Check that m-section is reused on both ends + const stream2 = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream2)); + const track2 = stream2.getAudioTracks()[0]; + + pc1.addTrack(track2, stream2); + offer = await pc1.createOffer(); + assert_equals(offer.sdp.match(/m=/g).length, 1, + "Exactly one m-line in offer, because it was reused"); + hasProps(pc1.getTransceivers(), + [ + { + stopped: true + }, + { + sender: {track: track2} + } + ]); + + + pc2.addTrack(track, stream); + offer = await pc2.createOffer(); + assert_equals(offer.sdp.match(/m=/g).length, 1, + "Exactly one m-line in offer, because it was reused"); + hasProps(pc2.getTransceivers(), + [ + { + stopped: true + }, + { + sender: {track} + } + ]); + + await pc2.setLocalDescription(offer); + await pc1.setRemoteDescription(offer); + answer = await pc1.createAnswer(); + await pc1.setLocalDescription(answer); + await pc2.setRemoteDescription(answer); + hasPropsAndUniqueMids(pc1.getTransceivers(), + [ + { + mid: null + }, + { + sender: {track: track2}, + currentDirection: "sendrecv" + } + ]); + + const mid0 = pc1.getTransceivers()[1].mid; + + hasProps(pc2.getTransceivers(), + [ + { + mid: null + }, + { + sender: {track}, + currentDirection: "sendrecv", + mid: mid0 + } + ]); + + // stop the transceiver, and add a track. Verify that we don't reuse + // prematurely in our offer. (There should be one rejected m-section, and a + // new one for the new track) + pc1.getTransceivers()[1].stop(); + const stream3 = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream3)); + const track3 = stream3.getAudioTracks()[0]; + pc1.addTrack(track3, stream3); + offer = await pc1.createOffer(); + assert_equals(offer.sdp.match(/m=/g).length, 2, + "Exactly 2 m-lines in offer, because it is too early to reuse"); + assert_equals(offer.sdp.match(/m=audio 0 /g).length, 1, + "One m-line is rejected"); + + await pc1.setLocalDescription(offer); + + let trackEvents = await setRemoteDescriptionReturnTrackEvents(pc2, offer); + hasProps(trackEvents, + [ + { + track: pc2.getTransceivers()[2].receiver.track, + streams: [{id: stream3.id}] + } + ]); + + answer = await pc2.createAnswer(); + await pc2.setLocalDescription(answer); + + trackEvents = await setRemoteDescriptionReturnTrackEvents(pc1, answer); + hasProps(trackEvents, []); + + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + mid: null + }, + { + mid: null, + stopped: true + }, + { + sender: {track: null}, + currentDirection: "recvonly" + } + ]); + + const mid1 = pc1.getTransceivers()[2].mid; + + pc2.addTrack(track3, stream3); + // There are two ways to handle this new track; reuse the recvonly + // transceiver created above, or create a new transceiver and reuse the + // disabled m-section. We're supposed to do the former. + offer = await pc2.createOffer(); + assert_equals(offer.sdp.match(/m=/g).length, 2, "Exactly 2 m-lines in offer"); + assert_equals(offer.sdp.match(/m=audio 0 /g).length, 1, + "One m-line is rejected, because the other was used"); + + hasProps(pc2.getTransceivers(), + [ + {}, + { + stopped: true + }, + { + mid: mid1, + sender: {track: track3}, + currentDirection: "recvonly", + direction: "sendrecv" + } + ]); + + // Add _another_ track; this should reuse the disabled m-section + const stream4 = await navigator.mediaDevices.getUserMedia({audio: true}); + t.add_cleanup(() => stopTracks(stream4)); + const track4 = stream4.getAudioTracks()[0]; + pc2.addTrack(track4, stream4); + offer = await pc2.createOffer(); + await pc2.setLocalDescription(offer); + hasPropsAndUniqueMids(pc2.getTransceivers(), + [ + { + mid: null + }, + { + mid: null + }, + { + mid: mid1 + }, + { + sender: {track: track4}, + mid: mid0 + } + ]); + assert_equals(offer.sdp.match(/m=/g).length, 2, + "Exactly 2 m-lines in offer, because m-section was reused"); + assert_equals(offer.sdp.match(/m=audio 0 /g), null, + "No rejected m-line, because it was reused"); + }; + +const tests = [ + checkAddTransceiverNoTrack, + checkAddTransceiverWithTrack, + checkAddTransceiverWithAddTrack, + checkAddTransceiverWithDirection, + checkAddTransceiverWithStream, + function checkAddTransceiverWithOfferToReceiveAudio(t) { + return checkAddTransceiverWithOfferToReceive(t, ["audio"]); + }, + function checkAddTransceiverWithOfferToReceiveVideo(t) { + return checkAddTransceiverWithOfferToReceive(t, ["video"]); + }, + function checkAddTransceiverWithOfferToReceiveBoth(t) { + return checkAddTransceiverWithOfferToReceive(t, ["audio", "video"]); + }, + checkAddTransceiverWithSetRemoteOfferSending, + checkAddTransceiverWithSetRemoteOfferNoSend, + checkAddTransceiverBadKind, + checkSetDirection, + checkCurrentDirection, + checkSendrecvWithNoSendTrack, + checkSendrecvWithTracklessStream, + checkAddTransceiverNoTrackDoesntPair, + checkAddTransceiverWithTrackDoesntPair, + checkAddTransceiverThenReplaceTrackDoesntPair, + checkAddTransceiverThenAddTrackPairs, + checkAddTrackPairs, + checkReplaceTrackNullDoesntPreventPairing, + checkRemoveAndReadd, + checkAddTrackExistingTransceiverThenRemove, + checkRemoveTrackNegotiation, + checkMute, + checkOnAddStream, + checkStop, + checkStopAfterCreateOffer, + checkStopAfterSetLocalOffer, + checkStopAfterSetRemoteOffer, + checkStopAfterCreateAnswer, + checkStopAfterSetLocalAnswer, + checkStopAfterClose, + checkLocalRollback, + checkRemoteRollback, + checkMsectionReuse +].forEach(test => promise_test(test, test.name)); + +</script>
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args-expected.txt b/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args-expected.txt index 617ca3c..e308b47 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args-expected.txt
@@ -28,7 +28,7 @@ PASS Posting message ('data', 1,,2): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 does not have a transferable type. PASS Posting message ('data', ,function () { [native code] }): threw exception TypeError: Failed to execute 'postMessage' on 'Window': Value at index 0 is an untransferable 'null' value. PASS window.postMessage() threw exception TypeError: Failed to execute 'postMessage' on 'Window': 1 argument required, but only 0 present.. -PASS Posting message ('a', undefined) did not throw an exception +PASS Posting message ('a', undefined): threw exception SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'undefined' in a call to 'postMessage'. PASS Posting message ('done', undefined) did not throw an exception Received message '5' with 0 ports. Received message '6' with 0 ports. @@ -39,7 +39,6 @@ Received message '[object MessagePort]' with 2 ports. Received message '[object MessagePort],[object MessagePort]' with 2 ports. Received message '[object ArrayBuffer]' with 0 ports. -Received message 'a' with 0 ports. Received message 'done' with 0 ports. PASS successfullyParsed is true
diff --git a/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args.html b/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args.html index 41a190d9..20b9aa5 100644 --- a/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args.html +++ b/third_party/WebKit/LayoutTests/fast/dom/Window/window-postmessage-args.html
@@ -106,7 +106,7 @@ shouldThrow("window.postMessage()"); -tryPostMessageFunction(window.postMessage, 'a'); +tryPostMessageFunction(window.postMessage, 'a', undefined, undefined, true); tryPostMessageFunction(window.postMessage, 'done', '*'); </script> </body>
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt deleted file mode 100644 index f69c9c7..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt +++ /dev/null
@@ -1,52 +0,0 @@ -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "drawsContent": false, - "backgroundColor": "#FFFFFF" - }, - { - "name": "Scrolling Layer", - "bounds": [800, 600], - "drawsContent": false - }, - { - "name": "Scrolling Contents Layer", - "bounds": [800, 600], - "contentsOpaque": true, - "backgroundColor": "#FFFFFF" - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='composited'", - "bounds": [540, 240], - "transform": 1 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='composited'", - "bounds": [540, 240], - "transform": 2 - } - ], - "transforms": [ - { - "id": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [10, 10, 0, 1] - ] - }, - { - "id": 2, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [10, 260, 0, 1] - ] - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt deleted file mode 100644 index 6688c69..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt +++ /dev/null
@@ -1,392 +0,0 @@ -123456Before: -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "drawsContent": false, - "backgroundColor": "#FFFFFF" - }, - { - "name": "Scrolling Layer", - "bounds": [800, 600], - "drawsContent": false - }, - { - "name": "Scrolling Contents Layer", - "bounds": [800, 600], - "contentsOpaque": true, - "backgroundColor": "#FFFFFF" - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV id='green-box' class='center box-container'", - "position": [108, 108], - "contentsOpaque": true, - "drawsContent": false - }, - { - "name": "Child Transform Layer", - "drawsContent": false, - "transform": 2 - }, - { - "name": "LayoutNGBlockFlow DIV id='camera' class='rotate-3d-start'", - "bounds": [100, 100], - "drawsContent": false, - "transform": 3 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-1'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 4 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-2'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 5 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-3'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 6 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-4'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 7 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-5'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 8 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-6'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 9 - } - ], - "transforms": [ - { - "id": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [108, 108, 0, 1] - ] - }, - { - "id": 2, - "parent": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, -0.005], - [0, 0, 0, 1] - ], - "origin": [50, 50] - }, - { - "id": 3, - "parent": 2, - "transform": [ - [0.353553390593274, 0.25, -0.5, 0], - [0, 0.353553390593274, 0.707106781186548, 0], - [0.353553390593274, -0.25, 0.5, 0], - [0, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 4, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [0, 0, 50, 1] - ], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 5, - "parent": 3, - "transform": [ - [0, 0, -1, 0], - [0, 1, 0, 0], - [1, 0, 0, 0], - [50, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 6, - "parent": 3, - "transform": [ - [-1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, -1, 0], - [0, 0, -50, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 7, - "parent": 3, - "transform": [ - [0, 0, 1, 0], - [0, 1, 0, 0], - [-1, 0, 0, 0], - [-50, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 8, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 0, 1, 0], - [0, -1, 0, 0], - [0, -50, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 9, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 0, -1, 0], - [0, 1, 0, 0], - [0, 50, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - } - ] -} - -After: -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "drawsContent": false, - "backgroundColor": "#FFFFFF" - }, - { - "name": "Scrolling Layer", - "bounds": [800, 600], - "drawsContent": false - }, - { - "name": "Scrolling Contents Layer", - "bounds": [800, 600], - "contentsOpaque": true, - "backgroundColor": "#FFFFFF" - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV id='green-box' class='center box-container'", - "position": [108, 108], - "contentsOpaque": true, - "drawsContent": false - }, - { - "name": "Child Transform Layer", - "drawsContent": false, - "transform": 2 - }, - { - "name": "LayoutNGBlockFlow DIV id='camera' class='rotate-3d-start rotate-3d-end'", - "bounds": [100, 100], - "drawsContent": false, - "transform": 3 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-1'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 4 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-2'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 5 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-3'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 6 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-4'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 7 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-5'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 8 - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='side side-6'", - "bounds": [100, 100], - "backgroundColor": "#00FF00CC", - "transform": 9 - }, - { - "name": "Squashing Containment Layer", - "drawsContent": false - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='box top left'", - "position": [8, 8], - "bounds": [100, 150], - "contentsOpaque": true, - "backgroundColor": "#808080" - }, - { - "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (positioned) DIV class='box top right')", - "position": [8, 8], - "bounds": [300, 300] - } - ], - "transforms": [ - { - "id": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [108, 108, 0, 1] - ] - }, - { - "id": 2, - "parent": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, -0.005], - [0, 0, 0, 1] - ], - "origin": [50, 50] - }, - { - "id": 3, - "parent": 2, - "transform": [ - [0.707106781186548, 0.5, -0.5, 0], - [0, 0.707106781186548, 0.707106781186548, 0], - [0.707106781186548, -0.5, 0.5, 0], - [0, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 4, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [0, 0, 50, 1] - ], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 5, - "parent": 3, - "transform": [ - [0, 0, -1, 0], - [0, 1, 0, 0], - [1, 0, 0, 0], - [50, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 6, - "parent": 3, - "transform": [ - [-1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, -1, 0], - [0, 0, -50, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 7, - "parent": 3, - "transform": [ - [0, 0, 1, 0], - [0, 1, 0, 0], - [-1, 0, 0, 0], - [-50, 0, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 8, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 0, 1, 0], - [0, -1, 0, 0], - [0, -50, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - }, - { - "id": 9, - "parent": 3, - "transform": [ - [1, 0, 0, 0], - [0, 0, -1, 0], - [0, 1, 0, 0], - [0, 50, 0, 1] - ], - "origin": [50, 50], - "flattenInheritedTransform": false, - "renderingContext": 1 - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/scroll/overflow-scroll-composited-non-stacking-child-expected.txt b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/scroll/overflow-scroll-composited-non-stacking-child-expected.txt deleted file mode 100644 index bc326775..0000000 --- a/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/scroll/overflow-scroll-composited-non-stacking-child-expected.txt +++ /dev/null
@@ -1,89 +0,0 @@ -{ - "layers": [ - { - "name": "LayoutView #document", - "bounds": [800, 600], - "drawsContent": false, - "backgroundColor": "#FFFFFF" - }, - { - "name": "Scrolling Layer", - "bounds": [800, 600], - "drawsContent": false - }, - { - "name": "Scrolling Contents Layer", - "bounds": [800, 600], - "contentsOpaque": true, - "backgroundColor": "#FFFFFF", - "paintInvalidations": [ - { - "object": "LayoutNGBlockFlow DIV class='scroller'", - "rect": [18, 60, 310, 200], - "reason": "full" - }, - { - "object": "LayoutNGBlockFlow (positioned) DIV class='back'", - "rect": [93, 125, 180, 100], - "reason": "paint property change" - }, - { - "object": "LayoutNGBlockFlow (positioned) DIV class='back'", - "rect": [93, 75, 180, 100], - "reason": "paint property change" - }, - { - "object": "VerticalScrollbar", - "rect": [308, 65, 15, 175], - "reason": "scroll control" - } - ] - }, - { - "name": "LayoutNGBlockFlow (positioned) DIV class='icon'", - "bounds": [40, 40], - "contentsOpaque": true, - "backgroundColor": "#FFDDBB", - "transform": 1 - }, - { - "name": "Ancestor Clipping Layer", - "position": [23, 65], - "bounds": [285, 175], - "drawsContent": false - }, - { - "name": "LayoutNGBlockFlow (relative positioned) DIV class='list'", - "position": [43, 35], - "bounds": [180, 250], - "drawsContent": false - }, - { - "name": "Squashing Layer (first squashed layer: LayoutNGBlockFlow (relative positioned) DIV class='commit')", - "position": [43, 35], - "bounds": [230, 250] - } - ], - "transforms": [ - { - "id": 1, - "transform": [ - [1, 0, 0, 0], - [0, 1, 0, 0], - [0, 0, 1, 0], - [200, 10, 0, 1] - ] - } - ], - "objectPaintInvalidations": [ - { - "object": "LayoutNGBlockFlow DIV class='scroller'", - "reason": "full" - }, - { - "object": "VerticalScrollbar", - "reason": "scroll control" - } - ] -} -
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin-expected.txt b/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin-expected.txt index 5f0571bd..c096fc7 100644 --- a/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin-expected.txt +++ b/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin-expected.txt
@@ -1,7 +1,6 @@ window.location.href = http://127.0.0.1:8000/security/postMessage/target-origin.html waiting... -Error sending message to null. SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin 'null' in a call to 'postMessage'. Error sending message to //. SyntaxError: Failed to execute 'postMessage' on 'Window': Invalid target origin '//' in a call to 'postMessage'. Received message: data="Received message: data="Trying origin=*" origin="http://127.0.0.1:8000"" origin="http://localhost:8000" Received message: data="Received message: data="Trying origin=/" origin="http://127.0.0.1:8000"" origin="http://127.0.0.1:8000" @@ -11,4 +10,5 @@ Received message: data="Received message: data="Trying origin=http://localhost:8000/foo?bar" origin="http://127.0.0.1:8000"" origin="http://localhost:8000" Received message: data="Received message: data="Trying origin=http://localhost:8000/foo?bar#baz" origin="http://127.0.0.1:8000"" origin="http://localhost:8000" Received message: data="Received message: data="Trying origin=http://user:pass@localhost:8000/foo?bar#baz" origin="http://127.0.0.1:8000"" origin="http://localhost:8000" +Received message: data="Received message: data="Trying origin=null" origin="http://127.0.0.1:8000"" origin="http://127.0.0.1:8000" Received message: data="Received message: data="Trying origin=undefined" origin="http://127.0.0.1:8000"" origin="http://127.0.0.1:8000"
diff --git a/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin.html b/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin.html index c3c0ff5..4a8f02b 100644 --- a/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin.html +++ b/third_party/WebKit/LayoutTests/http/tests/security/postMessage/target-origin.html
@@ -50,6 +50,7 @@ tryPostMessage(winLocalhost, "*", true); tryPostMessage(win127, "/", true); tryPostMessage(win127, undefined, true); + tryPostMessage(win127, null, true); // Should fail: tryPostMessage(winLocalhost, "/", false); @@ -60,7 +61,6 @@ tryPostMessage(winLocalhost, "http://www.example.com", false); // Should throw syntax error: - tryPostMessage(winLocalhost, null, false); tryPostMessage(win127, "//", false); }
diff --git a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt index 8570ecba..9d5709a 100644 --- a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCPeerConnection-transceivers.https-expected.txt
@@ -27,7 +27,7 @@ PASS addTransceiver(0 streams): ontrack fires with no stream PASS addTransceiver(1 stream): ontrack fires with corresponding stream PASS addTransceiver(2 streams): ontrack fires with corresponding two streams -PASS addTrack(0 streams): ontrack fires with no stream +FAIL addTrack(0 streams): ontrack fires with no stream assert_equals: trackEvent.streams.length == 0 expected 0 but got 1 PASS addTrack(1 stream): ontrack fires with corresponding stream PASS addTrack(2 streams): ontrack fires with corresponding two streams PASS addTransceiver('audio'): creates a transceiver with direction sendrecv
diff --git a/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt new file mode 100644 index 0000000..7a9017a --- /dev/null +++ b/third_party/WebKit/LayoutTests/virtual/webrtc-wpt-unified-plan/external/wpt/webrtc/RTCRtpTransceiver.https-expected.txt
@@ -0,0 +1,39 @@ +This is a testharness.js-based test. +FAIL checkAddTransceiverNoTrack assert_equals: expected "[{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"audio\",muted:true,readyState:\"live\"}},sender:{track:null},stopped:false},{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"video\",muted:true,readyState:\"live\"}},sender:{track:null},stopped:false}]" but got "[{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"audio\",muted:false,readyState:\"live\"}},sender:{track:null},stopped:false},{currentDirection:null,direction:\"sendrecv\",mid:null,receiver:{track:{kind:\"video\",muted:false,readyState:\"live\"}},sender:{track:null},stopped:false}]" +PASS checkAddTransceiverWithTrack +PASS checkAddTransceiverWithAddTrack +PASS checkAddTransceiverWithDirection +PASS checkAddTransceiverWithStream +FAIL checkAddTransceiverWithOfferToReceiveAudio assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"audio\"}},sender:{track:null},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithOfferToReceiveVideo assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"video\"}},sender:{track:null},stopped:false}]" but got "[]" +FAIL checkAddTransceiverWithOfferToReceiveBoth assert_equals: expected "[{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"audio\"}},sender:{track:null},stopped:false},{currentDirection:null,direction:\"recvonly\",mid:null,receiver:{track:{kind:\"video\"}},sender:{track:null},stopped:false}]" but got "[]" +PASS checkAddTransceiverWithSetRemoteOfferSending +PASS checkAddTransceiverWithSetRemoteOfferNoSend +PASS checkAddTransceiverBadKind +PASS checkSetDirection +PASS checkCurrentDirection +PASS checkSendrecvWithNoSendTrack +PASS checkSendrecvWithTracklessStream +PASS checkAddTransceiverNoTrackDoesntPair +PASS checkAddTransceiverWithTrackDoesntPair +PASS checkAddTransceiverThenReplaceTrackDoesntPair +FAIL checkAddTransceiverThenAddTrackPairs assert_equals: expected "[{sender:{track:{}}}]" but got "[{sender:{track:{}}},{}]" +PASS checkAddTrackPairs +PASS checkReplaceTrackNullDoesntPreventPairing +PASS checkRemoveAndReadd +PASS checkAddTrackExistingTransceiverThenRemove +FAIL checkRemoveTrackNegotiation promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': The provided value 'rollback' is not a valid enum value of type RTCSdpType." +FAIL checkMute assert_equals: expected "[{receiver:{track:{kind:\"audio\",muted:true}}},{receiver:{track:{kind:\"video\",muted:true}}}]" but got "[{receiver:{track:{kind:\"audio\",muted:false}}},{receiver:{track:{kind:\"video\",muted:false}}}]" +FAIL checkOnAddStream assert_equals: Should have 1 addstream event expected 1 but got 0 +FAIL checkStop promise_test: Unhandled rejection with value: object "TypeError: stoppedTransceiver.stop is not a function" +FAIL checkStopAfterCreateOffer promise_test: Unhandled rejection with value: object "TypeError: pc1.getTransceivers(...)[0].stop is not a function" +FAIL checkStopAfterSetLocalOffer promise_test: Unhandled rejection with value: object "TypeError: pc1.getTransceivers(...)[0].stop is not a function" +FAIL checkStopAfterSetRemoteOffer promise_test: Unhandled rejection with value: object "TypeError: pc2.getTransceivers(...)[0].stop is not a function" +FAIL checkStopAfterCreateAnswer promise_test: Unhandled rejection with value: object "TypeError: pc2.getTransceivers(...)[0].stop is not a function" +FAIL checkStopAfterSetLocalAnswer promise_test: Unhandled rejection with value: object "TypeError: pc2.getTransceivers(...)[0].stop is not a function" +FAIL checkStopAfterClose assert_equals: Stopping a transceiver on a closed PC should throw. throws InvalidStateError expected "InvalidStateError" but got "TypeError" +FAIL checkLocalRollback promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'setLocalDescription' on 'RTCPeerConnection': The provided value 'rollback' is not a valid enum value of type RTCSdpType." +FAIL checkRemoteRollback promise_test: Unhandled rejection with value: object "TypeError: Failed to execute 'setRemoteDescription' on 'RTCPeerConnection': The provided value 'rollback' is not a valid enum value of type RTCSdpType." +FAIL checkMsectionReuse promise_test: Unhandled rejection with value: object "TypeError: pc2.getTransceivers(...)[0].stop is not a function" +Harness: the test ran to completion. +
diff --git a/third_party/blink/public/platform/web_media_constraints.h b/third_party/blink/public/platform/web_media_constraints.h index d227066..90ca7f10 100644 --- a/third_party/blink/public/platform/web_media_constraints.h +++ b/third_party/blink/public/platform/web_media_constraints.h
@@ -61,48 +61,50 @@ const char* name_; }; +// Note this class refers to the "long" WebIDL definition which is +// equivalent to int32_t. class BLINK_PLATFORM_EXPORT LongConstraint : public BaseConstraint { public: explicit LongConstraint(const char* name); - void SetMin(long value) { + void SetMin(int32_t value) { min_ = value; has_min_ = true; } - void SetMax(long value) { + void SetMax(int32_t value) { max_ = value; has_max_ = true; } - void SetExact(long value) { + void SetExact(int32_t value) { exact_ = value; has_exact_ = true; } - void SetIdeal(long value) { + void SetIdeal(int32_t value) { ideal_ = value; has_ideal_ = true; } - bool Matches(long value) const; + bool Matches(int32_t value) const; bool IsEmpty() const override; bool HasMandatory() const override; WebString ToString() const override; bool HasMin() const { return has_min_; } - long Min() const { return min_; } + int32_t Min() const { return min_; } bool HasMax() const { return has_max_; } - long Max() const { return max_; } + int32_t Max() const { return max_; } bool HasExact() const { return has_exact_; } - long Exact() const { return exact_; } + int32_t Exact() const { return exact_; } bool HasIdeal() const { return has_ideal_; } - long Ideal() const { return ideal_; } + int32_t Ideal() const { return ideal_; } private: - long min_; - long max_; - long exact_; - long ideal_; + int32_t min_; + int32_t max_; + int32_t exact_; + int32_t ideal_; unsigned has_min_ : 1; unsigned has_max_ : 1; unsigned has_exact_ : 1;
diff --git a/third_party/blink/public/platform/web_media_player.h b/third_party/blink/public/platform/web_media_player.h index caab45c..59c2fd3 100644 --- a/third_party/blink/public/platform/web_media_player.h +++ b/third_party/blink/public/platform/web_media_player.h
@@ -212,8 +212,8 @@ virtual unsigned DecodedFrameCount() const = 0; virtual unsigned DroppedFrameCount() const = 0; virtual unsigned CorruptedFrameCount() const { return 0; } - virtual size_t AudioDecodedByteCount() const = 0; - virtual size_t VideoDecodedByteCount() const = 0; + virtual uint64_t AudioDecodedByteCount() const = 0; + virtual uint64_t VideoDecodedByteCount() const = 0; // |out_metadata|, if set, is used to return metadata about the frame // that is uploaded during this call.
diff --git a/third_party/blink/public/platform/web_media_stream_source.h b/third_party/blink/public/platform/web_media_stream_source.h index 6c199fe2..1a3437bb 100644 --- a/third_party/blink/public/platform/web_media_stream_source.h +++ b/third_party/blink/public/platform/web_media_stream_source.h
@@ -79,8 +79,8 @@ struct Capabilities { // WebVector is used to store an optional range for the below numeric // fields. All of them should have 0 or 2 values representing min/max. - WebVector<long> width; - WebVector<long> height; + WebVector<uint32_t> width; + WebVector<uint32_t> height; WebVector<double> aspect_ratio; WebVector<double> frame_rate; WebVector<bool> echo_cancellation;
diff --git a/third_party/blink/public/platform/web_media_stream_track.h b/third_party/blink/public/platform/web_media_stream_track.h index a2650bfd..7db252e 100644 --- a/third_party/blink/public/platform/web_media_stream_track.h +++ b/third_party/blink/public/platform/web_media_stream_track.h
@@ -63,8 +63,8 @@ // The variables are read from // MediaStreamTrack::GetSettings only. double frame_rate = -1.0; - long width = -1; - long height = -1; + int32_t width = -1; + int32_t height = -1; double aspect_ratio = -1.0; WebString device_id; WebString group_id; @@ -73,9 +73,9 @@ base::Optional<bool> auto_gain_control; base::Optional<bool> noise_supression; WebString echo_cancellation_type; - long sample_rate = -1; - long sample_size = -1; - long channel_count = -1; + int32_t sample_rate = -1; + int32_t sample_size = -1; + int32_t channel_count = -1; double latency = -1.0; double volume = -1.0;
diff --git a/third_party/blink/renderer/core/editing/web_substring_util.mm b/third_party/blink/renderer/core/editing/web_substring_util.mm index 0e95a9a..6e7b50f 100644 --- a/third_party/blink/renderer/core/editing/web_substring_util.mm +++ b/third_party/blink/renderer/core/editing/web_substring_util.mm
@@ -142,7 +142,7 @@ WebPoint GetBaselinePoint(LocalFrameView* frame_view, const EphemeralRange& range, NSAttributedString* string) { - IntRect string_rect = frame_view->FrameToViewport(ComputeTextRect(range)); + IntRect string_rect = frame_view->FrameToViewport(FirstRectForRange(range)); IntPoint string_point = string_rect.MinXMaxYCorner(); // Adjust for the font's descender. AppKit wants the baseline point.
diff --git a/third_party/blink/renderer/core/exported/web_view_test.cc b/third_party/blink/renderer/core/exported/web_view_test.cc index c92036eb..5468190 100644 --- a/third_party/blink/renderer/core/exported/web_view_test.cc +++ b/third_party/blink/renderer/core/exported/web_view_test.cc
@@ -4467,6 +4467,24 @@ ASSERT_TRUE(!!result); } +TEST_F(WebViewTest, WebSubstringUtilBaselinePoint) { + RegisterMockedHttpURLLoad("content_editable_multiline.html"); + WebViewImpl* web_view = web_view_helper_.InitializeAndLoad( + base_url_ + "content_editable_multiline.html"); + web_view->GetSettings()->SetDefaultFontSize(12); + web_view->Resize(WebSize(400, 400)); + WebLocalFrameImpl* frame = web_view->MainFrameImpl(); + + WebPoint old_point; + WebSubstringUtil::AttributedSubstringInRange(frame, 3, 1, &old_point); + + WebPoint new_point; + WebSubstringUtil::AttributedSubstringInRange(frame, 3, 20, &new_point); + + EXPECT_EQ(old_point.x, new_point.x); + EXPECT_EQ(old_point.y, new_point.y); +} + TEST_F(WebViewTest, WebSubstringUtilPinchZoom) { RegisterMockedHttpURLLoad("content_editable_populated.html"); WebViewImpl* web_view = web_view_helper_.InitializeAndLoad(
diff --git a/third_party/blink/renderer/core/frame/dom_window.cc b/third_party/blink/renderer/core/frame/dom_window.cc index 21c4cd0..449668c 100644 --- a/third_party/blink/renderer/core/frame/dom_window.cc +++ b/third_party/blink/renderer/core/frame/dom_window.cc
@@ -116,12 +116,13 @@ ExceptionState& exception_state) { WindowPostMessageOptions options; options.setTargetOrigin(target_origin); - postMessage(incumbent_window, message, transfer, options, exception_state); + if (!transfer.IsEmpty()) + options.setTransfer(transfer); + postMessage(incumbent_window, message, options, exception_state); } void DOMWindow::postMessage(LocalDOMWindow* incumbent_window, const ScriptValue& message, - Vector<ScriptValue>& transfer, const WindowPostMessageOptions& options, ExceptionState& exception_state) { UseCounter::Count(incumbent_window->GetFrame(), @@ -133,9 +134,9 @@ v8::Isolate* isolate = window_proxy_manager_->GetIsolate(); Transferables transferables; - if (!transfer.IsEmpty()) { + if (options.hasTransfer() && !options.transfer().IsEmpty()) { if (!SerializedScriptValue::ExtractTransferables( - isolate, transfer, transferables, exception_state)) { + isolate, options.transfer(), transferables, exception_state)) { return; } }
diff --git a/third_party/blink/renderer/core/frame/dom_window.h b/third_party/blink/renderer/core/frame/dom_window.h index 31905b5..4d28c93 100644 --- a/third_party/blink/renderer/core/frame/dom_window.h +++ b/third_party/blink/renderer/core/frame/dom_window.h
@@ -95,7 +95,6 @@ void postMessage(LocalDOMWindow* incumbent_window, const ScriptValue& message, - Vector<ScriptValue>& transfer, const WindowPostMessageOptions& options, ExceptionState&);
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc index 012b557..19eca60 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.cc +++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -234,7 +234,6 @@ DocumentLifecycle::kUninitialized), past_layout_lifecycle_update_(false), suppress_adjust_view_size_(false), - allows_layout_invalidation_after_layout_clean_(true), intersection_observation_state_(kNotNeeded), needs_forced_compositing_update_(false), needs_focus_on_fragment_(false), @@ -1734,6 +1733,7 @@ } bool LocalFrameView::CheckLayoutInvalidationIsAllowed() const { +#if DCHECK_IS_ON() if (allows_layout_invalidation_after_layout_clean_) return true; @@ -1742,6 +1742,7 @@ CHECK_FOR_DIRTY_LAYOUT(Lifecycle().GetState() < DocumentLifecycle::kLayoutClean); +#endif return true; } @@ -2208,7 +2209,7 @@ } void LocalFrameView::UpdateAllLifecyclePhases() { - GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( + GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhases( DocumentLifecycle::kPaintClean); } @@ -2217,7 +2218,7 @@ if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { return UpdateAllLifecyclePhasesExceptPaint(); } else { - return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( + return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhases( DocumentLifecycle::kCompositingClean); } } @@ -2226,18 +2227,18 @@ // When SPv2 is enabled, the standard compositing lifecycle steps do not // exist; compositing is done after paint instead. DCHECK(!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()); - return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( + return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhases( DocumentLifecycle::kCompositingInputsClean); } bool LocalFrameView::UpdateAllLifecyclePhasesExceptPaint() { - return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( + return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhases( DocumentLifecycle::kPrePaintClean); } void LocalFrameView::UpdateLifecyclePhasesForPrinting() { auto* local_frame_view_root = GetFrame().LocalFrameRoot().View(); - local_frame_view_root->UpdateLifecyclePhasesInternal( + local_frame_view_root->UpdateLifecyclePhases( DocumentLifecycle::kPrePaintClean); auto* detached_frame_view = this; @@ -2251,14 +2252,13 @@ // We are printing a detached frame or a descendant of a detached frame which // was not reached in some phases during during |local_frame_view_root-> - // UpdateLifecyclePhasesInternalnormal()|. We need the subtree to be ready for + // UpdateLifecyclePhasesnormal()|. We need the subtree to be ready for // painting. - detached_frame_view->UpdateLifecyclePhasesInternal( - DocumentLifecycle::kPrePaintClean); + detached_frame_view->UpdateLifecyclePhases(DocumentLifecycle::kPrePaintClean); } bool LocalFrameView::UpdateLifecycleToLayoutClean() { - return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhasesInternal( + return GetFrame().LocalFrameRoot().View()->UpdateLifecyclePhases( DocumentLifecycle::kLayoutClean); } @@ -2340,13 +2340,19 @@ // TODO(leviw): We don't assert lifecycle information from documents in child // WebPluginContainerImpls. -bool LocalFrameView::UpdateLifecyclePhasesInternal( +bool LocalFrameView::UpdateLifecyclePhases( DocumentLifecycle::LifecycleState target_state) { - if (frame_->GetDocument() && - frame_->GetDocument()->Lifecycle().LifecyclePostponed()) + // If the lifecycle is postponed, which can happen if the inspector requests + // it, then we shouldn't update any lifecycle phases. + if (UNLIKELY(frame_->GetDocument() && + frame_->GetDocument()->Lifecycle().LifecyclePostponed())) { return false; - if (current_update_lifecycle_phases_target_state_ != - DocumentLifecycle::kUninitialized) { + } + + // Prevent reentrance. + // TODO(vmpstr): Should we just have a DCHECK instead here? + if (UNLIKELY(current_update_lifecycle_phases_target_state_ != + DocumentLifecycle::kUninitialized)) { NOTREACHED() << "LocalFrameView::updateLifecyclePhasesInternal() reentrance"; return false; @@ -2364,22 +2370,103 @@ target_state == DocumentLifecycle::kPrePaintClean || target_state == DocumentLifecycle::kPaintClean); + // If the document is not active then it is either not yet initialized, or it + // is stopping. In either case, we can't reach one of the supported target + // states. if (!frame_->GetDocument()->IsActive()) - return Lifecycle().GetState() == target_state; + return false; + // This is used to guard against reentrance. It is also used in conjunction + // with the current lifecycle state to determine which phases are yet to run + // in this cycle. base::AutoReset<DocumentLifecycle::LifecycleState> target_state_scope( ¤t_update_lifecycle_phases_target_state_, target_state); + // This is used to check if we're within a lifecycle update but have passed + // the layout update phase. Note there is a bit of a subtlety here: it's not + // sufficient for us to check the current lifecycle state, since it can be + // past kLayoutClean but the function to run style and layout phase has not + // actually been run yet. Since this bool affects throttling, and throttling, + // in turn, determines whether style and layout function will run, we need a + // separate bool. + base::AutoReset<bool> past_layout_lifecycle_resetter( + &past_layout_lifecycle_update_, false); + // If we're throttling, then we don't need to update lifecycle phases, only + // the throttling status. if (ShouldThrottleRendering()) { UpdateThrottlingStatusForSubtree(); return Lifecycle().GetState() == target_state; } + // If we're in PrintBrowser mode, setup a print context. + // TODO(vmpstr): It doesn't seem like we need to do this every lifecycle + // update, but rather once somewhere at creation time. if (RuntimeEnabledFeatures::PrintBrowserEnabled()) SetupPrintContext(); else ClearPrintContext(); + // Run the lifecycle updates. + UpdateLifecyclePhasesInternal(target_state); + + // Update intersection observations if needed. + if (intersection_observation_state_ != kNotNeeded && + target_state == DocumentLifecycle::kPaintClean) { + TRACE_EVENT0("blink,benchmark", + "LocalFrameView::UpdateViewportIntersectionsForSubtree"); + SCOPED_UMA_AND_UKM_TIMER("Blink.IntersectionObservation.UpdateTime", + UkmMetricNames::kIntersectionObservation); + UpdateViewportIntersectionsForSubtree(); + } + + UpdateThrottlingStatusForSubtree(); + + return Lifecycle().GetState() == target_state; +} + +void LocalFrameView::UpdateLifecyclePhasesInternal( + DocumentLifecycle::LifecycleState target_state) { + bool run_more_lifecycle_phases = + RunStyleAndLayoutLifecyclePhases(target_state); + DCHECK(Lifecycle().GetState() >= DocumentLifecycle::kLayoutClean); + if (!run_more_lifecycle_phases) + return; + + if (!GetLayoutView()) + return; + +#if DCHECK_IS_ON() + DisallowLayoutInvalidationScope disallow_layout_invalidation(this); +#endif + + { + TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), + "SetLayerTreeId", TRACE_EVENT_SCOPE_THREAD, "data", + InspectorSetLayerTreeId::Data(frame_.Get())); + TRACE_EVENT1("devtools.timeline", "UpdateLayerTree", "data", + InspectorUpdateLayerTreeEvent::Data(frame_.Get())); + + run_more_lifecycle_phases = RunCompositingLifecyclePhase(target_state); + if (!run_more_lifecycle_phases) + return; + + // TODO(pdr): PrePaint should be under the "Paint" devtools timeline + // step for slimming paint v2. + run_more_lifecycle_phases = RunPrePaintLifecyclePhase(target_state); + DCHECK_EQ(Lifecycle().GetState(), DocumentLifecycle::kPrePaintClean); + if (!run_more_lifecycle_phases) + return; + } + + DCHECK_EQ(target_state, DocumentLifecycle::kPaintClean); + RunPaintLifecyclePhase(); + DCHECK((frame_->GetDocument()->Printing() && + !RuntimeEnabledFeatures::PrintBrowserEnabled()) || + Lifecycle().GetState() == DocumentLifecycle::kPaintClean); +} + +bool LocalFrameView::RunStyleAndLayoutLifecyclePhases( + DocumentLifecycle::LifecycleState target_state) { UpdateStyleAndLayoutIfNeededRecursive(); DCHECK(Lifecycle().GetState() >= DocumentLifecycle::kLayoutClean); @@ -2400,23 +2487,22 @@ }); } - if (target_state == DocumentLifecycle::kLayoutClean) { - UpdateThrottlingStatusForSubtree(); - return Lifecycle().GetState() == target_state; - } + if (target_state == DocumentLifecycle::kLayoutClean) + return false; - base::AutoReset<bool> past_layout_lifecycle_update( - &past_layout_lifecycle_update_, true); + // This will be reset by AutoReset in the calling function + // (UpdateLifecyclePhases()). + past_layout_lifecycle_update_ = true; - // OOPIF local frame roots that are throttled can return now that layout - // is clean and intersection observations can be calculated. - if (ShouldThrottleRendering()) { - if (target_state == DocumentLifecycle::kPaintClean) - UpdateViewportIntersectionsForSubtree(); - UpdateThrottlingStatusForSubtree(); - return Lifecycle().GetState() == target_state; - } + // After layout and the |past_layout_lifecycle_update_| update, the value of + // ShouldThrottleRendering() can change. OOPIF local frame roots that are + // throttled can return now that layout is clean. This situation happens if + // the throttling was disabled due to required intersection observation, which + // can now be run. + if (ShouldThrottleRendering()) + return false; + // Now we can run post layout steps in preparation for further phases. ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { frame_view.PerformScrollAnchoringAdjustments(); }); @@ -2427,113 +2513,112 @@ NotifyFrameRectsChangedIfNeededRecursive(); } + return true; +} - if (auto* layout_view = GetLayoutView()) { - allows_layout_invalidation_after_layout_clean_ = false; - ForAllChildLocalFrameViews([](LocalFrameView& frame_view) { - if (!frame_view.ShouldThrottleRendering()) - frame_view.CheckDoesNotNeedLayout(); - frame_view.allows_layout_invalidation_after_layout_clean_ = false; - }); +bool LocalFrameView::RunCompositingLifecyclePhase( + DocumentLifecycle::LifecycleState target_state) { + auto* layout_view = GetLayoutView(); + DCHECK(layout_view); - { - TRACE_EVENT_INSTANT1(TRACE_DISABLED_BY_DEFAULT("devtools.timeline"), - "SetLayerTreeId", TRACE_EVENT_SCOPE_THREAD, "data", - InspectorSetLayerTreeId::Data(frame_.Get())); - TRACE_EVENT1("devtools.timeline", "UpdateLayerTree", "data", - InspectorUpdateLayerTreeEvent::Data(frame_.Get())); - - if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { - SCOPED_UMA_AND_UKM_TIMER("Blink.Compositing.UpdateTime", - UkmMetricNames::kCompositing); - layout_view->Compositor()->UpdateIfNeededRecursive(target_state); - } else { - ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { - frame_view.GetLayoutView()->Layer()->UpdateDescendantDependentFlags(); - frame_view.GetLayoutView()->CommitPendingSelection(); - }); - } - - if (target_state >= DocumentLifecycle::kCompositingClean) { - frame_->GetPage()->GlobalRootScrollerController().DidUpdateCompositing( - *this); - } - - if (target_state >= DocumentLifecycle::kPrePaintClean) { - UpdateCompositedSelectionIfNeeded(); - - // TODO(pdr): prePaint should be under the "Paint" devtools timeline - // step for slimming paint v2. - PrePaint(); - } - } - - if (target_state == DocumentLifecycle::kPaintClean) { - // While printing a document, the paint walk is done by the printing - // component into a special canvas. There is no point doing a normal paint - // step (or animations update for BlinkGenPropertyTrees/SPv2) when in this - // mode. - // - // RuntimeEnabledFeatures::PrintBrowserEnabled is a mode which runs the - // browser normally, but renders every page as if it were being printed. - // See crbug.com/667547 - bool print_mode_enabled = frame_->GetDocument()->Printing() && - !RuntimeEnabledFeatures::PrintBrowserEnabled(); - if (!print_mode_enabled) - PaintTree(); - - if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { - if (layout_view->Compositor()->InCompositingMode()) { - GetScrollingCoordinator()->UpdateAfterPaint(this); - } - } - - if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled() || - RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled()) { - if (!print_mode_enabled) { - base::Optional<CompositorElementIdSet> composited_element_ids = - CompositorElementIdSet(); - PushPaintArtifactToCompositor(composited_element_ids.value()); - // TODO(wkorman): Add call to UpdateCompositorScrollAnimations here. - DocumentAnimations::UpdateAnimations(GetLayoutView()->GetDocument(), - DocumentLifecycle::kPaintClean, - composited_element_ids); - - // Notify the controller that the artifact has been pushed and some - // lifecycle state can be freed (such as raster invalidations). - paint_controller_->FinishCycle(); - // PaintController for BlinkGenPropertyTrees is transient. - if (RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled()) - paint_controller_ = nullptr; - } - } - - if (intersection_observation_state_ != kNotNeeded) { - TRACE_EVENT0("blink,benchmark", - "LocalFrameView::UpdateViewportIntersectionsForSubtree"); - SCOPED_UMA_AND_UKM_TIMER("Blink.IntersectionObservation.UpdateTime", - UkmMetricNames::kIntersectionObservation); - UpdateViewportIntersectionsForSubtree(); - } - - DCHECK(!frame_->Selection().NeedsLayoutSelectionUpdate()); - DCHECK(ShouldThrottleRendering() || - (frame_->GetDocument()->Printing() && - Lifecycle().GetState() == DocumentLifecycle::kPrePaintClean) || - Lifecycle().GetState() == DocumentLifecycle::kPaintClean); - } - - allows_layout_invalidation_after_layout_clean_ = true; - ForAllChildLocalFrameViews([](LocalFrameView& frame_view) { - if (!frame_view.ShouldThrottleRendering()) - frame_view.CheckDoesNotNeedLayout(); - frame_view.allows_layout_invalidation_after_layout_clean_ = true; + if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { + SCOPED_UMA_AND_UKM_TIMER("Blink.Compositing.UpdateTime", + UkmMetricNames::kCompositing); + layout_view->Compositor()->UpdateIfNeededRecursive(target_state); + } else { + ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { + frame_view.GetLayoutView()->Layer()->UpdateDescendantDependentFlags(); + frame_view.GetLayoutView()->CommitPendingSelection(); }); } - UpdateThrottlingStatusForSubtree(); + // We may be in kCompositingInputsClean clean, which does not need to notify + // the global root scroller controller. + if (target_state >= DocumentLifecycle::kCompositingClean) { + frame_->GetPage()->GlobalRootScrollerController().DidUpdateCompositing( + *this); + } - return Lifecycle().GetState() == target_state; + // We need to run more phases only if the target is beyond kCompositingClean. + if (target_state > DocumentLifecycle::kCompositingClean) { + // TODO(vmpstr): Why is composited selection only updated if we're moving + // past kCompositingClean? + UpdateCompositedSelectionIfNeeded(); + return true; + } + return false; +} + +bool LocalFrameView::RunPrePaintLifecyclePhase( + DocumentLifecycle::LifecycleState target_state) { + TRACE_EVENT0("blink,benchmark", "LocalFrameView::prePaint"); + + ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { + frame_view.Lifecycle().AdvanceTo(DocumentLifecycle::kInPrePaint); + if (frame_view.CanThrottleRendering()) { + // This frame can be throttled but not throttled, meaning we are not in an + // AllowThrottlingScope. Now this frame may contain dirty paint flags, and + // we need to propagate the flags into the ancestor chain so that + // PrePaintTreeWalk can reach this frame. + frame_view.SetNeedsPaintPropertyUpdate(); + if (auto* owner = frame_view.GetFrame().OwnerLayoutObject()) + owner->SetMayNeedPaintInvalidation(); + } + }); + + { + SCOPED_UMA_AND_UKM_TIMER("Blink.PrePaint.UpdateTime", + UkmMetricNames::kPrePaint); + + PrePaintTreeWalk().WalkTree(*this); + } + + ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { + frame_view.Lifecycle().AdvanceTo(DocumentLifecycle::kPrePaintClean); + }); + + return target_state > DocumentLifecycle::kPrePaintClean; +} + +void LocalFrameView::RunPaintLifecyclePhase() { + // While printing a document, the paint walk is done by the printing + // component into a special canvas. There is no point doing a normal paint + // step (or animations update for BlinkGenPropertyTrees/SPv2) when in this + // mode. + // + // RuntimeEnabledFeatures::PrintBrowserEnabled is a mode which runs the + // browser normally, but renders every page as if it were being printed. + // See crbug.com/667547 + bool print_mode_enabled = frame_->GetDocument()->Printing() && + !RuntimeEnabledFeatures::PrintBrowserEnabled(); + if (!print_mode_enabled) + PaintTree(); + + if (!RuntimeEnabledFeatures::SlimmingPaintV2Enabled()) { + if (GetLayoutView()->Compositor()->InCompositingMode()) { + GetScrollingCoordinator()->UpdateAfterPaint(this); + } + } + + if (RuntimeEnabledFeatures::SlimmingPaintV2Enabled() || + RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled()) { + if (!print_mode_enabled) { + base::Optional<CompositorElementIdSet> composited_element_ids = + CompositorElementIdSet(); + PushPaintArtifactToCompositor(composited_element_ids.value()); + // TODO(wkorman): Add call to UpdateCompositorScrollAnimations here. + DocumentAnimations::UpdateAnimations(GetLayoutView()->GetDocument(), + DocumentLifecycle::kPaintClean, + composited_element_ids); + + // Notify the controller that the artifact has been pushed and some + // lifecycle state can be freed (such as raster invalidations). + paint_controller_->FinishCycle(); + // PaintController for BlinkGenPropertyTrees is transient. + if (RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled()) + paint_controller_ = nullptr; + } + } } void LocalFrameView::EnqueueScrollAnchoringAdjustment( @@ -2561,33 +2646,6 @@ } } -void LocalFrameView::PrePaint() { - TRACE_EVENT0("blink,benchmark", "LocalFrameView::prePaint"); - - ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { - frame_view.Lifecycle().AdvanceTo(DocumentLifecycle::kInPrePaint); - if (frame_view.CanThrottleRendering()) { - // This frame can be throttled but not throttled, meaning we are not in an - // AllowThrottlingScope. Now this frame may contain dirty paint flags, and - // we need to propagate the flags into the ancestor chain so that - // PrePaintTreeWalk can reach this frame. - frame_view.SetNeedsPaintPropertyUpdate(); - if (auto* owner = frame_view.GetFrame().OwnerLayoutObject()) - owner->SetMayNeedPaintInvalidation(); - } - }); - - { - SCOPED_UMA_AND_UKM_TIMER("Blink.PrePaint.UpdateTime", - UkmMetricNames::kPrePaint); - PrePaintTreeWalk().WalkTree(*this); - } - - ForAllNonThrottledLocalFrameViews([](LocalFrameView& frame_view) { - frame_view.Lifecycle().AdvanceTo(DocumentLifecycle::kPrePaintClean); - }); -} - static void CollectViewportLayersForLayerList(GraphicsContext& context, VisualViewport& visual_viewport) { DCHECK(RuntimeEnabledFeatures::BlinkGenPropertyTreesEnabled());
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h index 9c31537..c0b189a 100644 --- a/third_party/blink/renderer/core/frame/local_frame_view.h +++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -655,6 +655,34 @@ void NotifyFrameRectsChangedIfNeeded(); private: +#if DCHECK_IS_ON() + class DisallowLayoutInvalidationScope { + public: + DisallowLayoutInvalidationScope(LocalFrameView* view) + : local_frame_view_(view) { + local_frame_view_->allows_layout_invalidation_after_layout_clean_ = false; + local_frame_view_->ForAllChildLocalFrameViews( + [](LocalFrameView& frame_view) { + if (!frame_view.ShouldThrottleRendering()) + frame_view.CheckDoesNotNeedLayout(); + frame_view.allows_layout_invalidation_after_layout_clean_ = false; + }); + } + ~DisallowLayoutInvalidationScope() { + local_frame_view_->allows_layout_invalidation_after_layout_clean_ = true; + local_frame_view_->ForAllChildLocalFrameViews( + [](LocalFrameView& frame_view) { + if (!frame_view.ShouldThrottleRendering()) + frame_view.CheckDoesNotNeedLayout(); + frame_view.allows_layout_invalidation_after_layout_clean_ = true; + }); + } + + private: + UntracedMember<LocalFrameView> local_frame_view_; + }; +#endif + explicit LocalFrameView(LocalFrame&, IntRect); void PaintInternal(GraphicsContext&, @@ -669,10 +697,24 @@ void SetupPrintContext(); void ClearPrintContext(); - // Returns whethre the lifecycle was succesfully updated to the + // Returns whether the lifecycle was succesfully updated to the // target state. - bool UpdateLifecyclePhasesInternal( + bool UpdateLifecyclePhases(DocumentLifecycle::LifecycleState target_state); + // The internal version that does the work after the proper context and checks + // have passed in the above function call. + void UpdateLifecyclePhasesInternal( DocumentLifecycle::LifecycleState target_state); + // Four lifecycle phases helper functions corresponding to StyleAndLayout, + // Compositing, PrePaint, and Paint phases. If the return value is true, it + // means further lifecycle phases need to be run. This is used to abort + // earlier if we don't need to run future lifecycle phases. + bool RunStyleAndLayoutLifecyclePhases( + DocumentLifecycle::LifecycleState target_state); + bool RunCompositingLifecyclePhase( + DocumentLifecycle::LifecycleState target_state); + bool RunPrePaintLifecyclePhase( + DocumentLifecycle::LifecycleState target_state); + void RunPaintLifecyclePhase(); void NotifyFrameRectsChangedIfNeededRecursive(); void UpdateStyleAndLayoutIfNeededRecursive(); @@ -867,8 +909,11 @@ AnchoringAdjustmentQueue anchoring_adjustment_queue_; bool suppress_adjust_view_size_; - bool allows_layout_invalidation_after_layout_clean_; - +#if DCHECK_IS_ON() + // In DCHECK on builds, this is set to false when we're running lifecycle + // phases past layout to ensure that phases after layout don't dirty layout. + bool allows_layout_invalidation_after_layout_clean_ = true; +#endif IntersectionObservationState intersection_observation_state_; bool needs_forced_compositing_update_;
diff --git a/third_party/blink/renderer/core/frame/window.idl b/third_party/blink/renderer/core/frame/window.idl index e0ece69c..3b5cf14 100644 --- a/third_party/blink/renderer/core/frame/window.idl +++ b/third_party/blink/renderer/core/frame/window.idl
@@ -102,7 +102,7 @@ [CrossOrigin, CallWith=CurrentWindow, RaisesException] void postMessage(any message, USVString targetOrigin, optional sequence<object> transfer = []); - [CrossOrigin, CallWith=CurrentWindow, RaisesException, RuntimeEnabled=WindowPostMessageOptions] void postMessage(any message, optional sequence<object> transfer = [], optional WindowPostMessageOptions options); + [CrossOrigin, CallWith=CurrentWindow, RaisesException, RuntimeEnabled=WindowPostMessageOptions] void postMessage(any message, optional WindowPostMessageOptions options); // Custom elements // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-api
diff --git a/third_party/blink/renderer/core/frame/window_post_message_options.idl b/third_party/blink/renderer/core/frame/window_post_message_options.idl index da0e1961..d42d557 100644 --- a/third_party/blink/renderer/core/frame/window_post_message_options.idl +++ b/third_party/blink/renderer/core/frame/window_post_message_options.idl
@@ -6,4 +6,5 @@ dictionary WindowPostMessageOptions { USVString targetOrigin = "/"; + sequence<object> transfer = []; };
diff --git a/third_party/blink/renderer/core/layout/layout_menu_list.cc b/third_party/blink/renderer/core/layout/layout_menu_list.cc index 5a05b42..a9421e4 100644 --- a/third_party/blink/renderer/core/layout/layout_menu_list.cc +++ b/third_party/blink/renderer/core/layout/layout_menu_list.cc
@@ -91,11 +91,11 @@ inner_block_ = LayoutBlockFlow::CreateAnonymous(&GetDocument(), CreateInnerStyle()); - button_text_ = LayoutText::CreateEmptyAnonymous(GetDocument()); + button_text_ = + LayoutText::CreateEmptyAnonymous(GetDocument(), MutableStyle()); // We need to set the text explicitly though it was specified in the // constructor because LayoutText doesn't refer to the text // specified in the constructor in a case of re-transforming. - button_text_->SetStyle(MutableStyle()); inner_block_->AddChild(button_text_); LayoutFlexibleBox::AddChild(inner_block_);
diff --git a/third_party/blink/renderer/core/layout/layout_text.cc b/third_party/blink/renderer/core/layout/layout_text.cc index adb6ebb..afd755a 100644 --- a/third_party/blink/renderer/core/layout/layout_text.cc +++ b/third_party/blink/renderer/core/layout/layout_text.cc
@@ -50,6 +50,7 @@ #include "third_party/blink/renderer/core/layout/line/glyph_overflow.h" #include "third_party/blink/renderer/core/layout/line/inline_text_box.h" #include "third_party/blink/renderer/core/layout/ng/geometry/ng_logical_rect.h" +#include "third_party/blink/renderer/core/layout/ng/inline/layout_ng_text.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_abstract_inline_text_box.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_fragment_traversal.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h" @@ -141,9 +142,15 @@ GetFrameView()->IncrementVisuallyNonEmptyCharacterCount(text_.length()); } -LayoutText* LayoutText::CreateEmptyAnonymous(Document& doc) { - LayoutText* text = new LayoutText(nullptr, StringImpl::empty_); +LayoutText* LayoutText::CreateEmptyAnonymous( + Document& doc, + scoped_refptr<ComputedStyle> style) { + LayoutText* text = + RuntimeEnabledFeatures::LayoutNGEnabled() && !style->ForceLegacyLayout() + ? new LayoutNGText(nullptr, StringImpl::empty_) + : new LayoutText(nullptr, StringImpl::empty_); text->SetDocumentForAnonymous(&doc); + text->SetStyle(std::move(style)); return text; }
diff --git a/third_party/blink/renderer/core/layout/layout_text.h b/third_party/blink/renderer/core/layout/layout_text.h index fb644af..8b1fef2 100644 --- a/third_party/blink/renderer/core/layout/layout_text.h +++ b/third_party/blink/renderer/core/layout/layout_text.h
@@ -77,7 +77,8 @@ // doesn't re-transform the string. LayoutText(Node*, scoped_refptr<StringImpl>); - static LayoutText* CreateEmptyAnonymous(Document&); + static LayoutText* CreateEmptyAnonymous(Document&, + scoped_refptr<ComputedStyle>); const char* GetName() const override { return "LayoutText"; }
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc index ae1cb60..2482f1f 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.cc
@@ -6,6 +6,7 @@ #include "third_party/blink/renderer/core/layout/layout_object.h" #include "third_party/blink/renderer/core/layout/layout_text.h" +#include "third_party/blink/renderer/core/layout/ng/inline/layout_ng_text.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h" #include "third_party/blink/renderer/core/style/computed_style.h" @@ -193,8 +194,8 @@ return nullptr; } -inline bool MayCollapseWithLast(const NGInlineItem* item) { - return item && item->EndMayCollapse(); +inline bool MayCollapseWithLast(const NGInlineItem& item) { + return item.EndMayCollapse(); } } // anonymous namespace @@ -202,14 +203,37 @@ template <typename OffsetMappingBuilder> bool NGInlineItemsBuilderTemplate<OffsetMappingBuilder>::Append( const String& original_string, - LayoutObject* layout_object, + LayoutNGText* layout_text, const Vector<NGInlineItem*>& items) { // Don't reuse existing items if they might be affected by whitespace // collapsing. // TODO(layout-dev): This could likely be optimized further. // TODO(layout-dev): Handle cases where the old items are not consecutive. - if (MayCollapseWithLast(LastItemToCollapseWith(items_)) || - IsCollapsibleSpace(original_string[items[0]->StartOffset()])) + const ComputedStyle& new_style = layout_text->StyleRef(); + const ComputedStyle& old_style = *items[0]->Style(); + bool collapse_spaces = new_style.CollapseWhiteSpace(); + if (collapse_spaces != old_style.CollapseWhiteSpace()) + return false; + + NGInlineItem* last_item = LastItemToCollapseWith(items_); + if (collapse_spaces) { + if (!last_item || MayCollapseWithLast(*last_item)) { + // If the original string starts with a collapsible space, it may be + // collapsed. + if (original_string[items[0]->StartOffset()] == kSpaceCharacter) + return false; + } else { + // If the start of the original string was collapsed, it may be + // restored. + const String& source_text = layout_text->GetText(); + if (source_text.length() && IsCollapsibleSpace(source_text[0]) && + original_string[items[0]->StartOffset()] != kSpaceCharacter) + return false; + } + } + + // On nowrap -> wrap boundary, a break opporunity may be inserted. + if (last_item && !last_item->Style()->AutoWrap() && new_style.AutoWrap()) return false; for (const NGInlineItem* item : items) { @@ -227,16 +251,28 @@ // If the position has shifted the item and the shape result needs to be // adjusted to reflect the new start and end offsets. unsigned end = start + item->Length(); - DCHECK(item->TextShapeResult()); - NGInlineItem adjusted_item( - *item, start, end, item->TextShapeResult()->CopyAdjustedOffset(start)); + scoped_refptr<ShapeResult> adjusted_shape_result; + if (item->TextShapeResult()) { + DCHECK_EQ(item->Type(), NGInlineItem::kText); + adjusted_shape_result = + item->TextShapeResult()->CopyAdjustedOffset(start); + DCHECK(adjusted_shape_result); + } else { + // The following should be true, but some unit tests fail. + // DCHECK_EQ(item->Type(), NGInlineItem::kControl); + } + NGInlineItem adjusted_item(*item, start, end, + std::move(adjusted_shape_result)); - DCHECK(adjusted_item.TextShapeResult()); +#if DCHECK_IS_ON() DCHECK_EQ(start, adjusted_item.StartOffset()); - DCHECK_EQ(start, adjusted_item.TextShapeResult()->StartIndexForResult()); DCHECK_EQ(end, adjusted_item.EndOffset()); - DCHECK_EQ(end, adjusted_item.TextShapeResult()->EndIndexForResult()); + if (adjusted_item.TextShapeResult()) { + DCHECK_EQ(start, adjusted_item.TextShapeResult()->StartIndexForResult()); + DCHECK_EQ(end, adjusted_item.TextShapeResult()->EndIndexForResult()); + } DCHECK_EQ(item->IsEmptyItem(), adjusted_item.IsEmptyItem()); +#endif items_->push_back(adjusted_item); is_empty_inline_ &= adjusted_item.IsEmptyItem(); @@ -247,7 +283,7 @@ template <> bool NGInlineItemsBuilderTemplate<NGOffsetMappingBuilder>::Append( const String&, - LayoutObject*, + LayoutNGText*, const Vector<NGInlineItem*>&) { NOTREACHED(); return false;
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h index e944f9ac..f050e466 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder.h
@@ -17,6 +17,7 @@ namespace blink { class ComputedStyle; +class LayoutNGText; class LayoutObject; class LayoutText; @@ -57,7 +58,7 @@ // Returns whether the existing items could be reused. // NOTE: The state of the builder remains unchanged if the append operation // fails (i.e. if it returns false). - bool Append(const String&, LayoutObject*, const Vector<NGInlineItem*>&); + bool Append(const String&, LayoutNGText*, const Vector<NGInlineItem*>&); // Append a string. // When appending, spaces are collapsed according to CSS Text, The white space @@ -163,7 +164,7 @@ template <> CORE_EXPORT bool NGInlineItemsBuilderTemplate<NGOffsetMappingBuilder>::Append( const String&, - LayoutObject*, + LayoutNGText*, const Vector<NGInlineItem*>&); extern template class CORE_EXTERN_TEMPLATE_EXPORT
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder_test.cc index 1d75a511..051f746 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder_test.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_items_builder_test.cc
@@ -6,9 +6,10 @@ #include "testing/gtest/include/gtest/gtest.h" #include "third_party/blink/renderer/core/layout/layout_inline.h" +#include "third_party/blink/renderer/core/layout/ng/inline/layout_ng_text.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h" +#include "third_party/blink/renderer/core/layout/ng/ng_layout_test.h" #include "third_party/blink/renderer/core/style/computed_style.h" -#include "third_party/blink/renderer/core/testing/page_test_base.h" namespace blink { @@ -41,10 +42,10 @@ return result.ToString(); } -class NGInlineItemsBuilderTest : public PageTestBase { +class NGInlineItemsBuilderTest : public NGLayoutTest { protected: void SetUp() override { - PageTestBase::SetUp(); + NGLayoutTest::SetUp(); style_ = ComputedStyle::Create(); } @@ -72,11 +73,11 @@ NGInlineItemsBuilderForOffsetMapping builder(&items_); for (Input& input : inputs) { if (!input.layout_text) { - input.layout_text = LayoutText::CreateEmptyAnonymous(GetDocument()); + input.layout_text = LayoutText::CreateEmptyAnonymous( + GetDocument(), GetStyle(input.whitespace)); anonymous_objects.push_back(input.layout_text); } - builder.Append(input.text, GetStyle(input.whitespace).get(), - input.layout_text); + builder.Append(input.text, input.layout_text->Style(), input.layout_text); } text_ = builder.ToString(); collapsed_ = GetCollapsed(builder.GetOffsetMappingBuilder()); @@ -126,10 +127,12 @@ } // Try to re-use previous items, or Append if it was not re-usable. - bool reused = !previous_items.IsEmpty() && - reuse_builder.Append(text_, nullptr, previous_items); + bool reused = + !previous_items.IsEmpty() && + reuse_builder.Append(text_, ToLayoutNGText(input.layout_text), + previous_items); if (!reused) - reuse_builder.Append(input.text, style_.get()); + reuse_builder.Append(input.text, input.layout_text->Style()); } // Currently, NGInlineItemsBuilder does not strip trailing spaces while
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc index c06d5dce..1c38589 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
@@ -5,6 +5,7 @@ #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.h" #include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/renderer/core/dom/text.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h" @@ -116,6 +117,12 @@ } } + const String& GetText() const { + NGInlineNodeData* data = layout_block_flow_->GetNGInlineNodeData(); + CHECK(data); + return data->text_content; + } + Vector<NGInlineItem>& Items() { NGInlineNodeData* data = layout_block_flow_->GetNGInlineNodeData(); CHECK(data); @@ -615,4 +622,19 @@ EXPECT_TRUE(layout_block_flow_->NeedsCollectInlines()); } +TEST_F(NGInlineNodeTest, SpaceRestoredByInsertingWord) { + SetupHtml("t", "<div id=t>before <span id=x></span> after</div>"); + EXPECT_FALSE(layout_block_flow_->NeedsCollectInlines()); + EXPECT_EQ(String("before after"), GetText()); + + Element* span = GetElementById("x"); + ASSERT_TRUE(span); + Text* text = Text::Create(GetDocument(), "mid"); + span->appendChild(text); + // EXPECT_TRUE(layout_block_flow_->NeedsCollectInlines()); + + ForceLayout(); + EXPECT_EQ(String("before mid after"), GetText()); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc index ae9625d9..677d249 100644 --- a/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc +++ b/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.cc
@@ -293,8 +293,8 @@ } } if (!child) { - text = LayoutText::CreateEmptyAnonymous(GetDocument()); - text->SetStyle(marker_->MutableStyle()); + text = LayoutText::CreateEmptyAnonymous(GetDocument(), + marker_->MutableStyle()); marker_->AddChild(text); is_marker_text_updated_ = false; }
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc index c55598a..fa7ebba 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
@@ -765,6 +765,11 @@ ComputeChildData(*previous_inflow_position, child, child_break_token, has_clearance_past_adjoining_floats); + LayoutUnit child_origin_line_offset = + ConstraintSpace().BfcOffset().line_offset + + border_scrollbar_padding_.LineLeft(direction) + + child_data.margins.LineLeft(direction).ClampNegativeToZero(); + // If the child has a block-start margin, and the BFC offset is still // unresolved, and we have preceding adjoining floats, things get complicated // here. Depending on whether the child fits beside the floats, the margin may @@ -840,9 +845,9 @@ child_determined_bfc_offset; NGLayoutOpportunity opportunity; scoped_refptr<NGLayoutResult> layout_result; - std::tie(layout_result, opportunity) = - LayoutNewFormattingContext(child, child_break_token, child_data, - child_bfc_offset_estimate, abort_if_cleared); + std::tie(layout_result, opportunity) = LayoutNewFormattingContext( + child, child_break_token, child_data, + {child_origin_line_offset, child_bfc_offset_estimate}, abort_if_cleared); if (!layout_result) { DCHECK(abort_if_cleared); @@ -880,7 +885,8 @@ // We can re-layout the child right away. This re-layout *must* produce a // fragment and opportunity which fits within the exclusion space. std::tie(layout_result, opportunity) = LayoutNewFormattingContext( - child, child_break_token, child_data, child_bfc_offset_estimate, + child, child_break_token, child_data, + {child_origin_line_offset, child_bfc_offset_estimate}, /* abort_if_cleared */ false); } DCHECK(layout_result->PhysicalFragment()); @@ -904,8 +910,26 @@ fragment.InlineSize(), &auto_margins); } - NGBfcOffset child_bfc_offset(opportunity.rect.start_offset.line_offset + - auto_margins.LineLeft(direction), + LayoutUnit child_bfc_line_offset = opportunity.rect.start_offset.line_offset + + auto_margins.LineLeft(direction); + + // When there are negative margins present, a new formatting context can move + // outside its layout opportunity. This occurs when the *line-left* edge + // hasn't been shifted by floats. + // + // NOTE: Firefox and EdgeHTML both match this behaviour of only considering + // the line-left edge. WebKit also considers this line-right edge, but this + // is slightly more complicated to implement, and probably not needed for web + // compatibility. + bool can_move_outside_opportunity = + opportunity.rect.start_offset.line_offset == child_origin_line_offset; + + if (can_move_outside_opportunity) { + child_bfc_line_offset += + child_data.margins.LineLeft(direction).ClampPositiveToZero(); + } + + NGBfcOffset child_bfc_offset(child_bfc_line_offset, opportunity.rect.start_offset.block_offset); NGLogicalOffset logical_offset = LogicalFromBfcOffsets( @@ -951,20 +975,10 @@ NGLayoutInputNode child, NGBreakToken* child_break_token, const NGInflowChildData& child_data, - LayoutUnit child_origin_block_offset, + NGBfcOffset origin_offset, bool abort_if_cleared) { - const TextDirection direction = ConstraintSpace().Direction(); - const WritingMode writing_mode = ConstraintSpace().GetWritingMode(); - - LayoutUnit child_bfc_line_offset = - ConstraintSpace().BfcOffset().line_offset + - border_scrollbar_padding_.LineLeft(direction) + - child_data.margins.LineLeft(direction); - // The origin offset is where we should start looking for layout // opportunities. It needs to be adjusted by the child's clearance. - NGBfcOffset origin_offset = {child_bfc_line_offset, - child_origin_block_offset}; AdjustToClearance(exclusion_space_->ClearanceOffset(child.Style().Clear()), &origin_offset); DCHECK(container_builder_.BfcBlockOffset()); @@ -980,49 +994,68 @@ // floats. LayoutUnit inline_margin = child_data.margins.InlineSum(); LayoutUnit inline_size = - (child_available_size_.inline_size - inline_margin).ClampNegativeToZero(); - NGLayoutOpportunity opportunity = exclusion_space_->FindLayoutOpportunity( - origin_offset, inline_size, NGLogicalSize()); + (child_available_size_.inline_size - inline_margin.ClampNegativeToZero()) + .ClampNegativeToZero(); - scoped_refptr<NGLayoutResult> layout_result; + Vector<NGLayoutOpportunity> opportunities = + exclusion_space_->AllLayoutOpportunities(origin_offset, inline_size); + + // We should always have at least one opportunity. + DCHECK_GT(opportunities.size(), 0u); // Now we lay out. This will give us a child fragment and thus its size, which - // means that we can find out where it's actually going to fit. If it doesn't + // means that we can find out if it's actually going to fit. If it doesn't // fit where it was laid out, and is pushed downwards, we'll lay out over - // again, since a new BFC offset could result in a new fragment size, - // e.g. when inline size is auto, or if we're block-fragmented. - do { + // again, since a new BFC offset could result in a new fragment size, e.g. + // when inline size is auto, or if we're block-fragmented. + for (const auto opportunity : opportunities) { if (abort_if_cleared && origin_offset.block_offset < opportunity.rect.BlockStartOffset()) { // Abort if we got pushed downwards. We need to adjust - // child_origin_block_offset, reposition any floats affected by that, and + // origin_offset.block_offset, reposition any floats affected by that, and // try again. - layout_result = nullptr; - break; + return std::make_pair(nullptr, opportunity); } - origin_offset.block_offset = opportunity.rect.BlockStartOffset(); + // When the inline dimensions of layout opportunity match the available + // space, a new formatting context can expand outside of the opportunity if + // negative margins are present. + bool can_expand_outside_opportunity = + (opportunity.rect.start_offset.line_offset == + origin_offset.line_offset && + opportunity.rect.InlineSize() == inline_size); + + LayoutUnit inline_negative_margin = + can_expand_outside_opportunity ? inline_margin.ClampPositiveToZero() + : LayoutUnit(); + // The available inline size in the child constraint space needs to include // inline margins, since layout algorithms (both legacy and NG) will resolve // auto inline size by subtracting the inline margins from available inline // size. We have calculated a layout opportunity without margins in mind, // since they overlap with adjacent floats. Now we need to add them. NGLogicalSize child_available_size = { - (opportunity.rect.InlineSize() + inline_margin).ClampNegativeToZero(), + (opportunity.rect.InlineSize() - inline_negative_margin + inline_margin) + .ClampNegativeToZero(), child_available_size_.block_size}; auto child_space = CreateConstraintSpaceForChild(child, child_data, child_available_size); - layout_result = child.Layout(*child_space, child_break_token); + scoped_refptr<NGLayoutResult> layout_result = + child.Layout(*child_space, child_break_token); + DCHECK(layout_result->PhysicalFragment()); + NGFragment fragment(ConstraintSpace().GetWritingMode(), + *layout_result->PhysicalFragment()); - // Now find a layout opportunity where the fragment is actually going to - // fit. - NGFragment fragment(writing_mode, *layout_result->PhysicalFragment()); - opportunity = exclusion_space_->FindLayoutOpportunity( - origin_offset, inline_size, fragment.Size()); - } while (origin_offset.block_offset < opportunity.rect.BlockStartOffset()); + // Now we can check if the fragment will fit in this layout opportunity. + if ((opportunity.rect.InlineSize() >= fragment.InlineSize() || + opportunity.rect.InlineSize() == inline_size) && + opportunity.rect.BlockSize() >= fragment.BlockSize()) + return std::make_pair(std::move(layout_result), opportunity); + } - return std::make_pair(std::move(layout_result), opportunity); + NOTREACHED(); + return std::make_pair(nullptr, NGLayoutOpportunity()); } bool NGBlockLayoutAlgorithm::HandleInflow( @@ -1097,18 +1130,6 @@ return false; } - // We only want to copy from a layout that was successful. If the status was - // kBfcOffsetResolved we may have unpositioned floats which we will position - // in the current exclusion space once *our* BFC is resolved. - // - // The exclusion space is then updated when the child undergoes relayout - // below. - if (layout_result->Status() == NGLayoutResult::kSuccess) { - DCHECK(layout_result->ExclusionSpace()); - exclusion_space_ = - std::make_unique<NGExclusionSpace>(*layout_result->ExclusionSpace()); - } - // We have special behaviour for an empty block which gets pushed down due to // clearance, see comment inside ComputeInflowPosition. bool empty_block_affected_by_clearance = false; @@ -1218,13 +1239,14 @@ } DCHECK_EQ(layout_result->Status(), NGLayoutResult::kSuccess); - - DCHECK(layout_result->ExclusionSpace()); - exclusion_space_ = - std::make_unique<NGExclusionSpace>(*layout_result->ExclusionSpace()); relayout_child_when_bfc_resolved = false; } + // It is now safe to update our version of the exclusion space. + DCHECK(layout_result->ExclusionSpace()); + exclusion_space_ = + std::make_unique<NGExclusionSpace>(*layout_result->ExclusionSpace()); + // If we don't know our BFC offset yet, and the child stumbled into something // that needs it (unable to position floats when the BFC offset is unknown), // we need abort layout once we manage to resolve it, and relayout. Note that
diff --git a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h index 1cde8d8..6d7147fd 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h +++ b/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h
@@ -150,7 +150,7 @@ LayoutNewFormattingContext(NGLayoutInputNode child, NGBreakToken* child_break_token, const NGInflowChildData&, - LayoutUnit child_origin_block_offset, + NGBfcOffset origin_offset, bool abort_if_cleared); // Handle an in-flow child.
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc index 760b1285..48e50a2c 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc
@@ -353,6 +353,13 @@ void NGPhysicalFragment::PropagateContentsInkOverflow( NGPhysicalOffsetRect* parent_ink_overflow) const { + // Add in visual overflow from the child. Even if the child clips its + // overflow, it may still have visual overflow of its own set from box shadows + // or reflections. It is unnecessary to propagate this overflow if we are + // clipping our own overflow. + if (IsBox() && ToNGPhysicalBoxFragment(*this).HasSelfPaintingLayer()) + return; + NGPhysicalOffsetRect ink_overflow = InkOverflow(); ink_overflow.offset += Offset(); parent_ink_overflow->Unite(ink_overflow);
diff --git a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc index f26ccfa..a5ebe5b 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_inline_box_fragment_painter.cc
@@ -61,18 +61,13 @@ if (inline_box_fragment_.Style().Visibility() != EVisibility::kVisible) return; - // You can use p::first-line to specify a background. If so, the root line - // boxes for a line may actually have to paint a background. - bool should_paint_box_decoration_background; - if (inline_box_fragment_.Parent()) { - should_paint_box_decoration_background = - inline_box_fragment_.Style().HasBoxDecorationBackground(); - } else { - // TODO(kojii): Get from fragment once available. - bool is_first_line = false; - should_paint_box_decoration_background = - is_first_line && line_style_ != style_; - } + // You can use p::first-line to specify a background. If so, the direct child + // inline boxes of line boxes may actually have to paint a background. + // TODO(layout-dev): Cache HasBoxDecorationBackground on the fragment like + // we do for LayoutObject. Querying Style each time is too costly. + bool should_paint_box_decoration_background = + inline_box_fragment_.GetLayoutObject()->HasBoxDecorationBackground() || + inline_box_fragment_.PhysicalFragment().UsesFirstLineStyle(); if (!should_paint_box_decoration_background) return;
diff --git a/third_party/blink/renderer/core/testing/data/content_editable_multiline.html b/third_party/blink/renderer/core/testing/data/content_editable_multiline.html new file mode 100644 index 0000000..078342b --- /dev/null +++ b/third_party/blink/renderer/core/testing/data/content_editable_multiline.html
@@ -0,0 +1 @@ +<span contenteditable="true">0123456789<br>abcdefghijklmnopqrstuvwxyz</span> \ No newline at end of file
diff --git a/third_party/blink/renderer/core/workers/worker_thread_test.cc b/third_party/blink/renderer/core/workers/worker_thread_test.cc index e4b76be3..d776fda 100644 --- a/third_party/blink/renderer/core/workers/worker_thread_test.cc +++ b/third_party/blink/renderer/core/workers/worker_thread_test.cc
@@ -147,8 +147,6 @@ EXPECT_TRUE(parent_thread->IsCurrentThread()); EXPECT_EQ(ExitCode::kGracefullyTerminated, parent_thread->GetExitCodeForTesting()); - EXPECT_EQ(ExitCode::kGracefullyTerminated, - nested_worker_helper->worker_thread->GetExitCodeForTesting()); EXPECT_NE(nullptr, parent_thread->GlobalScope()); parent_thread->ChildThreadTerminatedOnWorkerThread( @@ -479,9 +477,7 @@ EXPECT_EQ(ExitCode::kGracefullyTerminated, GetExitCode()); } -// TODO(https://crbug.com/868253): Disabled due to flaking on multiple bots. -// Fix and re-enable. -TEST_F(WorkerThreadTest, DISABLED_TerminateWorkerWhileChildIsLoading) { +TEST_F(WorkerThreadTest, TerminateWorkerWhileChildIsLoading) { ExpectReportingCalls(); Start(); worker_thread_->WaitForInit();
diff --git a/third_party/blink/renderer/devtools/BUILD.gn b/third_party/blink/renderer/devtools/BUILD.gn index 358c518..5d9d54e 100644 --- a/third_party/blink/renderer/devtools/BUILD.gn +++ b/third_party/blink/renderer/devtools/BUILD.gn
@@ -179,6 +179,7 @@ "front_end/console/consoleView.css", "front_end/console/consoleContextSelector.css", "front_end/console/consolePinPane.css", + "front_end/console/consolePrompt.css", "front_end/console/consoleSidebar.css", "front_end/console/ConsoleView.js", "front_end/console/ConsoleViewMessage.js",
diff --git a/third_party/blink/renderer/devtools/front_end/console/ConsolePrompt.js b/third_party/blink/renderer/devtools/front_end/console/ConsolePrompt.js index d31ce21..84c2338b 100644 --- a/third_party/blink/renderer/devtools/front_end/console/ConsolePrompt.js +++ b/third_party/blink/renderer/devtools/front_end/console/ConsolePrompt.js
@@ -5,6 +5,7 @@ Console.ConsolePrompt = class extends UI.Widget { constructor() { super(); + this.registerRequiredCSS('console/consolePrompt.css'); this._addCompletionsFromHistory = true; this._history = new Console.ConsoleHistoryManager(); @@ -23,10 +24,6 @@ this._eagerEvalSetting.addChangeListener(this._eagerSettingChanged.bind(this)); this._eagerPreviewElement.classList.toggle('hidden', !this._eagerEvalSetting.get()); - // TODO(luoe): split out prompt styles into ConsolePrompt.css. - const pinsEnabled = Runtime.experiments.isEnabled('pinnedExpressions'); - if (pinsEnabled) - this.element.style.marginRight = '20px'; this.element.tabIndex = 0; /** @type {?Promise} */ this._previewRequestForTest = null; @@ -54,7 +51,8 @@ this._editor.widget().show(this.element); this._editor.addEventListener(UI.TextEditor.Events.TextChanged, this._onTextChanged, this); this._editor.addEventListener(UI.TextEditor.Events.SuggestionChanged, this._onTextChanged, this); - if (pinsEnabled) { + if (Runtime.experiments.isEnabled('pinnedExpressions')) { + this.element.classList.add('console-pins-enabled'); const pinButton = this.element.createChild('span', 'command-pin-button'); pinButton.title = ls`Pin expression and continuously evaluate`; pinButton.addEventListener('click', () => {
diff --git a/third_party/blink/renderer/devtools/front_end/console/consolePrompt.css b/third_party/blink/renderer/devtools/front_end/console/consolePrompt.css new file mode 100644 index 0000000..68d8d9b --- /dev/null +++ b/third_party/blink/renderer/devtools/front_end/console/consolePrompt.css
@@ -0,0 +1,82 @@ +/* + * Copyright 2018 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. + */ + +#console-prompt .CodeMirror { + padding: 3px 0 1px 0; +} + +#console-prompt .CodeMirror-line { + padding-top: 0; +} + +#console-prompt .CodeMirror-lines { + padding-top: 0; +} + +#console-prompt .console-prompt-icon { + position: absolute; + left: -13px; + top: 5px; + -webkit-user-select: none; +} + +.console-eager-preview { + padding-bottom: 2px; + opacity: 0.6; + position: relative; + height: 15px; +} + +.console-eager-inner-preview { + text-overflow: ellipsis; + overflow: hidden; + margin-left: 4px; + height: 100%; +} + +.console-eager-inner-preview * { + white-space: nowrap; +} + +.console-eager-inner-preview:empty, +.console-eager-inner-preview:empty + .preview-result-icon { + opacity: 0; +} + +.preview-result-icon { + position: absolute; + left: -13px; + top: 1px; +} + +.command-pin-button::before { + content: '\1f4cc'; +} + +.command-pin-button { + cursor: pointer; + position: absolute; + top: 1px; + right: -40px; + opacity: 0; + width: 40px; +} + +#console-prompt:hover .command-pin-button { + opacity: 0.12; +} + +.-theme-with-dark-background #console-prompt:hover .command-pin-button { + opacity: 0.25; +} + +#console-prompt:hover .command-pin-button:hover { + opacity: 0.6; +} + +.console-pins-enabled { + margin-right: 20px; +}
diff --git a/third_party/blink/renderer/devtools/front_end/console/consoleView.css b/third_party/blink/renderer/devtools/front_end/console/consoleView.css index ecc4303..2e7e2792 100644 --- a/third_party/blink/renderer/devtools/front_end/console/consoleView.css +++ b/third_party/blink/renderer/devtools/front_end/console/consoleView.css
@@ -81,25 +81,6 @@ min-height: 18px; /* Sync with ConsoleViewMessage.js */ } -#console-prompt .CodeMirror { - padding: 3px 0 1px 0; -} - -#console-prompt .CodeMirror-line { - padding-top: 0; -} - -#console-prompt .CodeMirror-lines { - padding-top: 0; -} - -#console-prompt .console-prompt-icon { - position: absolute; - left: -13px; - top: 5px; - -webkit-user-select: none; -} - .console-message, .console-user-command { clear: right; @@ -437,61 +418,7 @@ max-height: 100%; } -.console-eager-preview { - padding-bottom: 2px; - opacity: 0.6; - position: relative; - height: 15px; -} - -.console-eager-inner-preview { - text-overflow: ellipsis; - overflow: hidden; - margin-left: 4px; - height: 100%; -} - -.console-eager-inner-preview * { - white-space: nowrap; -} - -.console-eager-inner-preview:empty, -.console-eager-inner-preview:empty + .preview-result-icon { - opacity: 0; -} - -.preview-result-icon { - position: absolute; - left: -13px; - top: 1px; -} - .console-view-pinpane { flex: none; max-height: 200px; } - -.command-pin-button::before { - content: '\1f4cc'; -} - -.command-pin-button { - cursor: pointer; - position: absolute; - top: 1px; - right: -40px; - opacity: 0; - width: 40px; -} - -#console-prompt:hover .command-pin-button { - opacity: 0.12; -} - -.-theme-with-dark-background #console-prompt:hover .command-pin-button { - opacity: 0.25; -} - -#console-prompt:hover .command-pin-button:hover { - opacity: 0.6; -}
diff --git a/third_party/blink/renderer/devtools/front_end/console/module.json b/third_party/blink/renderer/devtools/front_end/console/module.json index 16fd2bd..e6f93ac 100644 --- a/third_party/blink/renderer/devtools/front_end/console/module.json +++ b/third_party/blink/renderer/devtools/front_end/console/module.json
@@ -199,6 +199,7 @@ "resources": [ "consoleContextSelector.css", "consolePinPane.css", + "consolePrompt.css", "consoleSidebar.css", "consoleView.css" ]
diff --git a/third_party/blink/renderer/devtools/front_end/inspector_main/module.json b/third_party/blink/renderer/devtools/front_end/inspector_main/module.json index 24aa03bb..99baa98 100644 --- a/third_party/blink/renderer/devtools/front_end/inspector_main/module.json +++ b/third_party/blink/renderer/devtools/front_end/inspector_main/module.json
@@ -14,7 +14,7 @@ "bindings": [ { "platform": "windows,linux", - "shortcut": "F5 Ctrl+R" + "shortcut": "Ctrl+R F5" }, { "platform": "mac", @@ -31,7 +31,7 @@ "bindings": [ { "platform": "windows,linux", - "shortcut": "Shift+F5 Ctrl+F5 Ctrl+Shift+F5 Shift+Ctrl+R" + "shortcut": "Shift+Ctrl+R Shift+F5 Ctrl+F5 Ctrl+Shift+F5" }, { "platform": "mac",
diff --git a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css index f30c3340d..6d42b86 100644 --- a/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css +++ b/third_party/blink/renderer/devtools/front_end/text_editor/cmdevtools.css
@@ -245,22 +245,22 @@ opacity: 1; } -div.CodeMirror span.CodeMirror-matchingbracket { +div.CodeMirror:focus-within span.CodeMirror-matchingbracket { background-color: rgba(0, 0, 0, 0.07); border-bottom: 1px solid rgba(0, 0, 0, 0.5); } -div.CodeMirror span.CodeMirror-nonmatchingbracket { +div.CodeMirror:focus-within span.CodeMirror-nonmatchingbracket { background-color: rgba(255, 0, 0, 0.07); border-bottom: 1px solid rgba(255, 0, 0, 0.5); } -.-theme-with-dark-background div.CodeMirror span.CodeMirror-matchingbracket { +.-theme-with-dark-background div.CodeMirror:focus-within span.CodeMirror-matchingbracket { border-bottom: 1px solid rgb(217,217,217); background-color:initial; } -.-theme-with-dark-background div.CodeMirror span.CodeMirror-nonmatchingbracket { +.-theme-with-dark-background div.CodeMirror:focus-within span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid rgb(255, 26, 26); background-color:initial; }
diff --git a/third_party/blink/renderer/modules/mediastream/media_constraints_impl.cc b/third_party/blink/renderer/modules/mediastream/media_constraints_impl.cc index 64d65a3c..068058a8 100644 --- a/third_party/blink/renderer/modules/mediastream/media_constraints_impl.cc +++ b/third_party/blink/renderer/modules/mediastream/media_constraints_impl.cc
@@ -827,7 +827,7 @@ NakedValueDisposition naked_treatment) { LongOrConstrainLongRange output_union; if (UseNakedNumeric(input, naked_treatment)) { - output_union.SetLong(GetNakedValue<long>(input, naked_treatment)); + output_union.SetLong(GetNakedValue<uint32_t>(input, naked_treatment)); } else if (!input.IsEmpty()) { ConstrainLongRange output; if (input.HasExact())
diff --git a/third_party/blink/renderer/platform/cross_thread_copier.h b/third_party/blink/renderer/platform/cross_thread_copier.h index f42cc3b..1bf8a86 100644 --- a/third_party/blink/renderer/platform/cross_thread_copier.h +++ b/third_party/blink/renderer/platform/cross_thread_copier.h
@@ -42,6 +42,7 @@ #include "third_party/blink/renderer/platform/wtf/forward.h" #include "third_party/blink/renderer/platform/wtf/functional.h" // FunctionThreadAffinity #include "third_party/blink/renderer/platform/wtf/type_traits.h" +#include "third_party/blink/renderer/platform/wtf/wtf_size_t.h" namespace base { template <typename, typename> @@ -176,7 +177,7 @@ } }; -template <typename T, size_t inlineCapacity, typename Allocator> +template <typename T, wtf_size_t inlineCapacity, typename Allocator> struct CrossThreadCopier< Vector<std::unique_ptr<T>, inlineCapacity, Allocator>> { STATIC_ONLY(CrossThreadCopier); @@ -186,7 +187,7 @@ } }; -template <size_t inlineCapacity, typename Allocator> +template <wtf_size_t inlineCapacity, typename Allocator> struct CrossThreadCopier<Vector<uint64_t, inlineCapacity, Allocator>> { STATIC_ONLY(CrossThreadCopier); using Type = Vector<uint64_t, inlineCapacity, Allocator>; @@ -299,7 +300,7 @@ } }; -template <size_t inlineCapacity, typename Allocator> +template <wtf_size_t inlineCapacity, typename Allocator> struct CrossThreadCopier< Vector<MessagePortChannel, inlineCapacity, Allocator>> { STATIC_ONLY(CrossThreadCopier);
diff --git a/third_party/blink/renderer/platform/exported/web_media_constraints.cc b/third_party/blink/renderer/platform/exported/web_media_constraints.cc index c379548..bcbcf060 100644 --- a/third_party/blink/renderer/platform/exported/web_media_constraints.cc +++ b/third_party/blink/renderer/platform/exported/web_media_constraints.cc
@@ -172,7 +172,7 @@ has_exact_(false), has_ideal_(false) {} -bool LongConstraint::Matches(long value) const { +bool LongConstraint::Matches(int32_t value) const { if (has_min_ && value < min_) { return false; }
diff --git a/third_party/blink/renderer/platform/heap/persistent.h b/third_party/blink/renderer/platform/heap/persistent.h index 091ca194..a6e11b23 100644 --- a/third_party/blink/renderer/platform/heap/persistent.h +++ b/third_party/blink/renderer/platform/heap/persistent.h
@@ -115,6 +115,9 @@ return *raw_; } explicit operator bool() const { return raw_; } + // TODO(https://crbug.com/653394): Consider returning a thread-safe best + // guess of validity. + bool MaybeValid() const { return true; } operator T*() const { CheckPointer(); return raw_;
diff --git a/third_party/blink/renderer/platform/scheduler/BUILD.gn b/third_party/blink/renderer/platform/scheduler/BUILD.gn index 731d87e..a066b51 100644 --- a/third_party/blink/renderer/platform/scheduler/BUILD.gn +++ b/third_party/blink/renderer/platform/scheduler/BUILD.gn
@@ -9,6 +9,7 @@ blink_platform_sources("scheduler") { sources = [ + "child/features.cc", "child/features.h", "child/pollable_thread_safe_flag.cc", "child/pollable_thread_safe_flag.h", @@ -80,6 +81,8 @@ "main_thread/resource_loading_task_runner_handle_impl.h", "main_thread/task_cost_estimator.cc", "main_thread/task_cost_estimator.h", + "main_thread/task_type_names.cc", + "main_thread/task_type_names.h", "main_thread/use_case.h", "main_thread/user_model.cc", "main_thread/user_model.h",
diff --git a/third_party/blink/renderer/platform/scheduler/child/features.cc b/third_party/blink/renderer/platform/scheduler/child/features.cc new file mode 100644 index 0000000..e16aa5d --- /dev/null +++ b/third_party/blink/renderer/platform/scheduler/child/features.cc
@@ -0,0 +1,19 @@ +// Copyright 2018 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 "third_party/blink/renderer/platform/scheduler/child/features.h" + +namespace blink { +namespace scheduler { + +// Field trial parameters associated with |kThrottleAndFreezeTaskTypes| feature. +// These override the throttleable and freezable QueueTraits bits for the tasks +// specified in the parameters. The parameters are comma separated lists, of the +// the form: "throttleable": "name1,name2", "freezable": "name1,name3". The +// names should be those returned by TaskTypeNames::TaskTypeToString(). +const char kThrottleableTaskTypesListParam[] = "ThrottleableTasks"; +const char kFreezableTaskTypesListParam[] = "FreezableTasks"; + +} // namespace scheduler +} // namespace blink
diff --git a/third_party/blink/renderer/platform/scheduler/child/features.h b/third_party/blink/renderer/platform/scheduler/child/features.h index e8da69a..35ae3b2 100644 --- a/third_party/blink/renderer/platform/scheduler/child/features.h +++ b/third_party/blink/renderer/platform/scheduler/child/features.h
@@ -6,6 +6,7 @@ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_CHILD_FEATURES_H_ #include "base/feature_list.h" +#include "third_party/blink/renderer/platform/platform_export.h" namespace blink { namespace scheduler { @@ -111,6 +112,15 @@ "BlinkSchedulerExperimentOnlyWhenLoading", base::FEATURE_DISABLED_BY_DEFAULT}; +// Enable setting throttleable and freezable task types from field trial +// parameters. +const base::Feature kThrottleAndFreezeTaskTypes{ + "ThrottleAndFreezeTaskTypes", base::FEATURE_DISABLED_BY_DEFAULT}; + +// Parameters for |kThrottleAndFreezeTaskTypes|. +extern const char PLATFORM_EXPORT kThrottleableTaskTypesListParam[]; +extern const char PLATFORM_EXPORT kFreezableTaskTypesListParam[]; + } // namespace scheduler } // namespace blink
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc index f9fa968..01942ed 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.cc
@@ -5,7 +5,10 @@ #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h" #include <memory> +#include <set> +#include <string> +#include "base/metrics/field_trial_params.h" #include "base/metrics/histogram_macros.h" #include "base/trace_event/blame_context.h" #include "third_party/blink/public/platform/blame_context.h" @@ -18,6 +21,7 @@ #include "third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/page_visibility_state.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/resource_loading_task_runner_handle_impl.h" +#include "third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h" #include "third_party/blink/renderer/platform/scheduler/util/tracing_helper.h" #include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h" @@ -73,6 +77,44 @@ task_queue->SetQueuePriority(frame_scheduler->ComputePriority(task_queue)); } +// Extract a substring from |source| from [start to end), trimming leading +// whitespace. +std::string ExtractAndTrimString(std::string source, size_t start, size_t end) { + DCHECK(start < source.length()); + DCHECK(end <= source.length()); + DCHECK(start <= end); + // Trim whitespace + while (start < end && source[start] == ' ') + ++start; + if (start < end) + return source.substr(start, end - start); + return ""; +} + +std::set<std::string> TaskTypesFromFieldTrialParam(const char* param) { + std::set<std::string> result; + std::string task_type_list = base::GetFieldTrialParamValueByFeature( + kThrottleAndFreezeTaskTypes, param); + if (!task_type_list.length()) + return result; + // Extract the individual names, separated by ",". + size_t pos = 0, start = 0; + while ((pos = task_type_list.find(',', start)) != std::string::npos) { + std::string task_type = ExtractAndTrimString(task_type_list, start, pos); + // Not valid to start with "," or have ",," in the list. + DCHECK(task_type.length()); + result.insert(task_type); + start = pos + 1; + } + // Handle the last or only task type name. + std::string task_type = + ExtractAndTrimString(task_type_list, start, task_type_list.length()); + DCHECK(task_type.length()); + result.insert(task_type); + + return result; +} + } // namespace FrameSchedulerImpl::ActiveConnectionHandleImpl::ActiveConnectionHandleImpl( @@ -305,18 +347,37 @@ return frame_type_; } -// static void FrameSchedulerImpl::InitializeTaskTypeQueueTraitsMap( FrameTaskTypeToQueueTraitsArray& frame_task_types_to_queue_traits) { DCHECK_EQ(frame_task_types_to_queue_traits.size(), static_cast<size_t>(TaskType::kCount)); + // Using std set and strings here because field trial parameters are std + // strings, and we cannot use WTF strings as Blink is not yet initialized. + std::set<std::string> throttleable_task_type_names; + std::set<std::string> freezable_task_type_names; + if (base::FeatureList::IsEnabled(kThrottleAndFreezeTaskTypes)) { + throttleable_task_type_names = + TaskTypesFromFieldTrialParam(kThrottleableTaskTypesListParam); + freezable_task_type_names = + TaskTypesFromFieldTrialParam(kFreezableTaskTypesListParam); + } for (size_t i = 0; i < static_cast<size_t>(TaskType::kCount); i++) { + TaskType type = static_cast<TaskType>(i); base::Optional<QueueTraits> queue_traits = - CreateQueueTraitsForTaskType(static_cast<TaskType>(i)); - // TODO(shaseley): Override throttleable and freezable queue traits from - // finch. + CreateQueueTraitsForTaskType(type); + if (queue_traits && (throttleable_task_type_names.size() || + freezable_task_type_names.size())) { + const char* task_type_name = TaskTypeNames::TaskTypeToString(type); + if (throttleable_task_type_names.erase(task_type_name)) + queue_traits->SetCanBeThrottled(true); + if (freezable_task_type_names.erase(task_type_name)) + queue_traits->SetCanBeFrozen(true); + } frame_task_types_to_queue_traits[i] = queue_traits; } + // Protect against configuration errors. + DCHECK(throttleable_task_type_names.empty()); + DCHECK(freezable_task_type_names.empty()); } // static
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc index 968a594..9d15028 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl_unittest.cc
@@ -8,6 +8,7 @@ #include "base/callback.h" #include "base/location.h" +#include "base/metrics/field_trial_param_associator.h" #include "base/metrics/field_trial_params.h" #include "base/run_loop.h" #include "base/task/sequence_manager/test/sequence_manager_for_test.h" @@ -114,7 +115,7 @@ return NonLoadingTaskQueue(FrameSchedulerImpl::UnpausableTaskQueueTraits()); } - scoped_refptr<TaskQueue> GetTaskQueue(TaskType type) { + scoped_refptr<MainThreadTaskQueue> GetTaskQueue(TaskType type) { return frame_scheduler_->GetTaskQueue(type); } @@ -140,6 +141,8 @@ frame_scheduler_->DidChangeResourceLoadingPriority(task_queue, priority); } + base::test::ScopedFeatureList& scoped_feature_list() { return feature_list_; } + std::unique_ptr<base::FieldTrialList> field_trial_list_; base::test::ScopedFeatureList feature_list_; base::test::ScopedTaskEnvironment task_environment_; @@ -1519,6 +1522,204 @@ LoadingControlTaskQueue()); } +class ThrottleAndFreezeTaskTypesExperimentTest : public FrameSchedulerImplTest { + public: + ThrottleAndFreezeTaskTypesExperimentTest( + std::map<std::string, std::string> params, + const char* group_name) + : stop_non_timers_enabler_(false) { + const char kStudyName[] = "ThrottleAndFreezeTaskTypes"; + + field_trial_list_ = std::make_unique<base::FieldTrialList>(nullptr); + + scoped_refptr<base::FieldTrial> trial = + base::FieldTrialList::CreateFieldTrial(kStudyName, group_name); + + base::FieldTrialParamAssociator::GetInstance()->AssociateFieldTrialParams( + kStudyName, group_name, params); + + std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); + feature_list->RegisterFieldTrialOverride( + kThrottleAndFreezeTaskTypes.name, + base::FeatureList::OVERRIDE_ENABLE_FEATURE, trial.get()); + scoped_feature_list().InitWithFeatureList(std::move(feature_list)); + } + + private: + ScopedStopNonTimersInBackgroundForTest stop_non_timers_enabler_; +}; + +class ThrottleableAndFreezableTaskTypesTest + : public ThrottleAndFreezeTaskTypesExperimentTest { + public: + ThrottleableAndFreezableTaskTypesTest() + : ThrottleAndFreezeTaskTypesExperimentTest( + std::map<std::string, std::string>{ + // Leading spaces are allowed. + {kThrottleableTaskTypesListParam, + "PostedMessage, DatabaseAccess"}, + {kFreezableTaskTypesListParam, + "PostedMessage, MediaElementEvent,DOMManipulation"}}, + "Group1") {} +}; + +TEST_F(ThrottleableAndFreezableTaskTypesTest, QueueTraitsFromFieldTrialParams) { + // These tests will start to fail if the default task queues or queue traits + // change for these task types. + + // Check that the overrides work. + auto task_queue = GetTaskQueue(TaskType::kPostedMessage); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits() + .SetCanBeThrottled(true) + .SetCanBeFrozen(true) + .SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kMediaElementEvent); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeFrozen(true).SetCanBePaused( + true)); + + task_queue = GetTaskQueue(TaskType::kDatabaseAccess); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits() + .SetCanBeThrottled(true) + .SetCanBeDeferred(true) + .SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kDOMManipulation); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits() + .SetCanBeFrozen(true) + .SetCanBeDeferred(true) + .SetCanBePaused(true)); + + // Test some task types that were not configured through field trial + // parameters. + task_queue = GetTaskQueue(TaskType::kInternalIPC); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits()); + + task_queue = GetTaskQueue(TaskType::kInternalIndexedDB); + EXPECT_EQ(task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kMiscPlatformAPI); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeDeferred(true).SetCanBePaused( + true)); +} + +class FreezableOnlyTaskTypesTest + : public ThrottleAndFreezeTaskTypesExperimentTest { + public: + FreezableOnlyTaskTypesTest() + : ThrottleAndFreezeTaskTypesExperimentTest( + std::map<std::string, std::string>{ + {kThrottleableTaskTypesListParam, ""}, + {kFreezableTaskTypesListParam, + "PostedMessage,MediaElementEvent,DOMManipulation"}}, + "Group2") {} +}; + +TEST_F(FreezableOnlyTaskTypesTest, QueueTraitsFromFieldTrialParams) { + // These tests will start to fail if the default task queues or queue traits + // change for these task types. + + // Check that the overrides work. + auto task_queue = GetTaskQueue(TaskType::kPostedMessage); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeFrozen(true).SetCanBePaused( + true)); + + task_queue = GetTaskQueue(TaskType::kMediaElementEvent); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeFrozen(true).SetCanBePaused( + true)); + + task_queue = GetTaskQueue(TaskType::kDatabaseAccess); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeDeferred(true).SetCanBePaused( + true)); + + task_queue = GetTaskQueue(TaskType::kDOMManipulation); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits() + .SetCanBeFrozen(true) + .SetCanBeDeferred(true) + .SetCanBePaused(true)); + + // Test some task types that were not configured through field trial + // parameters. + task_queue = GetTaskQueue(TaskType::kInternalIPC); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits()); + + task_queue = GetTaskQueue(TaskType::kInternalIndexedDB); + EXPECT_EQ(task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kMiscPlatformAPI); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeDeferred(true).SetCanBePaused( + true)); +} + +class ThrottleableOnlyTaskTypesTest + : public ThrottleAndFreezeTaskTypesExperimentTest { + public: + ThrottleableOnlyTaskTypesTest() + : ThrottleAndFreezeTaskTypesExperimentTest( + std::map<std::string, std::string>{ + {kFreezableTaskTypesListParam, ""}, + {kThrottleableTaskTypesListParam, + "PostedMessage,DatabaseAccess"}}, + "Group3") {} +}; + +TEST_F(ThrottleableOnlyTaskTypesTest, QueueTraitsFromFieldTrialParams) { + // These tests will start to fail if the default task queues or queue traits + // change for these task types. + + // Check that the overrides work. + auto task_queue = GetTaskQueue(TaskType::kPostedMessage); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeThrottled(true).SetCanBePaused( + true)); + + task_queue = GetTaskQueue(TaskType::kMediaElementEvent); + EXPECT_EQ(task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kDatabaseAccess); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits() + .SetCanBeThrottled(true) + .SetCanBeDeferred(true) + .SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kDOMManipulation); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeDeferred(true).SetCanBePaused( + true)); + + // Test some task types that were not configured through field trial + // parameters. + task_queue = GetTaskQueue(TaskType::kInternalIPC); + EXPECT_EQ(task_queue->GetQueueTraits(), MainThreadTaskQueue::QueueTraits()); + + task_queue = GetTaskQueue(TaskType::kInternalIndexedDB); + EXPECT_EQ(task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBePaused(true)); + + task_queue = GetTaskQueue(TaskType::kMiscPlatformAPI); + EXPECT_EQ( + task_queue->GetQueueTraits(), + MainThreadTaskQueue::QueueTraits().SetCanBeDeferred(true).SetCanBePaused( + true)); +} + } // namespace frame_scheduler_impl_unittest } // namespace scheduler } // namespace blink
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc index 082b515..bc9926f 100644 --- a/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc +++ b/third_party/blink/renderer/platform/scheduler/main_thread/main_thread_scheduler_impl.cc
@@ -36,6 +36,7 @@ #include "third_party/blink/renderer/platform/scheduler/main_thread/auto_advancing_virtual_time_domain.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/frame_scheduler_impl.h" #include "third_party/blink/renderer/platform/scheduler/main_thread/page_scheduler_impl.h" +#include "third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h" #include "third_party/blink/renderer/platform/scheduler/renderer/webthread_impl_for_renderer_scheduler.h" #include "third_party/blink/renderer/platform/wtf/text/movable_string.h" @@ -121,119 +122,12 @@ return ""; // MSVC needs that. } -const char* TaskTypeToString(TaskType task_type) { - switch (task_type) { - case TaskType::kDeprecatedNone: - return "None"; - case TaskType::kDOMManipulation: - return "DOMManipultion"; - case TaskType::kUserInteraction: - return "UserInteraction"; - case TaskType::kNetworking: - return "Networking"; - case TaskType::kNetworkingWithURLLoaderAnnotation: - return "NetworkingWithURLLoaderAnnotation"; - case TaskType::kNetworkingControl: - return "NetworkingControl"; - case TaskType::kHistoryTraversal: - return "HistoryTraversal"; - case TaskType::kEmbed: - return "Embed"; - case TaskType::kMediaElementEvent: - return "MediaElementEvent"; - case TaskType::kCanvasBlobSerialization: - return "CanvasBlobSerialization"; - case TaskType::kMicrotask: - return "Microtask"; - case TaskType::kJavascriptTimer: - return "JavascriptTimer"; - case TaskType::kRemoteEvent: - return "RemoteEvent"; - case TaskType::kWebSocket: - return "WebSocket"; - case TaskType::kPostedMessage: - return "PostedMessage"; - case TaskType::kUnshippedPortMessage: - return "UnshipedPortMessage"; - case TaskType::kFileReading: - return "FileReading"; - case TaskType::kDatabaseAccess: - return "DatabaseAccess"; - case TaskType::kPresentation: - return "Presentation"; - case TaskType::kSensor: - return "Sensor"; - case TaskType::kPerformanceTimeline: - return "PerformanceTimeline"; - case TaskType::kWebGL: - return "WebGL"; - case TaskType::kIdleTask: - return "IdleTask"; - case TaskType::kMiscPlatformAPI: - return "MiscPlatformAPI"; - case TaskType::kInternalDefault: - return "InternalDefault"; - case TaskType::kInternalLoading: - return "InternalLoading"; - case TaskType::kInternalTest: - return "InternalTest"; - case TaskType::kInternalWebCrypto: - return "InternalWebCrypto"; - case TaskType::kInternalIndexedDB: - return "InternalIndexedDB"; - case TaskType::kInternalMedia: - return "InternalMedia"; - case TaskType::kInternalMediaRealTime: - return "InternalMediaRealTime"; - case TaskType::kInternalIPC: - return "InternalIPC"; - case TaskType::kInternalUserInteraction: - return "InternalUserInteraction"; - case TaskType::kInternalInspector: - return "InternalInspector"; - case TaskType::kInternalWorker: - return "InternalWorker"; - case TaskType::kMainThreadTaskQueueV8: - return "MainThreadTaskQueueV8"; - case TaskType::kMainThreadTaskQueueCompositor: - return "MainThreadTaskQueueCompositor"; - case TaskType::kMainThreadTaskQueueDefault: - return "MainThreadTaskQueueDefault"; - case TaskType::kMainThreadTaskQueueInput: - return "MainThreadTaskQueueInput"; - case TaskType::kMainThreadTaskQueueIdle: - return "MainThreadTaskQueueIdle"; - case TaskType::kMainThreadTaskQueueIPC: - return "MainThreadTaskQueueIPC"; - case TaskType::kMainThreadTaskQueueControl: - return "MainThreadTaskQueueControl"; - case TaskType::kInternalIntersectionObserver: - return "InternalIntersectionObserver"; - case TaskType::kCompositorThreadTaskQueueDefault: - return "CompositorThreadTaskQueueDefault"; - case TaskType::kCompositorThreadTaskQueueInput: - return "CompositorThreadTaskQueueInput"; - case TaskType::kWorkerThreadTaskQueueDefault: - return "WorkerThreadTaskQueueDefault"; - case TaskType::kWorkerThreadTaskQueueV8: - return "WorkerThreadTaskQueueV8"; - case TaskType::kWorkerThreadTaskQueueCompositor: - return "WorkerThreadTaskQueueCompositor"; - case TaskType::kWorkerAnimation: - return "WorkerAnimation"; - case TaskType::kCount: - return "Count"; - } - NOTREACHED(); - return ""; -} - const char* OptionalTaskDescriptionToString( base::Optional<MainThreadSchedulerImpl::TaskDescriptionForTracing> desc) { if (!desc) return nullptr; if (desc->task_type != TaskType::kDeprecatedNone) - return TaskTypeToString(desc->task_type); + return TaskTypeNames::TaskTypeToString(desc->task_type); if (!desc->queue_type) return "detached_tq"; return MainThreadTaskQueue::NameForQueueType(desc->queue_type.value());
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.cc b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.cc new file mode 100644 index 0000000..862ef64f --- /dev/null +++ b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.cc
@@ -0,0 +1,123 @@ +// Copyright 2018 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 "third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h" + +#include "base/logging.h" + +namespace blink { +namespace scheduler { + +// static +const char* TaskTypeNames::TaskTypeToString(TaskType task_type) { + // These names are used in finch trials and should not be changed. + switch (task_type) { + case TaskType::kDeprecatedNone: + return "None"; + case TaskType::kDOMManipulation: + return "DOMManipulation"; + case TaskType::kUserInteraction: + return "UserInteraction"; + case TaskType::kNetworking: + return "Networking"; + case TaskType::kNetworkingWithURLLoaderAnnotation: + return "NetworkingWithURLLoaderAnnotation"; + case TaskType::kNetworkingControl: + return "NetworkingControl"; + case TaskType::kHistoryTraversal: + return "HistoryTraversal"; + case TaskType::kEmbed: + return "Embed"; + case TaskType::kMediaElementEvent: + return "MediaElementEvent"; + case TaskType::kCanvasBlobSerialization: + return "CanvasBlobSerialization"; + case TaskType::kMicrotask: + return "Microtask"; + case TaskType::kJavascriptTimer: + return "JavascriptTimer"; + case TaskType::kRemoteEvent: + return "RemoteEvent"; + case TaskType::kWebSocket: + return "WebSocket"; + case TaskType::kPostedMessage: + return "PostedMessage"; + case TaskType::kUnshippedPortMessage: + return "UnshippedPortMessage"; + case TaskType::kFileReading: + return "FileReading"; + case TaskType::kDatabaseAccess: + return "DatabaseAccess"; + case TaskType::kPresentation: + return "Presentation"; + case TaskType::kSensor: + return "Sensor"; + case TaskType::kPerformanceTimeline: + return "PerformanceTimeline"; + case TaskType::kWebGL: + return "WebGL"; + case TaskType::kIdleTask: + return "IdleTask"; + case TaskType::kMiscPlatformAPI: + return "MiscPlatformAPI"; + case TaskType::kInternalDefault: + return "InternalDefault"; + case TaskType::kInternalLoading: + return "InternalLoading"; + case TaskType::kInternalTest: + return "InternalTest"; + case TaskType::kInternalWebCrypto: + return "InternalWebCrypto"; + case TaskType::kInternalIndexedDB: + return "InternalIndexedDB"; + case TaskType::kInternalMedia: + return "InternalMedia"; + case TaskType::kInternalMediaRealTime: + return "InternalMediaRealTime"; + case TaskType::kInternalIPC: + return "InternalIPC"; + case TaskType::kInternalUserInteraction: + return "InternalUserInteraction"; + case TaskType::kInternalInspector: + return "InternalInspector"; + case TaskType::kInternalWorker: + return "InternalWorker"; + case TaskType::kMainThreadTaskQueueV8: + return "MainThreadTaskQueueV8"; + case TaskType::kMainThreadTaskQueueCompositor: + return "MainThreadTaskQueueCompositor"; + case TaskType::kMainThreadTaskQueueDefault: + return "MainThreadTaskQueueDefault"; + case TaskType::kMainThreadTaskQueueInput: + return "MainThreadTaskQueueInput"; + case TaskType::kMainThreadTaskQueueIdle: + return "MainThreadTaskQueueIdle"; + case TaskType::kMainThreadTaskQueueIPC: + return "MainThreadTaskQueueIPC"; + case TaskType::kMainThreadTaskQueueControl: + return "MainThreadTaskQueueControl"; + case TaskType::kInternalIntersectionObserver: + return "InternalIntersectionObserver"; + case TaskType::kCompositorThreadTaskQueueDefault: + return "CompositorThreadTaskQueueDefault"; + case TaskType::kCompositorThreadTaskQueueInput: + return "CompositorThreadTaskQueueInput"; + case TaskType::kWorkerThreadTaskQueueDefault: + return "WorkerThreadTaskQueueDefault"; + case TaskType::kWorkerThreadTaskQueueV8: + return "WorkerThreadTaskQueueV8"; + case TaskType::kWorkerThreadTaskQueueCompositor: + return "WorkerThreadTaskQueueCompositor"; + case TaskType::kWorkerAnimation: + return "WorkerAnimation"; + case TaskType::kCount: + return "Count"; + } + // FrameSchedulerImpl should not call this for invalid TaskTypes. + NOTREACHED(); + return ""; +} + +} // namespace scheduler +} // namespace blink
diff --git a/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h new file mode 100644 index 0000000..81270ec --- /dev/null +++ b/third_party/blink/renderer/platform/scheduler/main_thread/task_type_names.h
@@ -0,0 +1,27 @@ +// Copyright 2018 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. + +#ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_TASK_TYPE_NAMES_H_ +#define THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_TASK_TYPE_NAMES_H_ + +#include "third_party/blink/public/platform/task_type.h" +#include "third_party/blink/renderer/platform/wtf/hash_map.h" +#include "third_party/blink/renderer/platform/wtf/text/string_hash.h" +#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" + +namespace blink { +namespace scheduler { + +class TaskTypeNames { + public: + static const char* TaskTypeToString(TaskType task_type); + + private: + TaskTypeNames(); +}; + +} // namespace scheduler +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_PLATFORM_SCHEDULER_MAIN_THREAD_TASK_TYPE_NAMES_H_
diff --git a/third_party/blink/renderer/platform/testing/empty_web_media_player.h b/third_party/blink/renderer/platform/testing/empty_web_media_player.h index ef7511a..460b43b 100644 --- a/third_party/blink/renderer/platform/testing/empty_web_media_player.h +++ b/third_party/blink/renderer/platform/testing/empty_web_media_player.h
@@ -56,8 +56,8 @@ }; unsigned DecodedFrameCount() const override { return 0; } unsigned DroppedFrameCount() const override { return 0; } - size_t AudioDecodedByteCount() const override { return 0; } - size_t VideoDecodedByteCount() const override { return 0; } + uint64_t AudioDecodedByteCount() const override { return 0; } + uint64_t VideoDecodedByteCount() const override { return 0; } void Paint(cc::PaintCanvas*, const WebRect&, cc::PaintFlags&,
diff --git a/third_party/blink/renderer/platform/web_task_runner.cc b/third_party/blink/renderer/platform/web_task_runner.cc index 818c887..261a0bc 100644 --- a/third_party/blink/renderer/platform/web_task_runner.cc +++ b/third_party/blink/renderer/platform/web_task_runner.cc
@@ -80,6 +80,14 @@ const blink::TaskHandle& handle) { return !handle.IsActive(); } + + static bool MaybeValid(RunnerMethodType, + const base::WeakPtr<blink::TaskHandle::Runner>&, + const blink::TaskHandle& handle) { + // TODO(https://crbug.com/653394): Consider returning a thread-safe best + // guess of validity. + return true; + } }; } // namespace base
diff --git a/third_party/blink/renderer/platform/wtf/functional.h b/third_party/blink/renderer/platform/wtf/functional.h index 83dc414..8fa025863 100644 --- a/third_party/blink/renderer/platform/wtf/functional.h +++ b/third_party/blink/renderer/platform/wtf/functional.h
@@ -247,6 +247,8 @@ bool IsCancelled() const { return callback_.IsCancelled(); } + bool MaybeValid() const { return callback_.MaybeValid(); } + private: static R RunInternal(base::RepeatingCallback<R(Args...)>* callback, Args&&... args) { @@ -285,6 +287,13 @@ const RunArgs&...) { return receiver->IsCancelled(); } + + template <typename Functor, typename Receiver, typename... RunArgs> + static bool MaybeValid(const Functor&, + const Receiver& receiver, + const RunArgs&...) { + return receiver->MaybeValid(); + } }; } // namespace base
diff --git a/third_party/libcxx-pretty-printers/LICENSE b/third_party/libcxx-pretty-printers/LICENSE new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/third_party/libcxx-pretty-printers/LICENSE
@@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/third_party/libcxx-pretty-printers/OWNERS b/third_party/libcxx-pretty-printers/OWNERS new file mode 100644 index 0000000..69436af --- /dev/null +++ b/third_party/libcxx-pretty-printers/OWNERS
@@ -0,0 +1,3 @@ +dpranke@chromium.org +leszeks@chromium.org +thomasanderson@chromium.org
diff --git a/third_party/libcxx-pretty-printers/README.chromium b/third_party/libcxx-pretty-printers/README.chromium new file mode 100644 index 0000000..f63918a --- /dev/null +++ b/third_party/libcxx-pretty-printers/README.chromium
@@ -0,0 +1,18 @@ +Name: libcxx-pretty-printers +URL: https://github.com/LeszekSwirski/libcxx-pretty-printers +Version: dc4eb17426ce62262992d7c52aa1140f9b707c37 +License: GPL v3 +License File: LICENSE +Security Critical: no + +Description: +GDB Pretty Printers for libc++ of Clang/LLVM + +Local patches: +None + +Upgrading: +$ git clone https://github.com/LeszekSwirski/libcxx-pretty-printers.git +$ rm -rf .git .gitignore +* Add README.chromium +* Add OWNERS
diff --git a/third_party/libcxx-pretty-printers/README.md b/third_party/libcxx-pretty-printers/README.md new file mode 100644 index 0000000..5433b0e --- /dev/null +++ b/third_party/libcxx-pretty-printers/README.md
@@ -0,0 +1,4 @@ +libcxx-pretty-printers +====================== + +GDB Pretty Printers for libc++ of Clang/LLVM
diff --git a/third_party/libcxx-pretty-printers/src/gdbinit b/third_party/libcxx-pretty-printers/src/gdbinit new file mode 100644 index 0000000..c45e420 --- /dev/null +++ b/third_party/libcxx-pretty-printers/src/gdbinit
@@ -0,0 +1,6 @@ +python +import sys +sys.path.insert(0, '<path_to_libcxx-pp_src_dir>') +from libcxx.v1.printers import register_libcxx_printers +register_libcxx_printers (None) +end
diff --git a/third_party/libcxx-pretty-printers/src/libcxx/__init__.py b/third_party/libcxx-pretty-printers/src/libcxx/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/libcxx-pretty-printers/src/libcxx/__init__.py
@@ -0,0 +1 @@ +
diff --git a/third_party/libcxx-pretty-printers/src/libcxx/v1/__init__.py b/third_party/libcxx-pretty-printers/src/libcxx/v1/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/third_party/libcxx-pretty-printers/src/libcxx/v1/__init__.py
@@ -0,0 +1 @@ +
diff --git a/third_party/libcxx-pretty-printers/src/libcxx/v1/printers.py b/third_party/libcxx-pretty-printers/src/libcxx/v1/printers.py new file mode 100644 index 0000000..3c43aaa5 --- /dev/null +++ b/third_party/libcxx-pretty-printers/src/libcxx/v1/printers.py
@@ -0,0 +1,1116 @@ +# Pretty-printers for libc++. + +# Copyright (C) 2008-2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import re +import gdb +import sys + +if sys.version_info[0] > 2: + # Python 3 stuff + Iterator = object + # Python 3 folds these into the normal functions. + imap = map + izip = zip + # Also, int subsumes long + long = int +else: + # Python 2 stuff + class Iterator: + """Compatibility mixin for iterators + + Instead of writing next() methods for iterators, write + __next__() methods and use this mixin to make them work in + Python 2 as well as Python 3. + + Idea stolen from the "six" documentation: + <http://pythonhosted.org/six/#six.Iterator> + """ + + def next(self): + return self.__next__() + + # In Python 2, we still need these from itertools + from itertools import imap, izip + +# Try to use the new-style pretty-printing if available. +_use_gdb_pp = True +try: + import gdb.printing +except ImportError: + _use_gdb_pp = False + +# Try to install type-printers. +_use_type_printing = False +try: + import gdb.types + if hasattr(gdb.types, 'TypePrinter'): + _use_type_printing = True +except ImportError: + pass + + +# Starting with the type ORIG, search for the member type NAME. This +# handles searching upward through superclasses. This is needed to +# work around http://sourceware.org/bugzilla/show_bug.cgi?id=13615. +def find_type(orig, name): + typ = orig.strip_typedefs() + while True: + search = str(typ) + '::' + name + try: + return gdb.lookup_type(search) + except RuntimeError: + pass + # The type was not found, so try the superclass. We only need + # to check the first superclass, so we don't bother with + # anything fancier here. + field = typ.fields()[0] + if not field.is_base_class: + raise ValueError("Cannot find type %s::%s" % (orig, name)) + typ = field.type + + +def pair_to_tuple(val): + if val.type.name.startswith("std::__1::__compressed_pair"): + t1 = val.type.template_argument(0) + t2 = val.type.template_argument(1) + + base1 = val.type.fields()[0].type + base2 = val.type.fields()[1].type + + return ( + (val if base1.template_argument(2) + else val.cast(base1)["__value_"]).cast(t1), + (val if base2.template_argument(2) + else val.cast(base2)["__value_"]).cast(t2) + ) + + else: + return (val['first'], val['second']) + +void_type = gdb.lookup_type('void') + +def ptr_to_void_ptr(val): + if gdb.types.get_basic_type(val.type).code == gdb.TYPE_CODE_PTR: + return val.cast(void_type.pointer()) + else: + return val + + + +class StdStringPrinter: + "Print a std::basic_string of some kind" + + def __init__(self, typename, val): + self.val = val + self.typename = typename + + def to_string(self): + # Make sure &string works, too. + type = self.val.type + if type.code == gdb.TYPE_CODE_REF: + type = type.target() + + ss = pair_to_tuple(self.val['__r_'])[0]['__s'] + __short_mask = 0x1 + if (ss['__size_'] & __short_mask) == 0: + len = (ss['__size_'] >> 1) + ptr = ss['__data_'] + else: + sl = pair_to_tuple(self.val['__r_'])[0]['__l'] + len = sl['__size_'] + ptr = sl['__data_'] + + return ptr.string(length=len) + + def display_hint(self): + return 'string' + + +class SharedPointerPrinter: + "Print a shared_ptr or weak_ptr" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + + def to_string(self): + state = 'empty' + refcounts = self.val['__cntrl_'] + if refcounts != 0: + usecount = refcounts['__shared_owners_'] + 1 + weakcount = refcounts['__shared_weak_owners_'] + if usecount == 0: + state = 'expired, weak %d' % weakcount + else: + state = 'count %d, weak %d' % (usecount, weakcount) + + return '%s (%s) = %s => %s' % (self.typename, state, self.val['__ptr_'], self.val['__ptr_'].dereference()) + + +class UniquePointerPrinter: + "Print a unique_ptr" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + + def to_string(self): + v = pair_to_tuple(self.val['__ptr_'])[0] + if v == 0: + return '%s<%s> = %s <nullptr>' % (str(self.typename), str(v.type.target()), str(v)) + return '%s<%s> = %s => %s' % (str(self.typename), str(v.type.target()), str(v), v.dereference()) + + +class StdPairPrinter: + "Print a std::pair" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + + def children(self): + vals = pair_to_tuple(self.val) + return [('first', vals[0]), + ('second', vals[1])] + + def to_string(self): + return 'pair' + +# def display_hint(self): +# return 'array' + + +class StdTuplePrinter: + "Print a std::tuple" + + class _iterator(Iterator): + + def __init__(self, head): + self.head = head['base_'] + self.fields = self.head.type.fields() + self.count = 0 + + def __iter__(self): + return self + + def __next__(self): + if self.count >= len(self.fields): + raise StopIteration + field = self.head.cast(self.fields[self.count].type)['value'] + self.count += 1 + return ('[%d]' % (self.count - 1), field) + + def __init__(self, typename, val): + self.typename = typename + self.val = val + + def children(self): + return self._iterator(self.val) + + def to_string(self): + if len(self.val.type.fields()) == 0: + return 'empty %s' % (self.typename) + return 'tuple' + +# def display_hint(self): +# return 'array' + + +class StdListPrinter: + "Print a std::list" + + class _iterator(Iterator): + + def __init__(self, nodetype, head): + self.nodetype = nodetype + self.base = head['__next_'] + self.head = head.address + self.count = 0 + + def __iter__(self): + return self + + def __next__(self): + if self.base == self.head: + raise StopIteration + elt = self.base.cast(self.nodetype).dereference() + self.base = elt['__next_'] + count = self.count + self.count = self.count + 1 + return ('[%d]' % count, elt['__value_']) + + def __init__(self, typename, val): + self.typename = typename + self.val = val + + def children(self): + nodebase = find_type(self.val.type, '__node_base') + nodetype = find_type(nodebase, '__node_pointer') + nodetype = nodetype.strip_typedefs() + return self._iterator(nodetype, self.val['__end_']) + + def to_string(self): + if self.val['__end_']['__next_'] == self.val['__end_'].address: + return 'empty %s' % (self.typename) + return '%s' % (self.typename) + +# def display_hint(self): +# return 'array' + + +class StdListIteratorPrinter: + "Print std::list::iterator" + + def __init__(self, typename, val): + self.val = val + self.typename = typename + + def to_string(self): + return self.val['__ptr_']['__value_'] + + +class StdForwardListPrinter: + "Print a std::forward_list" + + class _iterator(Iterator): + + def __init__(self, head): + self.node = head + self.count = 0 + + def __iter__(self): + return self + + def __next__(self): + if self.node == 0: + raise StopIteration + + result = ('[%d]' % self.count, self.node['__value_']) + self.count += 1 + self.node = self.node['__next_'] + return result + + def __init__(self, typename, val): + self.val = val + self.typename = typename + self.head = pair_to_tuple(val['__before_begin_'])[0]['__next_'] + + def children(self): + return self._iterator(self.head) + + def to_string(self): + if self.head == 0: + return 'empty %s' % (self.typename) + return '%s' % (self.typename) + + +class StdVectorPrinter: + "Print a std::vector" + + class _iterator(Iterator): + + def __init__(self, start, finish_or_size, bits_per_word, bitvec): + self.bitvec = bitvec + if bitvec: + self.item = start + self.so = 0 + self.size = finish_or_size + self.bits_per_word = bits_per_word + else: + self.item = start + self.finish = finish_or_size + self.count = 0 + + def __iter__(self): + return self + + def __next__(self): + count = self.count + self.count = self.count + 1 + if self.bitvec: + if count == self.size: + raise StopIteration + elt = self.item.dereference() + if elt & (1 << self.so): + obit = 1 + else: + obit = 0 + self.so = self.so + 1 + if self.so >= self.bits_per_word: + self.item = self.item + 1 + self.so = 0 + return ('[%d]' % count, obit) + else: + if self.item == self.finish: + raise StopIteration + elt = self.item.dereference() + self.item = self.item + 1 + return ('[%d]' % count, elt) + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.is_bool = 0 + for f in val.type.fields(): + if f.name == '__bits_per_word': + self.is_bool = 1 + + def children(self): + if self.is_bool: + return self._iterator(self.val['__begin_'], + self.val['__size_'], + self.val['__bits_per_word'], + self.is_bool) + else: + return self._iterator(self.val['__begin_'], + self.val['__end_'], + 0, + self.is_bool) + + def to_string(self): + if self.is_bool: + length = self.val['__size_'] + capacity = pair_to_tuple(self.val['__cap_alloc_'])[0] * self.val['__bits_per_word'] + if length == 0: + return 'empty %s<bool> (capacity=%d)' % (self.typename, int(capacity)) + else: + return '%s<bool> (length=%d, capacity=%d)' % (self.typename, int(length), int(capacity)) + else: + start = ptr_to_void_ptr(self.val['__begin_']) + finish = ptr_to_void_ptr(self.val['__end_']) + end = ptr_to_void_ptr(pair_to_tuple(self.val['__end_cap_'])[0]) + length = finish - start + capacity = end - start + if length == 0: + return 'empty %s (capacity=%d)' % (self.typename, int(capacity)) + else: + return '%s (length=%d, capacity=%d)' % (self.typename, int(length), int(capacity)) + + def display_hint(self): + return 'array' + + +class StdVectorIteratorPrinter: + "Print std::vector::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + return self.val['__i'].dereference() + + +class StdVectorBoolIteratorPrinter: + "Print std::vector<bool>::iterator" + + def __init__(self, typename, val): + self.segment = val['__seg_'].dereference() + self.ctz = val['__ctz_'] + + def to_string(self): + if self.segment & (1 << self.ctz): + return 1 + else: + return 0 + + +class StdDequePrinter: + "Print a std::deque" + + class _iterator(Iterator): + + def __init__(self, size, block_size, start, map_begin, map_end): + self.block_size = block_size + self.count = 0 + self.end_p = size + start + self.end_mp = map_begin + self.end_p / block_size + self.p = 0 + self.mp = map_begin + start / block_size + if map_begin == map_end: + self.p = 0 + self.end_p = 0 + else: + self.p = self.mp.dereference() + start % block_size + self.end_p = self.end_mp.dereference() + self.end_p % block_size + + def __iter__(self): + return self + + def __next__(self): + old_p = self.p + + self.count += 1 + self.p += 1 + if (self.p - self.mp.dereference()) == self.block_size: + self.mp += 1 + self.p = self.mp.dereference() + + if (self.mp > self.end_mp) or ((self.p > self.end_p) and (self.mp == self.end_mp)): + raise StopIteration + + return ('[%d]' % int(self.count - 1), old_p.dereference()) + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.size = pair_to_tuple(val['__size_'])[0] + + def to_string(self): + if self.size == 0: + return 'empty %s' % self.typename + else: + return '%s (size=%d)' % (self.typename, long(self.size)) + + def children(self): + if self.size == 0: + return [] + block_map = self.val['__map_'] + size_of_value_type = self.val.type.template_argument(0).sizeof + block_size = self.val['__block_size'] + if block_size.is_optimized_out: + # Warning, this is pretty flaky + block_size = 4096 / size_of_value_type if size_of_value_type < 256 else 16 + return self._iterator(self.size, block_size, + self.val['__start_'], block_map['__begin_'], + block_map['__end_']) + +# def display_hint (self): +# return 'array' + + +class StdDequeIteratorPrinter: + "Print std::deque::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + return self.val['__ptr_'].dereference() + + +class StdStackOrQueuePrinter: + "Print a std::stack or std::queue" + + def __init__(self, typename, val): + self.typename = typename + self.visualizer = gdb.default_visualizer(val['c']) + + def children(self): + return self.visualizer.children() + + def to_string(self): + return '%s = %s' % (self.typename, self.visualizer.to_string()) + + def display_hint(self): + if hasattr(self.visualizer, 'display_hint'): + return self.visualizer.display_hint() + return None + + +class StdBitsetPrinter: + "Print a std::bitset" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.bit_count = val.type.template_argument(0) + + def to_string(self): + return '%s (length=%d)' % (self.typename, self.bit_count) + + def children(self): + words = self.val['__first_'] + words_count = self.val['__n_words'] + bits_per_word = self.val['__bits_per_word'] + word_index = 0 + result = [] + + while word_index < words_count: + bit_index = 0 + word = words[word_index] + while word != 0: + if (word & 0x1) != 0: + result.append( + ('[%d]' % (word_index * bits_per_word + bit_index), 1)) + word >>= 1 + bit_index += 1 + word_index += 1 + + return result + + +class StdSetPrinter: + "Print a std::set or std::multiset" + + # Turn an RbtreeIterator into a pretty-print iterator. + class _iterator(Iterator): + + def __init__(self, rbiter): + self.rbiter = rbiter + self.count = 0 + + def __iter__(self): + return self + + def __len__(self): + return len(self.rbiter) + + def __next__(self): + item = self.rbiter.__next__() + item = item.dereference()['__value_'] + result = (('[%d]' % self.count), item) + self.count += 1 + return result + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.rbiter = RbtreeIterator(self.val['__tree_']) + + def to_string(self): + length = len(self.rbiter) + if length == 0: + return 'empty %s' % self.typename + else: + return '%s (count=%d)' % (self.typename, int(length)) + + def children(self): + return self._iterator(self.rbiter) + +# def display_hint (self): +# return 'set' + + +class RbtreeIterator: + + def __init__(self, rbtree): + self.node = rbtree['__begin_node_'] + self.size = pair_to_tuple(rbtree['__pair3_'])[0] + self.node_pointer_type = gdb.lookup_type( + rbtree.type.strip_typedefs().name + '::__node_pointer') + self.count = 0 + + def __iter__(self): + return self + + def __len__(self): + return int(self.size) + + def __next__(self): + if self.count == self.size: + raise StopIteration + + node = self.node.cast(self.node_pointer_type) + result = node + self.count += 1 + if self.count < self.size: + # Compute the next node. + if node.dereference()['__right_']: + node = node.dereference()['__right_'] + while node.dereference()['__left_']: + node = node.dereference()['__left_'] + else: + parent_node = node.dereference()['__parent_'] + while node != parent_node.dereference()['__left_']: + node = parent_node + parent_node = parent_node.dereference()['__parent_'] + node = parent_node + + self.node = node + return result + + +class StdRbtreeIteratorPrinter: + "Print std::set::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + return self.val['__ptr_']['__value_'] + + +class StdMapPrinter: + "Print a std::map or std::multimap" + + # Turn an RbtreeIterator into a pretty-print iterator. + class _iterator(Iterator): + + def __init__(self, rbiter): + self.rbiter = rbiter + self.count = 0 + + def __iter__(self): + return self + + def __len__(self): + return len(self.rbiter) + + def __next__(self): + item = self.rbiter.__next__() + item = item.dereference()['__value_'] + result = ('[%d] %s' % (self.count, str( + item['__cc']['first'])), item['__cc']['second']) + self.count += 1 + return result + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.rbiter = RbtreeIterator(val['__tree_']) + + def to_string(self): + length = len(self.rbiter) + if length == 0: + return 'empty %s' % self.typename + else: + return '%s (count=%d)' % (self.typename, int(length)) + + def children(self): + return self._iterator(self.rbiter) + +# def display_hint (self): +# return 'map' + + +class StdMapIteratorPrinter: + "Print std::map::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + vals = pair_to_tuple(self.val['__i_']['__ptr_']) + + return '[%s] %s' % (vals[0], vals[1]) + + +class HashtableIterator: + + def __init__(self, hashtable): + self.node = pair_to_tuple(hashtable['__p1_'])[0]['__next_'] + self.size = pair_to_tuple(hashtable['__p2_'])[0] + + def __iter__(self): + return self + + def __len__(self): + return self.size + + def __next__(self): + if self.node == 0: + raise StopIteration + hash_node_type = gdb.lookup_type( + self.node.dereference().type.name + '::__node_pointer') + node = self.node.cast(hash_node_type).dereference() + self.node = node['__next_'] + value = node['__value_'] + try: + # unordered_map's value is a union of __nc and __cc. + value = value['__nc'] + except gdb.error: + pass + return value + + +class StdHashtableIteratorPrinter: + "Print std::unordered_set::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + return self.val['__node_']['__value_'] + + +class StdUnorderedMapIteratorPrinter: + "Print std::unordered_map::iterator" + + def __init__(self, typename, val): + self.val = val + + def to_string(self): + return '[%s] %s' % pair_to_tuple(self.val['__i_']['__node_']) + + +class UnorderedSetPrinter: + "Print a std::unordered_set" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.hashtable = val['__table_'] + self.size = pair_to_tuple(self.hashtable['__p2_'])[0] + self.hashtableiter = HashtableIterator(self.hashtable) + + def hashtable(self): + return self.hashtable + + def to_string(self): + if self.size == 0: + return 'empty %s' % self.typename + else: + return '%s (count=%d)' % (self.typename, self.size) + + def children(self): + result = [] + count = 0 + for elt in self.hashtableiter: + result.append(('[%d]' % count, str(elt))) + count += 1 + return result + + +class UnorderedMapPrinter: + "Print a std::unordered_map" + + def __init__(self, typename, val): + self.typename = typename + self.val = val + self.hashtable = val['__table_'] + self.size = pair_to_tuple(self.hashtable['__p2_'])[0] + self.hashtableiter = HashtableIterator(self.hashtable) + + def hashtable(self): + return self.hashtable + + def to_string(self): + if self.size == 0: + return 'empty %s' % self.typename + else: + return '%s (count=%d)' % (self.typename, self.size) + + def children(self): + result = [] + count = 0 + for elt in self.hashtableiter: + result.append( + ('[%d] %s' % (count, str(elt['first'])), elt['second'])) + count += 1 + return result + +# def display_hint (self): +# return 'map' + +# A "regular expression" printer which conforms to the +# "SubPrettyPrinter" protocol from gdb.printing. + + +class RxPrinter(object): + + def __init__(self, name, function): + super(RxPrinter, self).__init__() + self.name = name + self.function = function + self.enabled = True + + def invoke(self, value): + if not self.enabled: + return None + return self.function(self.name, value) + +# A pretty-printer that conforms to the "PrettyPrinter" protocol from +# gdb.printing. It can also be used directly as an old-style printer. + + +class Printer(object): + + def __init__(self, name): + super(Printer, self).__init__() + self.name = name + self.subprinters = [] + self.lookup = {} + self.enabled = True + self.compiled_rx = re.compile('^([a-zA-Z0-9_:]+)<.*>$') + + def add(self, name, function): + # A small sanity check. + # FIXME + if not self.compiled_rx.match(name + '<>'): + raise ValueError( + 'libstdc++ programming error: "%s" does not match' % name) + printer = RxPrinter(name, function) + self.subprinters.append(printer) + self.lookup[name] = printer + + # Add a name using _GLIBCXX_BEGIN_NAMESPACE_VERSION. + def add_version(self, base, name, function): + self.add(base + name, function) + self.add(base + '__1::' + name, function) + + # Add a name using _GLIBCXX_BEGIN_NAMESPACE_CONTAINER. + def add_container(self, base, name, function): + self.add_version(base, name, function) + self.add_version(base + '__1::', name, function) + + @staticmethod + def get_basic_type(type): + # If it points to a reference, get the reference. + if type.code == gdb.TYPE_CODE_REF: + type = type.target() + + # Get the unqualified type, stripped of typedefs. + type = type.unqualified().strip_typedefs() + + return type.tag + + def __call__(self, val): + typename = self.get_basic_type(val.type) + if not typename: + return None + + # All the types we match are template types, so we can use a + # dictionary. + match = self.compiled_rx.match(typename) + if not match: + return None + + basename = match.group(1) + if basename in self.lookup: + return self.lookup[basename].invoke(val) + + # Cannot find a pretty printer. Return None. + return None + +libcxx_printer = None + + +class FilteringTypePrinter(object): + + def __init__(self, match, name): + self.match = match + self.name = name + self.enabled = True + + class _recognizer(object): + + def __init__(self, match, name): + self.match = match + self.name = name + self.type_obj = None + + def recognize(self, type_obj): + if type_obj.tag is None: + return None + + if self.type_obj is None: + if not self.match in type_obj.tag: + # Filter didn't match. + return None + try: + self.type_obj = gdb.lookup_type(self.name).strip_typedefs() + except: + pass + if self.type_obj == type_obj: + return self.name + return None + + def instantiate(self): + return self._recognizer(self.match, self.name) + + +def add_one_type_printer(obj, match, name): + printer = FilteringTypePrinter(match, 'std::' + name) + gdb.types.register_type_printer(obj, printer) + + +def register_type_printers(obj): + global _use_type_printing + + if not _use_type_printing: + return + + for pfx in ('', 'w'): + add_one_type_printer(obj, 'basic_string', pfx + 'string') + add_one_type_printer(obj, 'basic_ios', pfx + 'ios') + add_one_type_printer(obj, 'basic_streambuf', pfx + 'streambuf') + add_one_type_printer(obj, 'basic_istream', pfx + 'istream') + add_one_type_printer(obj, 'basic_ostream', pfx + 'ostream') + add_one_type_printer(obj, 'basic_iostream', pfx + 'iostream') + add_one_type_printer(obj, 'basic_stringbuf', pfx + 'stringbuf') + add_one_type_printer(obj, 'basic_istringstream', + pfx + 'istringstream') + add_one_type_printer(obj, 'basic_ostringstream', + pfx + 'ostringstream') + add_one_type_printer(obj, 'basic_stringstream', + pfx + 'stringstream') + add_one_type_printer(obj, 'basic_filebuf', pfx + 'filebuf') + add_one_type_printer(obj, 'basic_ifstream', pfx + 'ifstream') + add_one_type_printer(obj, 'basic_ofstream', pfx + 'ofstream') + add_one_type_printer(obj, 'basic_fstream', pfx + 'fstream') + add_one_type_printer(obj, 'basic_regex', pfx + 'regex') + add_one_type_printer(obj, 'sub_match', pfx + 'csub_match') + add_one_type_printer(obj, 'sub_match', pfx + 'ssub_match') + add_one_type_printer(obj, 'match_results', pfx + 'cmatch') + add_one_type_printer(obj, 'match_results', pfx + 'smatch') + add_one_type_printer(obj, 'regex_iterator', pfx + 'cregex_iterator') + add_one_type_printer(obj, 'regex_iterator', pfx + 'sregex_iterator') + add_one_type_printer(obj, 'regex_token_iterator', + pfx + 'cregex_token_iterator') + add_one_type_printer(obj, 'regex_token_iterator', + pfx + 'sregex_token_iterator') + + # Note that we can't have a printer for std::wstreampos, because + # it shares the same underlying type as std::streampos. + add_one_type_printer(obj, 'fpos', 'streampos') + add_one_type_printer(obj, 'basic_string', 'u16string') + add_one_type_printer(obj, 'basic_string', 'u32string') + + for dur in ('nanoseconds', 'microseconds', 'milliseconds', + 'seconds', 'minutes', 'hours'): + add_one_type_printer(obj, 'duration', dur) + + add_one_type_printer(obj, 'linear_congruential_engine', 'minstd_rand0') + add_one_type_printer(obj, 'linear_congruential_engine', 'minstd_rand') + add_one_type_printer(obj, 'mersenne_twister_engine', 'mt19937') + add_one_type_printer(obj, 'mersenne_twister_engine', 'mt19937_64') + add_one_type_printer(obj, 'subtract_with_carry_engine', 'ranlux24_base') + add_one_type_printer(obj, 'subtract_with_carry_engine', 'ranlux48_base') + add_one_type_printer(obj, 'discard_block_engine', 'ranlux24') + add_one_type_printer(obj, 'discard_block_engine', 'ranlux48') + add_one_type_printer(obj, 'shuffle_order_engine', 'knuth_b') + + +def register_libcxx_printers(obj): + "Register libc++ pretty-printers with objfile Obj." + + global _use_gdb_pp + global libcxx_printer + + if _use_gdb_pp: + gdb.printing.register_pretty_printer(obj, libcxx_printer) + else: + if obj is None: + obj = gdb + obj.pretty_printers.append(libcxx_printer) + + register_type_printers(obj) + + +def build_libcxx_dictionary(): + global libcxx_printer + + libcxx_printer = Printer("libc++-v1") + + # For _GLIBCXX_BEGIN_NAMESPACE_VERSION. + vers = '(__1::)?' + # For _GLIBCXX_BEGIN_NAMESPACE_CONTAINER. + container = '(__cxx2011::' + vers + ')?' + + # libstdc++ objects requiring pretty-printing. + # In order from: + # http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01847.html + libcxx_printer.add_version('std::', 'basic_string', StdStringPrinter) + libcxx_printer.add_container('std::', 'bitset', StdBitsetPrinter) + libcxx_printer.add_container('std::', 'deque', StdDequePrinter) + libcxx_printer.add_container('std::', 'list', StdListPrinter) + libcxx_printer.add_container('std::', 'map', StdMapPrinter) + libcxx_printer.add_container('std::', 'multimap', StdMapPrinter) + libcxx_printer.add_container('std::', 'multiset', StdSetPrinter) + libcxx_printer.add_version('std::', 'priority_queue', + StdStackOrQueuePrinter) + libcxx_printer.add_version('std::', 'queue', StdStackOrQueuePrinter) + libcxx_printer.add_version('std::', 'tuple', StdTuplePrinter) + libcxx_printer.add_version('std::', 'pair', StdPairPrinter) + libcxx_printer.add_container('std::', 'set', StdSetPrinter) + libcxx_printer.add_version('std::', 'stack', StdStackOrQueuePrinter) + libcxx_printer.add_version('std::', 'unique_ptr', UniquePointerPrinter) + libcxx_printer.add_container('std::', 'vector', StdVectorPrinter) + # vector<bool> + + # Printer registrations for classes compiled with -D_GLIBCXX_DEBUG. + libcxx_printer.add('std::__debug::bitset', StdBitsetPrinter) + libcxx_printer.add('std::__debug::deque', StdDequePrinter) + libcxx_printer.add('std::__debug::list', StdListPrinter) + libcxx_printer.add('std::__debug::map', StdMapPrinter) + libcxx_printer.add('std::__debug::multimap', StdMapPrinter) + libcxx_printer.add('std::__debug::multiset', StdSetPrinter) + libcxx_printer.add('std::__debug::priority_queue', StdStackOrQueuePrinter) + libcxx_printer.add('std::__debug::queue', StdStackOrQueuePrinter) + libcxx_printer.add('std::__debug::set', StdSetPrinter) + libcxx_printer.add('std::__debug::stack', StdStackOrQueuePrinter) + libcxx_printer.add('std::__debug::unique_ptr', UniquePointerPrinter) + libcxx_printer.add('std::__debug::vector', StdVectorPrinter) + + # For array - the default GDB pretty-printer seems reasonable. + libcxx_printer.add_version('std::', 'shared_ptr', SharedPointerPrinter) + libcxx_printer.add_version('std::', 'weak_ptr', SharedPointerPrinter) + libcxx_printer.add_container('std::', 'unordered_map', UnorderedMapPrinter) + libcxx_printer.add_container('std::', 'unordered_set', UnorderedSetPrinter) + libcxx_printer.add_container('std::', 'unordered_multimap', + UnorderedMapPrinter) + libcxx_printer.add_container('std::', 'unordered_multiset', + UnorderedSetPrinter) + libcxx_printer.add_container( + 'std::', 'forward_list', StdForwardListPrinter) + + libcxx_printer.add_version('std::', 'shared_ptr', SharedPointerPrinter) + libcxx_printer.add_version('std::', 'weak_ptr', SharedPointerPrinter) + libcxx_printer.add_version('std::', 'unordered_map', UnorderedMapPrinter) + libcxx_printer.add_version('std::', 'unordered_set', UnorderedSetPrinter) + libcxx_printer.add_version('std::', 'unordered_multimap', + UnorderedMapPrinter) + libcxx_printer.add_version('std::', 'unordered_multiset', + UnorderedSetPrinter) + + # These are the C++0x printer registrations for -D_GLIBCXX_DEBUG cases. + libcxx_printer.add('std::__debug::unordered_map', UnorderedMapPrinter) + libcxx_printer.add('std::__debug::unordered_set', UnorderedSetPrinter) + libcxx_printer.add('std::__debug::unordered_multimap', UnorderedMapPrinter) + libcxx_printer.add('std::__debug::unordered_multiset', UnorderedSetPrinter) + libcxx_printer.add('std::__debug::forward_list', StdForwardListPrinter) + + libcxx_printer.add_container('std::', '__list_iterator', + StdListIteratorPrinter) + libcxx_printer.add_container('std::', '__list_const_iterator', + StdListIteratorPrinter) + libcxx_printer.add_version('std::', '__tree_iterator', + StdRbtreeIteratorPrinter) + libcxx_printer.add_version('std::', '__tree_const_iterator', + StdRbtreeIteratorPrinter) + libcxx_printer.add_version('std::', '__hash_iterator', + StdHashtableIteratorPrinter) + libcxx_printer.add_version('std::', '__hash_const_iterator', + StdHashtableIteratorPrinter) + libcxx_printer.add_version('std::', '__hash_map_iterator', + StdUnorderedMapIteratorPrinter) + libcxx_printer.add_version('std::', '__hash_map_const_iterator', + StdUnorderedMapIteratorPrinter) + libcxx_printer.add_version('std::', '__map_iterator', + StdMapIteratorPrinter) + libcxx_printer.add_version('std::', '__map_const_iterator', + StdMapIteratorPrinter) + libcxx_printer.add_container('std::', '__deque_iterator', + StdDequeIteratorPrinter) + libcxx_printer.add_version('std::', '__wrap_iter', + StdVectorIteratorPrinter) + libcxx_printer.add_version('std::', '__bit_iterator', + StdVectorBoolIteratorPrinter) + + # Debug (compiled with -D_GLIBCXX_DEBUG) printer + # registrations. The Rb_tree debug iterator when unwrapped + # from the encapsulating __gnu_debug::_Safe_iterator does not + # have the __norm namespace. Just use the existing printer + # registration for that. + libcxx_printer.add('std::__norm::__list_iterator', + StdListIteratorPrinter) + libcxx_printer.add('std::__norm::__list_const_iterator', + StdListIteratorPrinter) + libcxx_printer.add('std::__norm::__deque_iterator', + StdDequeIteratorPrinter) + +build_libcxx_dictionary()
diff --git a/third_party/libprotobuf-mutator/fuzzable_proto_library.gni b/third_party/libprotobuf-mutator/fuzzable_proto_library.gni index 369df0d..0bb17ba 100644 --- a/third_party/libprotobuf-mutator/fuzzable_proto_library.gni +++ b/third_party/libprotobuf-mutator/fuzzable_proto_library.gni
@@ -1,3 +1,4 @@ +import("//testing/libfuzzer/fuzzer_test.gni") import("//third_party/protobuf/proto_library.gni") template("fuzzable_proto_library") { @@ -36,6 +37,14 @@ ":proto_library_" + target_name, "//third_party/libprotobuf-mutator:protobuf_full", ] + + # Don't bother doing builds for CF if we aren't on Linux because of build + # breakages on Mac. + # TODO(crbug.com/869035): Figure out what is causing this issue and fix + # instead of working around it. + if (!is_linux) { + all_dependent_configs = [ "//testing/libfuzzer:no_clusterfuzz" ] + } } } else { # fuzzable_proto_library should behave like a proto_library when
diff --git a/third_party/libvpx/README.chromium b/third_party/libvpx/README.chromium index edad5a9..266f0493 100644 --- a/third_party/libvpx/README.chromium +++ b/third_party/libvpx/README.chromium
@@ -5,9 +5,9 @@ License File: source/libvpx/LICENSE Security Critical: yes -Date: Thursday July 26 2018 +Date: Saturday July 28 2018 Branch: master -Commit: 3b921d49b07abd619a6fab135795c94f4ce1c7bd +Commit: 2d79df49408873dd62a1b26cf8ed0e067c26dc6d Description: Contains the sources used to compile libvpx binaries used by Google Chrome and
diff --git a/third_party/libvpx/libvpx_srcs.gni b/third_party/libvpx/libvpx_srcs.gni index 24e6a89..e3a4d39 100644 --- a/third_party/libvpx/libvpx_srcs.gni +++ b/third_party/libvpx/libvpx_srcs.gni
@@ -1636,6 +1636,8 @@ "//third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/variance_neon.c", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.c", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_neon.c", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_scaled_convolve8_neon.c", "//third_party/libvpx/source/libvpx/vpx_dsp/avg.c", @@ -1711,8 +1713,14 @@ "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_4_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_8_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/save_reg_neon.asm", - "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_neon_asm.asm", - "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type2_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_avg_neon_asm.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_copy_neon_asm.asm", ] @@ -2000,6 +2008,7 @@ "//third_party/libvpx/source/libvpx/vpx_dsp/arm/sum_neon.h", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/transpose_neon.h", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon.h", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.h", "//third_party/libvpx/source/libvpx/vpx_dsp/avg.c", "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.c", "//third_party/libvpx/source/libvpx/vpx_dsp/bitreader.h", @@ -2073,8 +2082,14 @@ "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_4_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/loopfilter_8_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/save_reg_neon.asm", - "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_neon_asm.asm", - "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_neon_asm.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_avg_vert_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_horiz_filter_type2_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type1_neon.asm", + "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve8_vert_filter_type2_neon.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_avg_neon_asm.asm", "//third_party/libvpx/source/libvpx/vpx_dsp/arm/vpx_convolve_copy_neon_asm.asm", ]
diff --git a/third_party/libvpx/source/config/vpx_version.h b/third_party/libvpx/source/config/vpx_version.h index 5558130..1c8c474 100644 --- a/third_party/libvpx/source/config/vpx_version.h +++ b/third_party/libvpx/source/config/vpx_version.h
@@ -2,7 +2,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 7 #define VERSION_PATCH 0 -#define VERSION_EXTRA "718-g3b921d49b" +#define VERSION_EXTRA "731-g2d79df494" #define VERSION_PACKED ((VERSION_MAJOR<<16)|(VERSION_MINOR<<8)|(VERSION_PATCH)) -#define VERSION_STRING_NOSP "v1.7.0-718-g3b921d49b" -#define VERSION_STRING " v1.7.0-718-g3b921d49b" +#define VERSION_STRING_NOSP "v1.7.0-731-g2d79df494" +#define VERSION_STRING " v1.7.0-731-g2d79df494"
diff --git a/tools/android/roll/android_deps/fetch_all.py b/tools/android/roll/android_deps/fetch_all.py index 59b7c61..890e4a0f 100755 --- a/tools/android/roll/android_deps/fetch_all.py +++ b/tools/android/roll/android_deps/fetch_all.py
@@ -311,9 +311,13 @@ Returns: A string holding a shell command to upload the package through cipd. """ - pkg_path, _, pkg_tag = cipd_pkg_info - return '(cd %s; cipd create --pkg-def cipd.yaml -tag %s)' % ( - pkg_path, pkg_tag) + pkg_path, pkg_name, pkg_tag = cipd_pkg_info + return ('(cd {0}; ' + # Need to skip create step if an instance already exists with the + # same package name and version tag (thus the use of ||). + 'cipd describe {1} -version {2} || ' + 'cipd create --pkg-def cipd.yaml -tag {2})').format( + pkg_path, pkg_name, pkg_tag) def main(): @@ -497,6 +501,7 @@ if cipd_packages_to_upload: print 'Run the following to upload new and updated CIPD packages:' + print 'Note: Duplicate instances with the same tag will break the build.' print '------------------------ cut here -----------------------------' print '\n'.join(cipd_commands) print '------------------------ cut here -----------------------------'
diff --git a/tools/clang/scripts/update.py b/tools/clang/scripts/update.py index f69d2eb..04d97b47 100755 --- a/tools/clang/scripts/update.py +++ b/tools/clang/scripts/update.py
@@ -392,7 +392,10 @@ if bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN', '1'))): dia_path = os.path.join(win_sdk_dir, '..', 'DIA SDK', 'bin', 'amd64') else: - vs_path = vs_toolchain.DetectVisualStudioPath() + if 'GYP_MSVS_OVERRIDE_PATH' not in os.environ: + vs_path = vs_toolchain.DetectVisualStudioPath() + else: + vs_path = os.environ['GYP_MSVS_OVERRIDE_PATH'] dia_path = os.path.join(vs_path, 'DIA SDK', 'bin', 'amd64') dia_dll = os.path.join(dia_path, DIA_DLL[msvs_version])
diff --git a/tools/gdb/gdbinit b/tools/gdb/gdbinit index 039ced9f3..c19bef38 100644 --- a/tools/gdb/gdbinit +++ b/tools/gdb/gdbinit
@@ -1,9 +1,11 @@ # This is gdbinit for source level debugging with -fdebug-compilation-dir -# compile option. +# compile option or when building with libc++. python import os +import subprocess +import sys def get_current_debug_file_directories(): dir = gdb.execute("show debug-file-directory", to_string=True) @@ -20,6 +22,28 @@ to_string=True) +libcxx_pretty_printers_loaded = False +def load_libcxx_pretty_printers(compile_dir): + global libcxx_pretty_printers_loaded + if libcxx_pretty_printers_loaded: + return + git = subprocess.Popen( + ['git', '-C', compile_dir, 'rev-parse', '--show-toplevel'], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + src_dir, _ = git.communicate() + if git.returncode: + return + libcxx_pretty_printers = os.path.join(src_dir.rstrip(), 'third_party', + 'libcxx-pretty-printers', 'src') + if not os.path.isdir(libcxx_pretty_printers): + return + sys.path.insert(1, libcxx_pretty_printers) + from libcxx.v1.printers import register_libcxx_printers + register_libcxx_printers(None) + libcxx_pretty_printers_loaded = True + + def newobj_handler(event): compile_dir = os.path.dirname(event.new_objfile.filename) if not compile_dir: @@ -33,6 +57,8 @@ # https://crbug.com/603286#c35 add_debug_file_directory(compile_dir) + load_libcxx_pretty_printers(compile_dir) + # Event hook for newly loaded objfiles. # https://sourceware.org/gdb/onlinedocs/gdb/Events-In-Python.html
diff --git a/tools/gritsettings/startup_resources_mac.txt b/tools/gritsettings/startup_resources_mac.txt index c1fd2977..d15db759 100644 --- a/tools/gritsettings/startup_resources_mac.txt +++ b/tools/gritsettings/startup_resources_mac.txt
@@ -21,7 +21,6 @@ IDS_CLOSE_WINDOW_MAC 121 IDS_CLOSE_TAB_MAC 122 IDS_SAVE_PAGE_MAC 123 -IDS_EMAIL_PAGE_LOCATION_MAC 124 IDS_PRINT 125 IDS_PRINT_USING_SYSTEM_DIALOG_MAC 126 IDS_EDIT_MENU_MAC 127
diff --git a/tools/mb/mb_config.pyl b/tools/mb/mb_config.pyl index b2691257..67806b3 100644 --- a/tools/mb/mb_config.pyl +++ b/tools/mb/mb_config.pyl
@@ -555,7 +555,7 @@ }, 'tryserver.chromium.chromiumos': { - 'chromeos-amd64-generic-rel': 'cros_chrome_sdk', + 'chromeos-amd64-generic-rel': 'cros_chrome_sdk_dcheck_always_on', 'chromeos-daisy-rel': 'cros_chrome_sdk', 'linux-chromeos-rel': 'chromeos_with_codecs_release_trybot', 'linux-chromeos-compile-dbg': 'chromeos_with_codecs_debug_bot', @@ -1169,6 +1169,10 @@ 'cros_chrome_sdk', ], + 'cros_chrome_sdk_dcheck_always_on': [ + 'cros_chrome_sdk', 'dcheck_always_on', + ], + 'cros_chrome_sdk_headless_ozone': [ 'cros_chrome_sdk', 'ozone_platform_headless', ],
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 15f5b83..a90de18 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -27940,6 +27940,7 @@ label="AutofillEnforceMinRequiredFieldsForUpload:disabled"/> <int value="-1311133348" label="VrBrowsingNativeAndroidUi:enabled"/> <int value="-1310737697" label="MaterialDesignSettings:enabled"/> + <int value="-1308600417" label="NewNetErrorPageUI:disabled"/> <int value="-1304957199" label="OfflinePagesShowAlternateDinoPage:enabled"/> <int value="-1303995589" label="shelf-new-ui"/> <int value="-1302904242" label="enable-navigation-tracing"/> @@ -29366,6 +29367,7 @@ <int value="1691568199" label="AndroidSpellCheckerNonLowEnd:disabled"/> <int value="1694766748" label="AutofillRestrictUnownedFieldsToFormlessCheckout:enabled"/> + <int value="1694798717" label="NewNetErrorPageUI:enabled"/> <int value="1694854500" label="disable-save-password-bubble"/> <int value="1696139514" label="enable-ble-advertising-in-apps"/> <int value="1697189972" label="WebPaymentsSingleAppUiSkip:disabled"/> @@ -45603,6 +45605,7 @@ <int value="4" label="Max number is missing"/> <int value="5" label="Rolled a non-zero number"/> <int value="6" label="User selected for survey"/> + <int value="7" label="Survey already exists"/> </enum> <enum name="SuspendAttempt">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 687ab65..43401ed 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -1537,6 +1537,16 @@ </summary> </histogram> +<histogram name="Android.Intent.LaunchExternalAppFormSubmitHasUserGesture" + enum="Boolean" expires_after="M71"> + <owner>tedchoc@chromium.org</owner> + <owner>thildebr@chromium.org</owner> + <summary> + When an external application was launched as a result of a form submit, this + tracks whether there was a user gesture associated with the submit. + </summary> +</histogram> + <histogram name="Android.IsLastSharedAppInfoRetrieved" enum="BooleanIsLastSharedAppInfoRetrieved"> <owner>jaekyun@chromium.org</owner> @@ -2159,6 +2169,14 @@ </summary> </histogram> +<histogram name="Android.Survey.DownloadRequested" enum="BooleanRequested"> + <owner>danielpark@chromium.org</owner> + <summary> + Recorded when a survey download is requested. If the client already has + successfully downloaded a survey, 'not requested' is recorded. + </summary> +</histogram> + <histogram name="Android.Survey.DownloadResponseCode" enum="SurveyDownloadResponseCodes"> <owner>danielpark@chromium.org</owner>
diff --git a/tools/perf/benchmark.csv b/tools/perf/benchmark.csv index 5fbc1c7..47a563e9 100644 --- a/tools/perf/benchmark.csv +++ b/tools/perf/benchmark.csv
@@ -37,7 +37,7 @@ oortonline_tbmv2,ulan@chromium.org,, passthrough_command_buffer_perftests,"piman@chromium.org, chrome-gpu-perf-owners@chromium.org",Internals>GPU>ANGLE, performance_browser_tests,miu@chromium.org,, -power.desktop,charliea@chromium.org,,https://bit.ly/power-benchmarks +power.desktop,brucedawson@chromium.org,,https://bit.ly/power-benchmarks power.typical_10_mobile,perezju@chromium.org,,https://bit.ly/power-benchmarks rasterize_and_record_micro.partial_invalidation,"vmpstr@chromium.org, wkorman@chromium.org",Internals>Compositing>Rasterization, rasterize_and_record_micro.top_25,"vmpstr@chromium.org, wkorman@chromium.org",Internals>Compositing>Rasterization,
diff --git a/tools/perf/benchmarks/power.py b/tools/perf/benchmarks/power.py index 8d8021ae..127264a5 100644 --- a/tools/perf/benchmarks/power.py +++ b/tools/perf/benchmarks/power.py
@@ -28,7 +28,7 @@ return 'power.typical_10_mobile' -@benchmark.Info(emails=['charliea@chromium.org'], +@benchmark.Info(emails=['brucedawson@chromium.org'], documentation_url='https://bit.ly/power-benchmarks') class PowerDesktop(perf_benchmark.PerfBenchmark): SUPPORTED_PLATFORMS = [story.expectations.ALL_DESKTOP]
diff --git a/tools/perf/core/perf_benchmark.py b/tools/perf/core/perf_benchmark.py index b04418c..bfe8171 100644 --- a/tools/perf/core/perf_benchmark.py +++ b/tools/perf/core/perf_benchmark.py
@@ -106,7 +106,7 @@ self.SetExtraBrowserOptions(options) @staticmethod - def _FixupTargetOS(target_os): + def FixupTargetOS(target_os): if target_os == 'darwin': return 'mac' if target_os.startswith('win'): @@ -116,15 +116,18 @@ return target_os def _GetVariationsBrowserArgs(self, finder_options): - variations_dir = os.path.join(os.path.dirname(__file__), '..', - '..', '..', 'testing', 'variations') + chrome_root = finder_options.chrome_root + if chrome_root is None: + chrome_root = path_module.GetChromiumSrcDir() + + variations_dir = os.path.join(chrome_root, 'testing', 'variations') possible_browser = browser_finder.FindBrowser(finder_options) if not possible_browser: return [] return fieldtrial_util.GenerateArgs( os.path.join(variations_dir, 'fieldtrial_testing_config.json'), - [self._FixupTargetOS(possible_browser.target_os)]) + [self.FixupTargetOS(possible_browser.target_os)]) @staticmethod def _GetPossibleBuildDirectories(chrome_src_dir, browser_type):
diff --git a/tools/perf/core/perf_benchmark_unittest.py b/tools/perf/core/perf_benchmark_unittest.py index 98624157..9b91943 100644 --- a/tools/perf/core/perf_benchmark_unittest.py +++ b/tools/perf/core/perf_benchmark_unittest.py
@@ -3,11 +3,12 @@ # found in the LICENSE file. import os +import json import shutil import tempfile import unittest -from telemetry import decorators +from telemetry.internal.browser import browser_finder from telemetry.testing import options_for_unittests from core import perf_benchmark @@ -33,25 +34,61 @@ self.assertEqual(num_expected_matches, len(ruleset_data_to_copy)) - @decorators.Disabled('chromeos', 'linux') # http://crbug.com/844863 def testVariationArgs(self): benchmark = perf_benchmark.PerfBenchmark() options = options_for_unittests.GetCopy() - benchmark.CustomizeBrowserOptions(options.browser_options) - extra_args = options.browser_options.extra_browser_args - feature_args = [a for a in extra_args if a.startswith('--enable-features')] - self.assertEqual(1, len(feature_args)) + options.chrome_root = self._output_dir + options.browser_type = "any" + possible_browser = browser_finder.FindBrowser(options) + if possible_browser is None: + return + target_os = perf_benchmark.PerfBenchmark.FixupTargetOS( + possible_browser.target_os) + self.assertIsNotNone(target_os) - @decorators.Disabled('linux') # http://crbug.com/844863 - def testVariationArgsReference(self): + testing_config = json.dumps({ + "OtherPlatformStudy": [{ + "platforms": ["fake_platform"], + "experiments": [{ + "name": "OtherPlatformFeature", + "enable_features": ["NonExistentFeature"] + }] + }], + "TestStudy": [{ + "platforms": [target_os], + "experiments": [{ + "name": "TestFeature", + "params": { "param1" : "value1" }, + "enable_features": ["Feature1", "Feature2"], + "disable_features": ["Feature3", "Feature4"]}]}]}) + variations_dir = os.path.join(self._output_dir, "testing", "variations") + os.makedirs(variations_dir) + + fieldtrial_path = os.path.join( + variations_dir, "fieldtrial_testing_config.json") + with open(fieldtrial_path, "w") as f: + f.write(testing_config) + + benchmark.CustomizeBrowserOptions(options.browser_options) + + expected_args = [ + "--enable-features=Feature1<TestStudy,Feature2<TestStudy", + "--disable-features=Feature3<TestStudy,Feature4<TestStudy", + "--force-fieldtrials=TestStudy/TestFeature", + "--force-fieldtrial-params=TestStudy.TestFeature:param1/value1" + ] + for arg in expected_args: + self.assertIn(arg, options.browser_options.extra_browser_args) + + # Test 'reference' type, which has no variation params applied by default. benchmark = perf_benchmark.PerfBenchmark() options = options_for_unittests.GetCopy() + options.chrome_root = self._output_dir options.browser_options.browser_type = 'reference' benchmark.CustomizeBrowserOptions(options.browser_options) - extra_args = options.browser_options.extra_browser_args - feature_args = [a for a in extra_args if a.startswith('--enable-features')] - self.assertEqual(0, len(feature_args)) + for arg in expected_args: + self.assertNotIn(arg, options.browser_options.extra_browser_args) def testNoAdTaggingRuleset(self): benchmark = perf_benchmark.PerfBenchmark()
diff --git a/tools/perf/expectations.config b/tools/perf/expectations.config index 662ab88..f9e13b9 100644 --- a/tools/perf/expectations.config +++ b/tools/perf/expectations.config
@@ -241,7 +241,6 @@ crbug.com/742475 [ Mac ] system_health.memory_desktop/multitab:misc:typical24 [ Skip ] crbug.com/838504 [ Linux ] system_health.memory_desktop/multitab:misc:typical24 [ Skip ] crbug.com/773084 [ Mac ] system_health.memory_desktop/browse:tools:maps [ Skip ] -crbug.com/673775 [ Win ] system_health.memory_desktop/browse:search:google [ Skip ] crbug.com/664661 [ Mac ] system_health.memory_desktop/load:games:miniclip [ Skip ] crbug.com/728464 [ All ] system_health.memory_desktop/browse:social:twitter_infinite_scroll [ Skip ] crbug.com/799106 [ Win ] system_health.memory_desktop/browse:media:flickr_infinite_scroll [ Skip ] @@ -249,6 +248,7 @@ crbug.com/836406 [ Linux ] system_health.memory_desktop/browse:news:flipboard [ Skip ] crbug.com/836407 [ Linux ] system_health.memory_desktop/browse:tools:maps [ Skip ] crbug.com/837397 [ Linux ] system_health.memory_desktop/load_accessibility:shopping:amazon [ Skip ] +crbug.com/869118 [ Linux ] system_health.memory_desktop/long_running:tools:gmail-background [ Skip ] crbug.com/836447 [ ChromeOS ] system_health.memory_desktop/multitab:misc:typical24 [ Skip ] crbug.com/799734 [ Win ] system_health.memory_desktop/browse:media:tumblr [ Skip ]
diff --git a/ui/aura/test/aura_test_helper.cc b/ui/aura/test/aura_test_helper.cc index 1e66789..18883c9e 100644 --- a/ui/aura/test/aura_test_helper.cc +++ b/ui/aura/test/aura_test_helper.cc
@@ -80,7 +80,7 @@ WindowTreeClient* window_tree_client) { DCHECK(!setup_called_); DCHECK_EQ(Mode::LOCAL, mode_); - mode_ = Mode::MUS; + mode_ = Mode::MUS_DONT_CREATE_WINDOW_TREE_CLIENT; window_tree_client_ = window_tree_client; } @@ -91,8 +91,8 @@ void AuraTestHelper::SetUp(ui::ContextFactory* context_factory, ui::ContextFactoryPrivate* context_factory_private) { - // |mode_| defaults to LOCAL, but test suites may enable MUS. If this happens - // enable mus. + // If Env has been configured with MUS, but |mode_| is still |LOCAL|, switch + // to MUS. This is used for tests suites that setup Env globally. if (Env::GetInstanceDontCreate() && Env::GetInstanceDontCreate()->mode() == Env::Mode::MUS && mode_ == Mode::LOCAL) { @@ -103,7 +103,7 @@ setup_called_ = true; - if (mode_ != Mode::MUS) { + if (mode_ != Mode::MUS_DONT_CREATE_WINDOW_TREE_CLIENT) { // Assume if an explicit WindowTreeClient was created then a WmState was // already created. wm_state_ = std::make_unique<wm::WMState>(); @@ -116,14 +116,17 @@ if (mode_ == Mode::MUS_CREATE_WINDOW_TREE_CLIENT) InitWindowTreeClient(); - if (!Env::GetInstanceDontCreate()) - env_ = Env::CreateInstance(env_mode); - else + + if (Env::GetInstanceDontCreate()) { + // Some tests suites create Env globally rather than per test. In this case + // make sure Env is configured with the right mode. env_mode_to_restore_ = Env::GetInstance()->mode(); + EnvTestHelper().SetMode(env_mode); + } else { + env_ = Env::CreateInstance(env_mode); + } + EnvTestHelper env_helper; - // Always reset the mode. This really only matters for if Env was created - // above. - env_helper.SetMode(env_mode); if (env_mode == Env::Mode::MUS) { env_window_tree_client_setter_ = std::make_unique<EnvWindowTreeClientSetter>(window_tree_client_); @@ -143,7 +146,7 @@ ui::InitializeInputMethodForTesting(); - if (mode_ != Mode::MUS) { + if (mode_ != Mode::MUS_DONT_CREATE_WINDOW_TREE_CLIENT) { display::Screen* screen = display::Screen::GetScreen(); gfx::Size host_size(screen ? screen->GetPrimaryDisplay().GetSizeInPixel() : gfx::Size(800, 600)); @@ -182,7 +185,7 @@ teardown_called_ = true; parenting_client_.reset(); env_window_tree_client_setter_.reset(); - if (mode_ != Mode::MUS && root_window()) { + if (mode_ != Mode::MUS_DONT_CREATE_WINDOW_TREE_CLIENT && root_window()) { client::SetFocusClient(root_window(), nullptr); client::SetCaptureClient(root_window(), nullptr); host_.reset();
diff --git a/ui/aura/test/aura_test_helper.h b/ui/aura/test/aura_test_helper.h index 16a184c..8b7fc06 100644 --- a/ui/aura/test/aura_test_helper.h +++ b/ui/aura/test/aura_test_helper.h
@@ -111,7 +111,7 @@ // Mus without creating a WindowTree and WindowTreeHost. This is used when // the test wants to create the WindowTreeClient itself. This mode is // enabled by way of EnableMusWithWindowTreeClient(). - MUS, + MUS_DONT_CREATE_WINDOW_TREE_CLIENT, }; // Initializes a WindowTreeClient with a test WindowTree.
diff --git a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc index 467cc796..5478f264 100644 --- a/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc +++ b/ui/ozone/platform/drm/gpu/gbm_surface_factory.cc
@@ -178,10 +178,10 @@ return nullptr; } - DCHECK(buffer->AreFdsValid()); - DCHECK_EQ(buffer->GetFdCount(), 1U); + DCHECK(buffer->gbm_bo()->AreFdsValid()); + DCHECK_EQ(buffer->gbm_bo()->fd_count(), 1U); - base::ScopedFD vk_image_fd(dup(buffer->GetFd(0))); + base::ScopedFD vk_image_fd(dup(buffer->gbm_bo()->GetFd(0))); DCHECK(vk_image_fd.is_valid()); VkDmaBufImageCreateInfo dma_buf_image_create_info = { @@ -190,7 +190,7 @@ .fd = vk_image_fd.release(), .format = VK_FORMAT_B8G8R8A8_SRGB, .extent = (VkExtent3D){size.width(), size.height(), 1}, - .strideInBytes = buffer->GetStride(0), + .strideInBytes = buffer->gbm_bo()->GetStride(0), }; VkResult result =
diff --git a/ui/views/cocoa/bridged_native_widget.h b/ui/views/cocoa/bridged_native_widget.h index b8c88ee1..674a9b7 100644 --- a/ui/views/cocoa/bridged_native_widget.h +++ b/ui/views/cocoa/bridged_native_widget.h
@@ -31,6 +31,7 @@ namespace ui { class InputMethod; +class RecyclableCompositorMac; } namespace views { @@ -321,12 +322,8 @@ std::vector<BridgedNativeWidget*> child_windows_; base::scoped_nsobject<NSView> compositor_superview_; - std::unique_ptr<ui::AcceleratedWidgetMac> compositor_widget_; std::unique_ptr<ui::DisplayCALayerTree> display_ca_layer_tree_; - std::unique_ptr<ui::Compositor> compositor_; - std::unique_ptr<ui::CompositorLock> compositor_lock_; - - viz::ParentLocalSurfaceIdAllocator parent_local_surface_id_allocator_; + std::unique_ptr<ui::RecyclableCompositorMac> compositor_; // Tracks the bounds when the window last started entering fullscreen. Used to // provide an answer for GetRestoredBounds(), but not ever sent to Cocoa (it
diff --git a/ui/views/cocoa/bridged_native_widget.mm b/ui/views/cocoa/bridged_native_widget.mm index c1a6158..c85c4d3 100644 --- a/ui/views/cocoa/bridged_native_widget.mm +++ b/ui/views/cocoa/bridged_native_widget.mm
@@ -14,7 +14,6 @@ #include "base/mac/mac_util.h" #import "base/mac/sdk_forward_declarations.h" #include "base/single_thread_task_runner.h" -#include "base/threading/thread_task_runner_handle.h" #include "components/viz/common/features.h" #include "components/viz/common/surfaces/local_surface_id.h" #include "ui/accelerated_widget_mac/window_resize_helper_mac.h" @@ -24,7 +23,6 @@ #include "ui/base/ime/input_method_factory.h" #include "ui/base/layout.h" #include "ui/base/ui_base_switches.h" -#include "ui/compositor/compositor_switches.h" #include "ui/compositor/recyclable_compositor_mac.h" #include "ui/gfx/geometry/dip_util.h" #import "ui/gfx/mac/coordinate_conversion.h" @@ -174,17 +172,6 @@ return gfx::Size([window contentRectForFrameRect:frame_rect].size); } -// Returns a task runner for creating a ui::Compositor. This allows compositor -// tasks to be funneled through ui::WindowResizeHelper's task runner to allow -// resize operations to coordinate with frames provided by the GPU process. -scoped_refptr<base::SingleThreadTaskRunner> GetCompositorTaskRunner() { - // If the WindowResizeHelper's pumpable task runner is set, it means the GPU - // process is directing messages there, and the compositor can synchronize - // with it. Otherwise, just use the UI thread. - scoped_refptr<base::SingleThreadTaskRunner> task_runner = - ui::WindowResizeHelperMac::Get()->task_runner(); - return task_runner ? task_runner : base::ThreadTaskRunnerHandle::Get(); -} void RankNSViews(views::View* view, const views::BridgedNativeWidget::AssociatedViews& hosts, RankMap* rank) { @@ -454,7 +441,7 @@ // If this is ever false, the compositor will need to be properly torn down // and replaced, pointing at the new view. - DCHECK(!view || !compositor_widget_); + DCHECK(!view || !compositor_); drag_drop_client_.reset(); [bridged_view_ clearView]; @@ -1040,9 +1027,9 @@ return false; if (ca_transaction_sync_suppressed_) return false; - if (!compositor_widget_) + if (!compositor_) return false; - return !compositor_widget_->HasFrameOfSize(GetClientAreaSize()); + return !compositor_->widget()->HasFrameOfSize(GetClientAreaSize()); } base::TimeDelta BridgedNativeWidget::PreCommitTimeout() { @@ -1117,13 +1104,13 @@ void BridgedNativeWidget::AcceleratedWidgetCALayerParamsUpdated() { // Ignore frames arriving "late" for an old size. A frame at the new size // should arrive soon. - if (!compositor_widget_->HasFrameOfSize(GetClientAreaSize())) + if (!compositor_->widget()->HasFrameOfSize(GetClientAreaSize())) return; // Update the DisplayCALayerTree with the most recent CALayerParams, to make // the content display on-screen. const gfx::CALayerParams* ca_layer_params = - compositor_widget_->GetCALayerParams(); + compositor_->widget()->GetCALayerParams(); if (ca_layer_params) display_ca_layer_tree_->UpdateCALayerTree(*ca_layer_params); @@ -1247,7 +1234,6 @@ void BridgedNativeWidget::CreateCompositor() { DCHECK(!compositor_); - DCHECK(!compositor_widget_); DCHECK(ViewsDelegate::GetInstance()); ui::ContextFactory* context_factory = @@ -1258,14 +1244,9 @@ AddCompositorSuperview(); - compositor_widget_.reset(new ui::AcceleratedWidgetMac()); - compositor_.reset(new ui::Compositor( - context_factory_private->AllocateFrameSinkId(), context_factory, - context_factory_private, GetCompositorTaskRunner(), - features::IsSurfaceSynchronizationEnabled(), - ui::IsPixelCanvasRecordingEnabled())); - compositor_->SetAcceleratedWidget(compositor_widget_->accelerated_widget()); - compositor_widget_->SetNSView(this); + compositor_ = ui::RecyclableCompositorMacFactory::Get()->CreateCompositor( + context_factory, context_factory_private); + compositor_->widget()->SetNSView(this); } void BridgedNativeWidget::InitCompositor() { @@ -1273,10 +1254,10 @@ DCHECK(layer()); float scale_factor = GetDeviceScaleFactorFromView(compositor_superview_); gfx::Size size_in_dip = GetClientAreaSize(); - compositor_->SetScaleAndSize(scale_factor, - ConvertSizeToPixel(scale_factor, size_in_dip), - parent_local_surface_id_allocator_.GenerateId()); - compositor_->SetRootLayer(layer()); + compositor_->UpdateSurface(ConvertSizeToPixel(scale_factor, size_in_dip), + scale_factor); + compositor_->compositor()->SetRootLayer(layer()); + compositor_->Unsuspend(); } void BridgedNativeWidget::DestroyCompositor() { @@ -1291,13 +1272,12 @@ } DestroyLayer(); - if (!compositor_widget_) { - DCHECK(!compositor_); + if (!compositor_) return; - } - compositor_widget_->ResetNSView(); - compositor_.reset(); - compositor_widget_.reset(); + compositor_->widget()->ResetNSView(); + compositor_->compositor()->SetRootLayer(nullptr); + ui::RecyclableCompositorMacFactory::Get()->RecycleCompositor( + std::move(compositor_)); } void BridgedNativeWidget::AddCompositorSuperview() { @@ -1340,13 +1320,7 @@ ui::CATransactionCoordinator::Get().Synchronize(); layer()->SetBounds(gfx::Rect(size_in_dip)); - - if (compositor_->size() != size_in_pixel || - compositor_->device_scale_factor() != scale_factor) { - compositor_->SetScaleAndSize( - scale_factor, size_in_pixel, - parent_local_surface_id_allocator_.GenerateId()); - } + compositor_->UpdateSurface(size_in_pixel, scale_factor); // For a translucent window, the shadow calculation needs to be carried out // after the frame from the compositor arrives. @@ -1356,8 +1330,7 @@ void BridgedNativeWidget::MaybeWaitForFrame(const gfx::Size& size_in_dip) { return; // TODO(https://crbug.com/682825): Delete this during cleanup. - - if (!layer()->IsDrawn() || compositor_widget_->HasFrameOfSize(size_in_dip)) + if (!layer()->IsDrawn() || compositor_->widget()->HasFrameOfSize(size_in_dip)) return; const int kPaintMsgTimeoutMS = 50; @@ -1373,7 +1346,7 @@ // Since the UI thread is blocked, the size shouldn't change. DCHECK(size_in_dip == GetClientAreaSize()); - if (compositor_widget_->HasFrameOfSize(size_in_dip)) + if (compositor_->widget()->HasFrameOfSize(size_in_dip)) return; // Frame arrived. } } @@ -1414,14 +1387,10 @@ void BridgedNativeWidget::UpdateLayerVisibility() { layer()->SetVisible(window_visible_); - if (window_visible_) { - compositor_lock_.reset(); - } else if (!compositor_lock_) { - // Assume that GetCompositorLock always succeeds (if it does not, then a - // flicker may be seen). - compositor_lock_ = - compositor_->GetCompositorLock(nullptr, base::TimeDelta()); - } + if (window_visible_) + compositor_->Unsuspend(); + else + compositor_->Suspend(); } } // namespace views
diff --git a/ui/views/controls/button/image_button.cc b/ui/views/controls/button/image_button.cc index 677d4dc..851a207 100644 --- a/ui/views/controls/button/image_button.cc +++ b/ui/views/controls/button/image_button.cc
@@ -305,4 +305,8 @@ } } +bool ToggleImageButton::toggled_for_testing() const { + return toggled_; +} + } // namespace views
diff --git a/ui/views/controls/button/image_button.h b/ui/views/controls/button/image_button.h index bc69e6e..6e5b0cb 100644 --- a/ui/views/controls/button/image_button.h +++ b/ui/views/controls/button/image_button.h
@@ -161,6 +161,8 @@ base::string16* tooltip) const override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override; + bool toggled_for_testing() const; + private: // The parent class's images_ member is used for the current images, // and this array is used to hold the alternative images.
diff --git a/ui/views/widget/native_widget_mac_unittest.mm b/ui/views/widget/native_widget_mac_unittest.mm index 9ed62404..4ad18cc 100644 --- a/ui/views/widget/native_widget_mac_unittest.mm +++ b/ui/views/widget/native_widget_mac_unittest.mm
@@ -103,7 +103,7 @@ const float kScaleFactor = 1.0f; ui::CALayerFrameSink* ca_layer_frame_sink = ui::CALayerFrameSink::FromAcceleratedWidget( - bridge_->compositor_widget_->accelerated_widget()); + bridge_->compositor_->widget()->accelerated_widget()); gfx::CALayerParams ca_layer_params; ca_layer_params.is_empty = false; ca_layer_params.pixel_size = size;