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

Side by Side Diff: ui/views_content_client/views_content_client_main_parts_mac.mm

Issue 283053002: Add compositing, layers to app_list_demo Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase onto master -- probably slightly broken Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « ui/views_content_client/views_content_client_main_parts.h ('k') | 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "base/files/file_path.h" 7 #include "base/files/file_path.h"
8 #include "base/mac/scoped_nsobject.h" 8 #include "base/mac/scoped_nsobject.h"
9 #include "base/path_service.h" 9 #include "base/path_service.h"
10 #include "content/public/browser/context_factory.h"
10 #include "content/public/common/content_paths.h" 11 #include "content/public/common/content_paths.h"
11 #include "content/shell/browser/shell_browser_context.h" 12 #include "content/shell/browser/shell_browser_context.h"
13 #include "ui/views/test/desktop_test_views_delegate.h"
12 #include "ui/views_content_client/views_content_client.h" 14 #include "ui/views_content_client/views_content_client.h"
13 #include "ui/views_content_client/views_content_client_main_parts.h" 15 #include "ui/views_content_client/views_content_client_main_parts.h"
14 16
15 // A simple NSApplicationDelegate that provides a basic mainMenu and can 17 // A simple NSApplicationDelegate that provides a basic mainMenu and can
16 // activate a task when the application has finished loading. 18 // activate a task when the application has finished loading.
17 @interface ViewsContentClientAppController : NSObject<NSApplicationDelegate> { 19 @interface ViewsContentClientAppController : NSObject<NSApplicationDelegate> {
18 @private 20 @private
19 base::Closure task_; 21 base::Closure task_;
20 } 22 }
21 23
(...skipping 11 matching lines...) Expand all
33 ViewsContentClientMainPartsMac( 35 ViewsContentClientMainPartsMac(
34 const content::MainFunctionParams& content_params, 36 const content::MainFunctionParams& content_params,
35 ViewsContentClient* views_content_client); 37 ViewsContentClient* views_content_client);
36 virtual ~ViewsContentClientMainPartsMac(); 38 virtual ~ViewsContentClientMainPartsMac();
37 39
38 // content::BrowserMainParts: 40 // content::BrowserMainParts:
39 virtual void PreMainMessageLoopRun() OVERRIDE; 41 virtual void PreMainMessageLoopRun() OVERRIDE;
40 42
41 private: 43 private:
42 base::scoped_nsobject<ViewsContentClientAppController> app_controller_; 44 base::scoped_nsobject<ViewsContentClientAppController> app_controller_;
45 scoped_ptr<views::ViewsDelegate> composited_views_delegate_;
43 46
44 DISALLOW_COPY_AND_ASSIGN(ViewsContentClientMainPartsMac); 47 DISALLOW_COPY_AND_ASSIGN(ViewsContentClientMainPartsMac);
45 }; 48 };
46 49
50 class CompositedTestViewsDelegate : public views::DesktopTestViewsDelegate {
51 public:
52 virtual ui::ContextFactory* GetContextFactory() OVERRIDE {
53 return content::GetContextFactory();
54 }
55 };
56
47 ViewsContentClientMainPartsMac::ViewsContentClientMainPartsMac( 57 ViewsContentClientMainPartsMac::ViewsContentClientMainPartsMac(
48 const content::MainFunctionParams& content_params, 58 const content::MainFunctionParams& content_params,
49 ViewsContentClient* views_content_client) 59 ViewsContentClient* views_content_client)
50 : ViewsContentClientMainParts(content_params, views_content_client) { 60 : ViewsContentClientMainParts(content_params, views_content_client) {
51 // Cache the child process path to avoid triggering an AssertIOAllowed. 61 // Cache the child process path to avoid triggering an AssertIOAllowed.
52 base::FilePath child_process_exe; 62 base::FilePath child_process_exe;
53 PathService::Get(content::CHILD_PROCESS_EXE, &child_process_exe); 63 PathService::Get(content::CHILD_PROCESS_EXE, &child_process_exe);
54 64
55 app_controller_.reset([[ViewsContentClientAppController alloc] init]); 65 app_controller_.reset([[ViewsContentClientAppController alloc] init]);
56 [[NSApplication sharedApplication] setDelegate:app_controller_]; 66 [[NSApplication sharedApplication] setDelegate:app_controller_];
57 } 67 }
58 68
59 void ViewsContentClientMainPartsMac::PreMainMessageLoopRun() { 69 void ViewsContentClientMainPartsMac::PreMainMessageLoopRun() {
60 ViewsContentClientMainParts::PreMainMessageLoopRun(); 70 ViewsContentClientMainParts::PreMainMessageLoopRun();
61 71
72 views_delegate_.reset(); // FIXME
73
74 // If run with --enable-delegated-renderer, the GPU channel factory and image
75 // transport factory for communicating with the GPU process should already be
76 // initialized. This is the default on Mac as of r281692. Otherwise, this file
77 // needs a content/browser dependency and some initialization steps here.
78 composited_views_delegate_.reset(new CompositedTestViewsDelegate);
79
62 // On Mac, the task must be deferred to applicationDidFinishLaunching. If not, 80 // On Mac, the task must be deferred to applicationDidFinishLaunching. If not,
63 // the widget can activate, but (even if configured) the mainMenu won't be 81 // the widget can activate, but (even if configured) the mainMenu won't be
64 // ready to switch over in the OSX UI, so it will look strange. 82 // ready to switch over in the OSX UI, so it will look strange.
65 NSWindow* window_context = nil; 83 NSWindow* window_context = nil;
66 [app_controller_ setTask:base::Bind(views_content_client()->task(), 84 [app_controller_ setTask:base::Bind(views_content_client()->task(),
67 base::Unretained(browser_context()), 85 base::Unretained(browser_context()),
68 base::Unretained(window_context))]; 86 base::Unretained(window_context))];
69 } 87 }
70 88
71 ViewsContentClientMainPartsMac::~ViewsContentClientMainPartsMac() { 89 ViewsContentClientMainPartsMac::~ViewsContentClientMainPartsMac() {
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 NSString* quitTitle = [@"Quit " stringByAppendingString:appName]; 127 NSString* quitTitle = [@"Quit " stringByAppendingString:appName];
110 [appMenu addItemWithTitle:quitTitle 128 [appMenu addItemWithTitle:quitTitle
111 action:@selector(terminate:) 129 action:@selector(terminate:)
112 keyEquivalent:@"q"]; 130 keyEquivalent:@"q"];
113 [appMenuItem setSubmenu:appMenu]; 131 [appMenuItem setSubmenu:appMenu];
114 132
115 task_.Run(); 133 task_.Run();
116 } 134 }
117 135
118 @end 136 @end
OLDNEW
« no previous file with comments | « ui/views_content_client/views_content_client_main_parts.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698