Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Side by Side Diff: content/browser/renderer_host/render_widget_host_impl.cc

Issue 2611943003: Early return in ::SetTooltipText in case GetView returns null (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_impl.h" 5 #include "content/browser/renderer_host/render_widget_host_impl.h"
6 6
7 #include <math.h> 7 #include <math.h>
8 8
9 #include <set> 9 #include <set>
10 #include <tuple> 10 #include <tuple>
(...skipping 1741 matching lines...) Expand 10 before | Expand all | Expand 10 after
1752 delegate_->GetInputEventRouter()->OnHittestData(params); 1752 delegate_->GetInputEventRouter()->OnHittestData(params);
1753 } 1753 }
1754 1754
1755 void RenderWidgetHostImpl::OnClose() { 1755 void RenderWidgetHostImpl::OnClose() {
1756 ShutdownAndDestroyWidget(true); 1756 ShutdownAndDestroyWidget(true);
1757 } 1757 }
1758 1758
1759 void RenderWidgetHostImpl::OnSetTooltipText( 1759 void RenderWidgetHostImpl::OnSetTooltipText(
1760 const base::string16& tooltip_text, 1760 const base::string16& tooltip_text,
1761 WebTextDirection text_direction_hint) { 1761 WebTextDirection text_direction_hint) {
1762 if (!GetView())
1763 return;
1764
1762 // First, add directionality marks around tooltip text if necessary. 1765 // First, add directionality marks around tooltip text if necessary.
1763 // A naive solution would be to simply always wrap the text. However, on 1766 // A naive solution would be to simply always wrap the text. However, on
1764 // windows, Unicode directional embedding characters can't be displayed on 1767 // windows, Unicode directional embedding characters can't be displayed on
1765 // systems that lack RTL fonts and are instead displayed as empty squares. 1768 // systems that lack RTL fonts and are instead displayed as empty squares.
1766 // 1769 //
1767 // To get around this we only wrap the string when we deem it necessary i.e. 1770 // To get around this we only wrap the string when we deem it necessary i.e.
1768 // when the locale direction is different than the tooltip direction hint. 1771 // when the locale direction is different than the tooltip direction hint.
1769 // 1772 //
1770 // Currently, we use element's directionality as the tooltip direction hint. 1773 // Currently, we use element's directionality as the tooltip direction hint.
1771 // An alternate solution would be to set the overall directionality based on 1774 // An alternate solution would be to set the overall directionality based on
1772 // trying to detect the directionality from the tooltip text rather than the 1775 // trying to detect the directionality from the tooltip text rather than the
1773 // element direction. One could argue that would be a preferable solution 1776 // element direction. One could argue that would be a preferable solution
1774 // but we use the current approach to match Fx & IE's behavior. 1777 // but we use the current approach to match Fx & IE's behavior.
1775 base::string16 wrapped_tooltip_text = tooltip_text; 1778 base::string16 wrapped_tooltip_text = tooltip_text;
1776 if (!tooltip_text.empty()) { 1779 if (!tooltip_text.empty()) {
1777 if (text_direction_hint == blink::WebTextDirectionLeftToRight) { 1780 if (text_direction_hint == blink::WebTextDirectionLeftToRight) {
1778 // Force the tooltip to have LTR directionality. 1781 // Force the tooltip to have LTR directionality.
1779 wrapped_tooltip_text = 1782 wrapped_tooltip_text =
1780 base::i18n::GetDisplayStringInLTRDirectionality(wrapped_tooltip_text); 1783 base::i18n::GetDisplayStringInLTRDirectionality(wrapped_tooltip_text);
1781 } else if (text_direction_hint == blink::WebTextDirectionRightToLeft && 1784 } else if (text_direction_hint == blink::WebTextDirectionRightToLeft &&
1782 !base::i18n::IsRTL()) { 1785 !base::i18n::IsRTL()) {
1783 // Force the tooltip to have RTL directionality. 1786 // Force the tooltip to have RTL directionality.
1784 base::i18n::WrapStringWithRTLFormatting(&wrapped_tooltip_text); 1787 base::i18n::WrapStringWithRTLFormatting(&wrapped_tooltip_text);
1785 } 1788 }
1786 } 1789 }
1787 if (GetView()) 1790 view_->SetTooltipText(wrapped_tooltip_text);
1788 view_->SetTooltipText(wrapped_tooltip_text);
1789 } 1791 }
1790 1792
1791 void RenderWidgetHostImpl::OnUpdateScreenRectsAck() { 1793 void RenderWidgetHostImpl::OnUpdateScreenRectsAck() {
1792 waiting_for_screen_rects_ack_ = false; 1794 waiting_for_screen_rects_ack_ = false;
1793 if (!view_) 1795 if (!view_)
1794 return; 1796 return;
1795 1797
1796 if (view_->GetViewBounds() == last_view_screen_rect_ && 1798 if (view_->GetViewBounds() == last_view_screen_rect_ &&
1797 view_->GetBoundsInRootWindow() == last_window_screen_rect_) { 1799 view_->GetBoundsInRootWindow() == last_window_screen_rect_) {
1798 return; 1800 return;
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
2512 // different from the receiver's. 2514 // different from the receiver's.
2513 file_system_file.url = 2515 file_system_file.url =
2514 GURL(storage::GetIsolatedFileSystemRootURIString( 2516 GURL(storage::GetIsolatedFileSystemRootURIString(
2515 file_system_url.origin(), filesystem_id, std::string()) 2517 file_system_url.origin(), filesystem_id, std::string())
2516 .append(register_name)); 2518 .append(register_name));
2517 file_system_file.filesystem_id = filesystem_id; 2519 file_system_file.filesystem_id = filesystem_id;
2518 } 2520 }
2519 } 2521 }
2520 2522
2521 } // namespace content 2523 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698