diff options
author | jshin@chromium.org <jshin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 22:30:18 +0000 |
---|---|---|
committer | jshin@chromium.org <jshin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-09-14 22:30:18 +0000 |
commit | a697f4c60ddb3b400a2cf900aa9786cd49723da9 (patch) | |
tree | 0daeb92013076663e80b41b4cb91fd7bbe35c08b /chrome/browser/tab_contents/tab_contents.h | |
parent | 6461b0d6c71c9daf0eb4223fd4169bce995378b5 (diff) | |
download | chromium_src-a697f4c60ddb3b400a2cf900aa9786cd49723da9.zip chromium_src-a697f4c60ddb3b400a2cf900aa9786cd49723da9.tar.gz chromium_src-a697f4c60ddb3b400a2cf900aa9786cd49723da9.tar.bz2 |
Fix for bug 2932: Chrome should not trigger page reloading when turn off auto detect
In order to fix the bug I added new interfaces to allow resetting the override encoding (including a new render message).
The new logic is as follows:
-) If the user turns auto-detect OFF, nothing happens (as requested in the bug description)
-) If the user turns auto-detect ON, then the page is reloaded with an empty override encoding
I.e., turning auto-detect on resets a previous override setting.
The reverse is not true, however: specifiying a new override setting will not turn auto-detect off.
BUG=2932
TEST=do the following steps, using the test file (encoding-gb18030.htm) attached to comment 14 of the original bug http://crbug.com/2932 :
1.) load the file while auto-detect is turned off
-> garbage is displayed
2.) turn auto-detect on
-> proper Chinese text should appear
-> in the encoding menu, Chinese encoding should be highlighted
3.) turn auto-detect off
-> proper Chinese text should remain
-> in the encoding menu, Chinese encoding should remain highlighted
4.) choose any other encoding
-> garbage is again displayed (in the new encoding)
5.) turn auto-detect on
-> proper Chinese text should again appear
-> in the encoding menu, Chinese should again be highlighted
Original Review: http://codereview.chromium.org/173265
Patch by Roland Steiner (rolandsteiner@google.com)
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26168 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents/tab_contents.h')
-rw-r--r-- | chrome/browser/tab_contents/tab_contents.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h index 30c29e9..ee1b5bc 100644 --- a/chrome/browser/tab_contents/tab_contents.h +++ b/chrome/browser/tab_contents/tab_contents.h @@ -234,6 +234,9 @@ class TabContents : public PageNavigator, const std::string& encoding() const { return encoding_; } void set_encoding(const std::string& encoding); + void reset_encoding() { + encoding_.clear(); + } // Internal state ------------------------------------------------------------ @@ -581,6 +584,12 @@ class TabContents : public PageNavigator, set_encoding(encoding); render_view_host()->SetPageEncoding(encoding); } + // Remove any user-defined override encoding and reload by sending down + // ViewMsg_ResetPageEncodingToDefault to the renderer. + void reset_override_encoding() { + reset_encoding(); + render_view_host()->ResetPageEncodingToDefault(); + } void WindowMoveOrResizeStarted() { render_view_host()->WindowMoveOrResizeStarted(); |