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

Side by Side Diff: mojo/services/native_viewport/native_viewport_android.cc

Issue 65883002: mojo_shell crashes on Linux (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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
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 "mojo/services/native_viewport/native_viewport_android.h" 5 #include "mojo/services/native_viewport/native_viewport_android.h"
6 6
7 #include <android/native_window_jni.h> 7 #include <android/native_window_jni.h>
8 #include "mojo/services/native_viewport/android/mojo_viewport.h" 8 #include "mojo/services/native_viewport/android/mojo_viewport.h"
9 #include "mojo/shell/context.h" 9 #include "mojo/shell/context.h"
10 10
11 namespace mojo { 11 namespace mojo {
12 namespace services { 12 namespace services {
13 13
14 NativeViewportAndroid::NativeViewportAndroid(NativeViewportDelegate* delegate) 14 NativeViewportAndroid::NativeViewportAndroid(shell::Context* context,
15 : delegate_(delegate), 15 NativeViewportDelegate* delegate)
16 : context_(context),
17 delegate_(delegate),
16 window_(NULL), 18 window_(NULL),
17 weak_factory_(this) { 19 weak_factory_(this) {
18 } 20 }
19 21
20 NativeViewportAndroid::~NativeViewportAndroid() { 22 NativeViewportAndroid::~NativeViewportAndroid() {
21 if (window_) 23 if (window_)
22 ReleaseWindow(); 24 ReleaseWindow();
23 } 25 }
24 26
25 void NativeViewportAndroid::OnNativeWindowCreated(ANativeWindow* window) { 27 void NativeViewportAndroid::OnNativeWindowCreated(ANativeWindow* window) {
(...skipping 14 matching lines...) Expand all
40 42
41 void NativeViewportAndroid::ReleaseWindow() { 43 void NativeViewportAndroid::ReleaseWindow() {
42 ANativeWindow_release(window_); 44 ANativeWindow_release(window_);
43 window_ = NULL; 45 window_ = NULL;
44 } 46 }
45 47
46 gfx::Size NativeViewportAndroid::GetSize() { 48 gfx::Size NativeViewportAndroid::GetSize() {
47 return size_; 49 return size_;
48 } 50 }
49 51
52 void NativeViewportAndroid::Open() {
53 MojoViewportInit* init = new MojoViewportInit();
54 init->ui_runner = context_->task_runners()->ui_runner();
55 init->native_viewport = GetWeakPtr();
56
57 context_->task_runners()->java_runner()->PostTask(FROM_HERE,
58 base::Bind(MojoViewport::CreateForActivity,
59 context_->activity(),
60 init));
61 }
62
50 void NativeViewportAndroid::Close() { 63 void NativeViewportAndroid::Close() {
51 // TODO(beng): close activity containing MojoView? 64 // TODO(beng): close activity containing MojoView?
52 65
53 // TODO(beng): perform this in response to view destruction. 66 // TODO(beng): perform this in response to view destruction.
54 delegate_->OnDestroyed(); 67 delegate_->OnDestroyed();
55 } 68 }
56 69
57 // static 70 // static
58 scoped_ptr<NativeViewport> NativeViewport::Create( 71 scoped_ptr<NativeViewport> NativeViewport::Create(
59 shell::Context* context, 72 shell::Context* context,
60 NativeViewportDelegate* delegate) { 73 NativeViewportDelegate* delegate) {
61 scoped_ptr<NativeViewportAndroid> native_viewport( 74 return scoped_ptr<NativeViewport>(
62 new NativeViewportAndroid(delegate)); 75 new NativeViewportAndroid(context, delegate)).Pass();
63
64 MojoViewportInit* init = new MojoViewportInit();
65 init->ui_runner = context->task_runners()->ui_runner();
66 init->native_viewport = native_viewport->GetWeakPtr();
67
68 context->task_runners()->java_runner()->PostTask(FROM_HERE,
69 base::Bind(MojoViewport::CreateForActivity,
70 context->activity(),
71 init));
72
73 return scoped_ptr<NativeViewport>(native_viewport.Pass());
74 } 76 }
75 77
76 } // namespace services 78 } // namespace services
77 } // namespace mojo 79 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698