| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
Reenable content script messaging test.
BUG=no
TEST=no
Review URL: http://codereview.chromium.org/155887
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21324 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=17129
Review URL: http://codereview.chromium.org/155946
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21323 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This eliminates the delay timer in the popup view, and also eliminates the coalesce timer in the controller. Instead, we simply coalesce until we're done, we have at least as many results as we're already showing, or the "maximum delay timeout" (300 ms) fires, indicating we've gone too long without updating.
Additionally, in order to be more responsive when typing rapidly, the controller updates observers immediately with the available results from a previous query if one is still running when a new query is started. While in theory this seems like it might produce flicker, in practice _not_ having it also results in flicker (just less-predictable flicker) since the 300 ms timeout starts kicking in at random times relative to when new keys are pressed.
I also fixed a few small problems with leaving 1-pixel high white rows at the bottom of the popup during rapid typing (which weren't visible before this change since the popup would never shrink during rapid typing).
After eliminating the timeout in the popup view, I was able to refactor the code to be shorter since a few members and helper functions could all be inlined. Then I added some long comments and made things not much shorter after all :/. I also changed two other (self-contained) unrelated spots in the popup to be shorter.
Please patch this in locally and try how it feels. Things to test with this change vs. the old code vs. the old, old (original omnibox) code:
* Type one letter at a time with long pauses in between; see how flickery the popup is
* Type one letter (e.g. "a") and then type rapidly for a while; see how responsive the popup is
* Type words like "amazon", "compusa" and "comcast" at various different speeds and observe the flicker vs. responsiveness tradeoff
* Type or paste some long series of letters (that default to searching), then rapidly press and release the ctrl key
My hope is that this hits a good balance (it's very difficult to be both flicker-free and responsive, I view the previous two sets of code as being off first one side of the scale and then the other). Possible tweaks include the animation tweening mechanism and timing (I experimented with various different speeds and linear tweening, nothing felt significantly better to me but my machine sucks w.r.t. animation quality) and tweaking the controller "max timeout" value and notification behavior upon starting a new query (I tried notifying only if two keys had been typed since the last notification, it didn't feel better).
BUG=none
TEST=see above
Review URL: http://codereview.chromium.org/149659
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21322 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on theme installation. It should not be displayed if the
theme was installed from our gallery URL.
I intend to fix this very soon, but I wanted it to make
this coming build, so I did this quick thing for now.
Also, I found another bug in ExtensionsService install
logic. There was a test, it was ensuring the wrong
behavior :(.
Review URL: http://codereview.chromium.org/155936
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21321 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Previously we assumed that the tab was immediately sized as requested, which was not always happening. This fixes a problem seen in RTL layout where the close button would be incorrectly positioned.
BUG=16756
TEST=Open the browser in a RTL language. Notice that the close buttons on tabs are positioned correctly.
Review URL: http://codereview.chromium.org/155942
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21320 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of failing the media playback pipeline
completely, this change will ignores all errors
reported by the browser about audio output streams.
This is the first step towards handling audio hardware
errors.
TEST=MediaTest.VideoBearTheora
Review URL: http://codereview.chromium.org/159205
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21318 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
It was a part of extension shelf not hiding fully.
TEST=On Linux, open any website with links and mouse hover over any link. There should be no gap between the status bubble and the bottom of the window.
http://crbug.com/17324
Review URL: http://codereview.chromium.org/155934
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21314 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Google" doesn't show correctly in a "New Tab" for RTL locales
Because of the bug in PosFromChar() (see bug report for detailed information), we actually calculate the width of the string ourselves using font.GetStringWidth().
BUG=http://crbug.com/2780
TEST=
1 Start Chrome with a *new user data directory* and make sure the UI language is Hebrew.
2 Type www.google.com in the omnibox and press Enter.
3 Close and re-open the browser.
4 Type character "h" in Ominibox
5 Message "Press Tab to search Google" should show correctly, not only "Tab" is displayed
Review URL: http://codereview.chromium.org/155789
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21312 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Glibc adds a field to struct tm, tm_zone, which contains a pointer to
a string for the current time zone. Since this makes struct tm a
non-POD data type, it only works for the non-thread-safe localtime()
call, not localtime_r().
However, V8 relies on it so this patch adds support for passing it
through our sandbox.
BUG=17458
http://codereview.chromium.org/159216
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21311 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
http://crbug.com/17013
TEST=Browse to www.google.com. Click in the field. Up-arrow should
go to beginning of line, down-arrow to end.
Review URL: http://codereview.chromium.org/155871
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21310 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
window. Patch from viettrungluu@gmail.com (Viet-Trung Luu).
BUG=12286
TEST=double-clicking tab strip and anything that may have regressed in bug 12505
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21308 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
(Doesn't display cookie details, otherwise working.)
BUG=11507
TEST=All cookie manager functions should work as expected, other than viewing the cookie details.
Review URL: http://codereview.chromium.org/159187
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21307 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=16226 (http://crbug.com/16226)
TEST=none.
Review URL: http://codereview.chromium.org/155831
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21305 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
text/plain before, which was giving us the html for a dragged image instead of the url of the image.
BUG=16165
TEST=Go to google.com. Drag the Google logo into the tabstrip. The image should open up in a new tab (or the current tab, depending on the drop).
Review URL: http://codereview.chromium.org/159212
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21304 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
don't make sense on Linux/Mac so disable them.
I think we don't want to have a app language option on Linux
since the standard way to do this is to use LANG or LC_ALL.
Update the locale ui test to set LC_ALL on Linux.
BUG=15359
Review URL: http://codereview.chromium.org/155819
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21295 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
TEST=Right click on bar --> Add Folder...
Type a name and it shows up as a folder in the bookmark bar.
(You can't do anything with it yet; sorry).
Right click on folder name --> Edit...
Make sure you can rename the folder.
Review URL: http://codereview.chromium.org/159183
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21293 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
interface now implements the
ShowHtmlDialog function which is needed to support HTML dialog popups like those displayed by Gears.'
Fixes http://b/issue?id=1963582
Bug=1963582
Review URL: http://codereview.chromium.org/159162
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21289 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=17408
TEST=Drag a thumbnail from the NNTP to your desktop of your bookmakrs
bar. The title should be used.
Review URL: http://codereview.chromium.org/159184
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21286 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
working. Only destroy the container widget and not the drop info itself when the drag leaves the tab strip; otherwise, we'll lose the drop information used to open the link.
BUG=none
TEST=Drag a link into the tab strip. The drop arrow should appear and disappear as the mouse enters and leaves the tab strip. Drop the link into the tab strip. The link should be opened in the new tab (or the current tab).
Review URL: http://codereview.chromium.org/159178
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21285 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
focus on Mac. This entails the following:
- getting notifications that the main window has become or lost key
window status (in BrowserWindowController) [new]
- ... which tells the RenderWidgetHostView(Mac) to (de)activate [new]
- ... which tells the RenderWidgetHost to (de)activate [new]
- ... which sends a ViewMsg_SetActive message [new message] to the
RenderView [new]
- ... which tells the WebView(Impl) to (de)activate [new]
- ... which tells its page()'s FocusController to (de)activate [new]
- ... which is now in WebKit-land.
N.B.: "Activate" is the nomenclature used in WebKit; "focus"/"blur" can
sometimes (kind of) mean the same thing, but is ambiguous, since "focus"
has a more specific meaning.
Added a WebView unit test, which currently only tests to make sure that
SetActive() (and IsActive() [also new]) work correctly. The changes to
the other classes aren't very testable since they don't actually do
anything (other than pass things along).
BUG=12507
TEST=webkit/glue/webkit_unittest.cc
Patch by viettrungluu@gmail.com (see http://codereview.chromium.org/159048 ),
r=avi
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21284 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
directly use these from nib files without some extra overhead.
Updated the generator to make things based off this subclass.
TEST=none
BUG=16764
Review URL: http://codereview.chromium.org/159197
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21280 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=http://crbug.com/17376
TEST=as in bug
Review URL: http://codereview.chromium.org/155875
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21273 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added a script to process a xib file and generate a localizer out of the resource constants it finds in the xib.
Update the MainMenu.xib to use a generated localizer.
Kill off the menu_localizer in favor of a generated one.
ui_localizer is a helper so each "localizer" is as small as possible.
Build some menus out of base strings and the product name like windows.
Added the dir generated for the localizers so we can load the header to directly create them (menubar one).
Enable the other 3 languages we were building to help test.
Made the context menu code use the new code for handling window's accelerators and ellipsis.
Added unittest for ui_localizer.
Opened http://crbug.com/17380 to track the problem with the menu titles so I can move on to other parts of the UI for now.
TEST=The main menu will have some items localized now (and more will be localizable in the TC).
BUG=16764
Review URL: http://codereview.chromium.org/155774
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21272 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/155914
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21269 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
omnibox when the button pressed is RELOAD, FORWARD, or BACK.
o Modified Browser::Reload(). Don't revert the bar when the user hit F5 or Ctrl-r.
BUG=15464
TEST=see the comment #3 of issue 15464
Review URL: http://codereview.chromium.org/155908
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21267 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
default browser.
BUG=17093
TEST=in GNOME, let Firefox set itself as the default after Chrome has set itself; Chrome should then detect that it is no longer the default
Review URL: http://codereview.chromium.org/155889
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21260 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
ascent and descent.
The tab text was previously one pixel too high. With this patch it matches Windows.
I think before Evan's recent font size patch, this issue was hidden by favorable rounding.
Review URL: http://codereview.chromium.org/159169
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21256 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=17393
TEST=drag nntp thumbnail to bookmark bar
Review URL: http://codereview.chromium.org/155900
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21255 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
releases off the item.
BUG=14518
TEST=see bug
Review URL: http://codereview.chromium.org/155902
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21254 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This lets Linux not bother to initialize NSS in the same way as the rest, but instead use the NSS symbols linked into the library, thereby preventing the NSS_Shutdown related bugs.
BUG=http://crbug.com/13929
TEST=Case 1: Start chrome. Use firefox import utility. Browse to some https site. Shouldn't crash. Case 2: Start chrome. Browse to some https site. Use firefox import utility. Continue browsing https sites. Shouldn't crash.
Review URL: http://codereview.chromium.org/159165
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21251 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/159124
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21248 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=11507
TEST=Open options, click change proxy, gnome-network-preferences should launch. If gnome isn't installed or running, LinuxProxyConfig wiki page should load.
Review URL: http://codereview.chromium.org/155792
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21246 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=None (no significant changes)
Review URL: http://codereview.chromium.org/159073
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21244 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Re-trying the previous CL. The last change got reverted because of valgrind
failure.
TBR=scherkus
Original CL: http://codereview.chromium.org/155471
Review URL: http://codereview.chromium.org/159167
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21242 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
name/url editing works. Get to the edotir from a context menu (Edit,
Add Page). Also Implement Open All Bookmarks menu item.
BUG=http://crbug.com/8381, http://crbug.com/17006
TEST=Add some bookmarks.
Right-click on a bookmark and pick Edit.
Test editing the name and URL. Make sure you can't add a bogus URL.
Right-click on a bookmark or the bar and Add Page.
Fill in name and URL fields to add a new bookmark.
Right-click Open All Bookmarks and make sure it hoses your machine.
Review URL: http://codereview.chromium.org/155874
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21241 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
string from the template was used with JST instead of the i18n template
and therefore it did not get recursively processed.
Also make sure we can support recursive handling of setting innerHTML
with the i18n template engine.
BUG=17377
TEST=Navigate to http://ponderer.org/tests/redirect-loop.py The error
page should show: The webpage at http://ponderer.org/tests/redirect-loop.py
has ...
Review URL: http://codereview.chromium.org/155884
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21240 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=9591
TEST=Go to the history page and make sure that "Delete history for this day"
still works and that it does not allow opening the "link" in a new window.
Review URL: http://codereview.chromium.org/155892
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21239 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
items.
This patch fixes two related problems:
1) Holding down back/forward now stay pressed while the menu is shown.
2) Buttons on the "toolbar" now emulate GTK's toolbar behaviour of only showing
the border on hover.
http://crbug.com/17308
http://crbug.com/17340
Review URL: http://codereview.chromium.org/159154
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21233 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
(theme provider could specify null, or no custom image is provided). Move DCHECK protection into real code.
BUG=17257
TEST=Run purify as described in bug.
Review URL: http://codereview.chromium.org/159146
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21232 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=Click arrow part of download item. A context menu should appear.
Review URL: http://codereview.chromium.org/159174
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21231 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
* The tab strip handles the lifetime of the tab widget, so don't try to increase the ref count in order to destroy the widget later.
* Use DeleteSoon when deleting the dragged tab in order to give gtk a chance to clean up its ref counts added during the drag operation.
BUG=12863
TEST=Extensive tab dragging. No crashes and the Linux UI valgrind bot should stay green.
Review URL: http://codereview.chromium.org/159166
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21230 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
added to a container, so we don't have the convenience of having it destroyed by the container.
BUG=none
TEST=Watch the Linux UI valgrind bot get a little greener.
Review URL: http://codereview.chromium.org/159157
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21228 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
the tab itself.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/159158
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21221 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Also included in this revert: r21165, r21180, and a couple valgrind suppression edits
TBR=huanr
Review URL: http://codereview.chromium.org/155876
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21216 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
when the section is larger.
Make the window menu look and behave more like a tooltip.
Return more recently closed windows and tabs when using the NNTP.
BUG=16539, 16835, 14963
TEST=Hide and show the tips section. More items (if there are more
items) should be shown. Hover over a closed window and the tooltip
should look like a tooltip on Vista/Win7
Review URL: http://codereview.chromium.org/155865
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21214 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
application.
This works by adding the top-level GtkWindow objects, such as BrowserWindowGtk
and BookmarkManagerGtk, to their own unique window groups. Without this change,
all top-level windows are added to a default application-wide window group.
This ensures that all grabs created with gtk_grab_add(...) only affect the
window group of the grabbed widget, as opposed to the entire application.
Note that gtk_window_set_modal(...) is implemented with gtk_grab_add(...) and
therefore is only modal to a specific window group.
In order for this to work correctly, changes were also made to the info
bubble and render widget popup (<select> tag) code. Since these widgets
also call gtk_grab_add(...), they must be added to the top level window
group to work correctly.
Test 1:
- Open two new chrome window: A and B
- Open "Save file as..." dialog in window A
- Verify that window A does not respond to keyboard or mouse events.
- Verify that window B does responde to keyboard and mouse events.
- Open "Save file as..." dialog in window B
- Verify that window B does not respond to keyboard or mouse events.
- Cancel dialog on window A.
- Verify that window A starts responding to keyboard and mouse events.
- Cancel dialog on window B.
- Verify that window B starts responding to keyboard and mouse events.
Test 2:
- Verify that <select> tag allows for correct selection of items.
Test 3:
- Click bookmark star and verify that info bubble works correctly.
BUG=8727
TEST=none
patch by Mohit Muthanna Cheppudira <mohit.muthanna [at] gmail>
original review url: <http://codereview.chromium.org/155852>
Review URL: http://codereview.chromium.org/159147
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21207 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/155860
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21206 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=Install a theme, notice that the download shelf now at least somewhat fits with the new theme.
Review URL: http://codereview.chromium.org/159126
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21205 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
handled in original code are addressed, for example the input method in password
box case.
The most important change in this CL is the change to key event processing flow.
In old code, a key event will first be sent to webkit then dispatched to IME
for filtering. With this CL, a key event will first be dispatched to IME for
filtering, then how to send the event to webkit is decided by the filtering
result.
This CL tries to emulate the keyboard input behavior on Windows as much as
possible. For example, if a keydown event is filtered by IME, then its virtual
key code will be changed to VK_PROCESSKEY(0xE5) to prevent webkit from
processing it again. This behavior can workaround bug 16281.
To test this CL, you may cut and save following html code into a file and open
it in chrome.
------------------8<----cut here----->8---------------------
<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script>
function keyEventHandler(event) {
var props = [ "type", "charCode", "keyCode", "altKey",
"ctrlKey", "shiftKey", "metaKey" ];
var info = document.getElementById('info');
var s = '';
for (var i in props) {
s += props[i] + ':' + event[props[i]] + ' ';
}
info.value += s + '\n';
}
function textEventHandler(event) {
info.value += "type:" + event['type'] + " data:" + event['data'] + '\n';
}
function passwordChangeEventHandler(event) {
var input2 = document.getElementById('input2');
info.value += "password:" + input2.value + '\n';
}
function onLoad() {
var input = document.getElementById('input');
input.addEventListener('keydown', keyEventHandler, false);
input.addEventListener('keyup', keyEventHandler, false);
input.addEventListener('keypress', keyEventHandler, false);
input.addEventListener('textInput', textEventHandler, false);
var input2 = document.getElementById('input2');
input2.addEventListener('change', passwordChangeEventHandler, false);
}
</script>
</head><body onload="onLoad()">
<input id="input" size="20">
<input id="input2" type="password" size="20">
<p>
<textarea id="info" rows="40" cols="150"></textarea>
</p></body></html>
------------------8<----cut here----->8---------------------
This CL was confirmed to fix following issues:
BUG=16281 "arrow keys and backspace/delete keys move/delete two characters at a
time when xim immodule is used"
BUG=16282 "Disable IMEs in a password input"
BUG=16596 "fcitx (chinese input method) not working in ubuntu 9.04"
BUG=16659 "Crash near RenderWidgetHostViewGtk::IMEUpdateStatus"
BUG=16699 "Can't move cursor to omnibox and use input method if cursor is
currently in a text input box in web page."
BUG=16796 "Input method issue: When inputting text in a text box, if there is a
composition string then pressing Backspace or Delete will cause the composition
string be cleared and the text box refuses to accept any further input.
All tests assume above html code is used.
TEST=Start scim with "scim -d" and start chrome with GTK_IM_MODULE=xim and
XMODIFIERS=@im=SCIM. Type something in input box, eg. "hello", then press
backspace, to see if only one character is deleted.
TEST=Move cursor to password input box, press ctrl-space to see if input method
is not activated. Switch keyboard layout to Canadian-French then type a'[{' key
and an 'a' key, then press enter, to see if a Latin character "U+00E2" is
inputted in password box.
TEST=Install fcitx with "sudo apt-get install fcitx" (assume you are using
Ubuntu/Debian). Open a terminal, export XMODIFIERS=@im=fcitx and
GTK_IM_MODULE=xim then run fcitx, then start chrome. Move cursor into an input
box, press ctrl-space and input something, eg. "nihao" then press space. Check
if some Chinese characters are inputted.
TEST=Start chrome with GTK_IM_MODULE=scim. Move cursor into a text input box
then move into a password box, chrome should not crash.
TEST=Move cursor into a text input box, then click omnibox, and see if the text
input box has lost focus. Press ctrl-space to activate input method, then type
something, and see of the input goes into omnibox.
TEST=Move cursor into a text input box and enable a Chinese Pinyin input method,
then type something, eg. "dajiahao", make sure a composition string is displayed
in the text input box, then press backspace and see if there is still a
composition string and backspace is handled by input method.
patch by James Su <james.su [at] gmail>
original review URL: <http://codereview.chromium.org/149755>
Review URL: http://codereview.chromium.org/155869
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21203 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
- NativeViewHostGtk::RemovedFromWidget crashes due to WidgetGtk::window_contents_ being NULL... basically when RemovedFromWidget is called from the RootView's dtor, the window_contents_ and widget_ properties of the containing WidgetGtk are NULL. It seems acceptable to not clean up in this case.
- TabContentsViewGtk dtor needs to call CloseNow(). This is similar to ~TabContents() calling DestroyWindow on the view's HWND. Without this, the TabContentsViewGtk object was destroyed but the corresponding GtkWidget wasn't, and so subsequent signal handlers would crash.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/159130
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21202 0039d316-1c4b-4281-b951-d872f2087c98
|