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

Side by Side Diff: content/browser/theme_helper_mac.mm

Issue 2400313002: Convert miscellaneous RenderThreadImpl messages to mojom (Closed)
Patch Set: rebase Created 4 years, 2 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 | « content/browser/plugin_service_impl.cc ('k') | content/common/native_types.mojom » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/theme_helper_mac.h" 5 #include "content/browser/theme_helper_mac.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/mac/mac_util.h" 10 #include "base/mac/mac_util.h"
11 #include "base/strings/sys_string_conversions.h" 11 #include "base/strings/sys_string_conversions.h"
12 #include "content/browser/renderer_host/render_process_host_impl.h" 12 #include "content/browser/renderer_host/render_process_host_impl.h"
13 #include "content/common/renderer.mojom.h"
13 #include "content/common/view_messages.h" 14 #include "content/common/view_messages.h"
14 #include "content/public/browser/browser_thread.h" 15 #include "content/public/browser/browser_thread.h"
15 #include "content/public/browser/notification_service.h" 16 #include "content/public/browser/notification_service.h"
16 #include "content/public/browser/notification_types.h" 17 #include "content/public/browser/notification_types.h"
17 #include "content/public/browser/render_process_host.h" 18 #include "content/public/browser/render_process_host.h"
18 #include "content/public/common/content_switches.h" 19 #include "content/public/common/content_switches.h"
19 20
20 using content::RenderProcessHost; 21 using content::RenderProcessHost;
21 using content::RenderProcessHostImpl; 22 using content::RenderProcessHostImpl;
22 using content::ThemeHelperMac; 23 using content::ThemeHelperMac;
23 24
24 namespace { 25 namespace {
25 26
26 blink::WebScrollbarButtonsPlacement GetButtonPlacement() { 27 blink::WebScrollbarButtonsPlacement GetButtonPlacement() {
27 NSString* scrollbar_variant = [[NSUserDefaults standardUserDefaults] 28 NSString* scrollbar_variant = [[NSUserDefaults standardUserDefaults]
28 objectForKey:@"AppleScrollBarVariant"]; 29 objectForKey:@"AppleScrollBarVariant"];
29 if ([scrollbar_variant isEqualToString:@"Single"]) 30 if ([scrollbar_variant isEqualToString:@"Single"])
30 return blink::WebScrollbarButtonsPlacementSingle; 31 return blink::WebScrollbarButtonsPlacementSingle;
31 else if ([scrollbar_variant isEqualToString:@"DoubleMin"]) 32 else if ([scrollbar_variant isEqualToString:@"DoubleMin"])
32 return blink::WebScrollbarButtonsPlacementDoubleStart; 33 return blink::WebScrollbarButtonsPlacementDoubleStart;
33 else if ([scrollbar_variant isEqualToString:@"DoubleBoth"]) 34 else if ([scrollbar_variant isEqualToString:@"DoubleBoth"])
34 return blink::WebScrollbarButtonsPlacementDoubleBoth; 35 return blink::WebScrollbarButtonsPlacementDoubleBoth;
35 else 36 else
36 return blink::WebScrollbarButtonsPlacementDoubleEnd; 37 return blink::WebScrollbarButtonsPlacementDoubleEnd;
37 } 38 }
38 39
39 void FillScrollbarThemeParams(ViewMsg_UpdateScrollbarTheme_Params* params) { 40 void FillScrollbarThemeParams(
41 content::mojom::UpdateScrollbarThemeParams* params) {
40 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 42 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
41 43
42 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 44 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
43 [defaults synchronize]; 45 [defaults synchronize];
44 46
45 params->initial_button_delay = 47 params->initial_button_delay =
46 [defaults floatForKey:@"NSScrollerButtonDelay"]; 48 [defaults floatForKey:@"NSScrollerButtonDelay"];
47 params->autoscroll_button_delay = 49 params->autoscroll_button_delay =
48 [defaults floatForKey:@"NSScrollerButtonPeriod"]; 50 [defaults floatForKey:@"NSScrollerButtonPeriod"];
49 params->jump_on_track_click = 51 params->jump_on_track_click =
50 [defaults boolForKey:@"AppleScrollerPagingBehavior"]; 52 [defaults boolForKey:@"AppleScrollerPagingBehavior"];
51 params->preferred_scroller_style = 53 params->preferred_scroller_style =
52 ThemeHelperMac::GetPreferredScrollerStyle(); 54 ThemeHelperMac::GetPreferredScrollerStyle();
53 params->button_placement = GetButtonPlacement(); 55 params->button_placement = GetButtonPlacement();
54 } 56 }
55 57
56 ViewMsg_SystemColorsChanged* CreateSystemColorsChangedMessage() { 58 void SendSystemColorsChangedMessage(content::mojom::Renderer* renderer) {
57 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 59 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
58 60
59 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; 61 NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
60 [defaults synchronize]; 62 [defaults synchronize];
61 63
62 return new ViewMsg_SystemColorsChanged( 64 renderer->OnSystemColorsChanged(
63 [[defaults stringForKey:@"AppleAquaColorVariant"] intValue], 65 [[defaults stringForKey:@"AppleAquaColorVariant"] intValue],
64 base::SysNSStringToUTF8( 66 base::SysNSStringToUTF8(
65 [defaults stringForKey:@"AppleHighlightedTextColor"]), 67 [defaults stringForKey:@"AppleHighlightedTextColor"]),
66 base::SysNSStringToUTF8( 68 base::SysNSStringToUTF8(
67 [defaults stringForKey:@"AppleHighlightColor"])); 69 [defaults stringForKey:@"AppleHighlightColor"]));
68 } 70 }
69 71
70 } // namespace 72 } // namespace
71 73
72 @interface ScrollbarPrefsObserver : NSObject 74 @interface ScrollbarPrefsObserver : NSObject
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 134 }
133 135
134 + (void)behaviorPrefsChanged:(NSNotification*)notification { 136 + (void)behaviorPrefsChanged:(NSNotification*)notification {
135 [self notifyPrefsChangedWithRedraw:NO]; 137 [self notifyPrefsChangedWithRedraw:NO];
136 } 138 }
137 139
138 + (void)systemColorsChanged:(NSNotification*)notification { 140 + (void)systemColorsChanged:(NSNotification*)notification {
139 for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator()); 141 for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator());
140 !it.IsAtEnd(); 142 !it.IsAtEnd();
141 it.Advance()) { 143 it.Advance()) {
142 it.GetCurrentValue()->Send(CreateSystemColorsChangedMessage()); 144 SendSystemColorsChangedMessage(
145 it.GetCurrentValue()->GetRendererInterface());
143 } 146 }
144 } 147 }
145 148
146 + (void)notifyPrefsChangedWithRedraw:(BOOL)redraw { 149 + (void)notifyPrefsChangedWithRedraw:(BOOL)redraw {
147 ViewMsg_UpdateScrollbarTheme_Params params;
148 FillScrollbarThemeParams(&params);
149 params.redraw = redraw;
150
151 for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator()); 150 for (RenderProcessHost::iterator it(RenderProcessHost::AllHostsIterator());
152 !it.IsAtEnd(); 151 !it.IsAtEnd();
153 it.Advance()) { 152 it.Advance()) {
153 content::mojom::UpdateScrollbarThemeParamsPtr params =
154 content::mojom::UpdateScrollbarThemeParams::New();
155 FillScrollbarThemeParams(params.get());
156 params->redraw = redraw;
154 RenderProcessHostImpl* rphi = 157 RenderProcessHostImpl* rphi =
155 static_cast<RenderProcessHostImpl*>(it.GetCurrentValue()); 158 static_cast<RenderProcessHostImpl*>(it.GetCurrentValue());
156 rphi->RecomputeAndUpdateWebKitPreferences(); 159 rphi->RecomputeAndUpdateWebKitPreferences();
157 rphi->Send(new ViewMsg_UpdateScrollbarTheme(params)); 160 rphi->GetRendererInterface()->UpdateScrollbarTheme(std::move(params));
158 } 161 }
159 } 162 }
160 163
161 @end 164 @end
162 165
163 namespace content { 166 namespace content {
164 167
165 // static 168 // static
166 ThemeHelperMac* ThemeHelperMac::GetInstance() { 169 ThemeHelperMac* ThemeHelperMac::GetInstance() {
167 return base::Singleton<ThemeHelperMac, 170 return base::Singleton<ThemeHelperMac,
(...skipping 15 matching lines...) Expand all
183 ThemeHelperMac::~ThemeHelperMac() { 186 ThemeHelperMac::~ThemeHelperMac() {
184 } 187 }
185 188
186 void ThemeHelperMac::Observe(int type, 189 void ThemeHelperMac::Observe(int type,
187 const NotificationSource& source, 190 const NotificationSource& source,
188 const NotificationDetails& details) { 191 const NotificationDetails& details) {
189 DCHECK_EQ(NOTIFICATION_RENDERER_PROCESS_CREATED, type); 192 DCHECK_EQ(NOTIFICATION_RENDERER_PROCESS_CREATED, type);
190 193
191 // When a new RenderProcess is created, send it the initial preference 194 // When a new RenderProcess is created, send it the initial preference
192 // parameters. 195 // parameters.
193 ViewMsg_UpdateScrollbarTheme_Params params; 196 content::mojom::UpdateScrollbarThemeParamsPtr params =
194 FillScrollbarThemeParams(&params); 197 content::mojom::UpdateScrollbarThemeParams::New();
195 params.redraw = false; 198 FillScrollbarThemeParams(params.get());
199 params->redraw = false;
196 200
197 RenderProcessHostImpl* rphi = 201 RenderProcessHostImpl* rphi =
198 Source<content::RenderProcessHostImpl>(source).ptr(); 202 Source<content::RenderProcessHostImpl>(source).ptr();
199 rphi->RecomputeAndUpdateWebKitPreferences(); 203 rphi->RecomputeAndUpdateWebKitPreferences();
200 rphi->Send(new ViewMsg_UpdateScrollbarTheme(params)); 204
201 rphi->Send(CreateSystemColorsChangedMessage()); 205 content::mojom::Renderer* renderer = rphi->GetRendererInterface();
206 renderer->UpdateScrollbarTheme(std::move(params));
207 SendSystemColorsChangedMessage(renderer);
202 } 208 }
203 209
204 } // namespace content 210 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/plugin_service_impl.cc ('k') | content/common/native_types.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698