diff options
author | jered@chromium.org <jered@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 18:14:01 +0000 |
---|---|---|
committer | jered@chromium.org <jered@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-24 18:14:01 +0000 |
commit | bc9c14cbebf55619b12e47abf819cca908b806c9 (patch) | |
tree | 35c630b4b256c7649f8e3a7cd82e9cf7259355dc /chrome/chrome_tests_unit.gypi | |
parent | 126696461f8b12bdca9a7ab583ad91ac8ec62107 (diff) | |
download | chromium_src-bc9c14cbebf55619b12e47abf819cca908b806c9.zip chromium_src-bc9c14cbebf55619b12e47abf819cca908b806c9.tar.gz chromium_src-bc9c14cbebf55619b12e47abf819cca908b806c9.tar.bz2 |
Fixing iframe jank in the local omnibox popup.
1) Previously we created and loaded a new iframe for each suggestion.
Suggestion data was served from the renderer by rewriting
chrome-search://suggestion to data: URLs. This turned out not to be
performant and suffered from other issues like showing a load spinner.
Instead, this change creates one set of iframes with the chrome-search
origin and uses a controlling iframe to coordinate updating their DOMs
with new suggestions. To preserve the chrome-search origin for all the
communicating iframes, it no longer rewrites them as data: URLs and
instead serves data from a URLDataSource in the browser.
2) For flicker free rendering, old suggestion iframes must be hidden in
the same JS context as new ones are shown. Since postMessage() is async,
this necessarily means we must render one set of suggestions while
showing another (i.e. double buffer). This change modifies the local
omnibox popup JS to do that.
3) Several styling and rendering issues are resolved, such as hover,
resize and overflow behavior and positioning. I only tested LTR and not
RTL, so this change may not address any LTR issues.
TEST=Open an incognito window and start typing. Click on suggestions,
arrow up/down, hover, and generally try to break things.
BUG=223608
Review URL: https://codereview.chromium.org/13375003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196184 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/chrome_tests_unit.gypi')
-rw-r--r-- | chrome/chrome_tests_unit.gypi | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi index a234ef1..c5a90ff 100644 --- a/chrome/chrome_tests_unit.gypi +++ b/chrome/chrome_tests_unit.gypi @@ -1047,6 +1047,7 @@ 'browser/safe_browsing/signature_util_win_unittest.cc', 'browser/safe_browsing/two_phase_uploader_unittest.cc', 'browser/search/search_unittest.cc', + 'browser/search/suggestion_source_unittest.cc', 'browser/search_engines/search_host_to_urls_map_unittest.cc', 'browser/search_engines/search_provider_install_data_unittest.cc', 'browser/search_engines/template_url_fetcher_unittest.cc', |