Skip to content

Commit ad2d9e7

Browse files
pakoitofacebook-github-bot
authored andcommitted
Forward VM version to inspector
Reviewed By: bnham Differential Revision: D6938018 fbshipit-source-id: c79853ddf835acab86a16ebd539874d29d3aa60a
1 parent b1d8af4 commit ad2d9e7

File tree

9 files changed

+30
-14
lines changed

9 files changed

+30
-14
lines changed

React/Inspector/RCTInspector.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
@interface RCTInspectorPage : NSObject
1616
@property (nonatomic, readonly) NSInteger id;
1717
@property (nonatomic, readonly) NSString *title;
18+
@property (nonatomic, readonly) NSString *vm;
1819
@end
1920

2021
@interface RCTInspector : NSObject

React/Inspector/RCTInspector.mm

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,11 @@ virtual void onDisconnect() override {
3838
@interface RCTInspectorPage () {
3939
NSInteger _id;
4040
NSString *_title;
41+
NSString *_vm;
4142
}
4243
- (instancetype)initWithId:(NSInteger)id
43-
title:(NSString *)title;
44+
title:(NSString *)title
45+
vm:(NSString *)vm;
4446
@end
4547

4648
@interface RCTInspectorLocalConnection () {
@@ -64,7 +66,8 @@ @implementation RCTInspector
6466
NSMutableArray<RCTInspectorPage *> *array = [NSMutableArray arrayWithCapacity:pages.size()];
6567
for (size_t i = 0; i < pages.size(); i++) {
6668
RCTInspectorPage *pageWrapper = [[RCTInspectorPage alloc] initWithId:pages[i].id
67-
title:@(pages[i].title.c_str())];
69+
title:@(pages[i].title.c_str())
70+
vm:@(pages[i].vm.c_str())];
6871
[array addObject:pageWrapper];
6972

7073
}
@@ -86,10 +89,12 @@ @implementation RCTInspectorPage
8689

8790
- (instancetype)initWithId:(NSInteger)id
8891
title:(NSString *)title
92+
vm:(NSString *)vm
8993
{
9094
if (self = [super init]) {
9195
_id = id;
9296
_title = title;
97+
_vm = vm;
9398
}
9499
return self;
95100
}

React/Inspector/RCTInspectorPackagerConnection.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ - (NSArray *)pages
155155
@"id": [@(page.id) stringValue],
156156
@"title": page.title,
157157
@"app": [[NSBundle mainBundle] bundleIdentifier],
158+
@"vm": page.vm,
158159
@"isLastBundleDownloadSuccess": bundleStatus == nil
159160
? [NSNull null]
160161
: @(bundleStatus.isLastBundleDownloadSuccess),

ReactAndroid/src/main/java/com/facebook/react/bridge/Inspector.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ private Inspector(HybridData hybridData) {
5151
public static class Page {
5252
private final int mId;
5353
private final String mTitle;
54+
private final String mVM;
5455

5556
public int getId() {
5657
return mId;
@@ -60,6 +61,10 @@ public String getTitle() {
6061
return mTitle;
6162
}
6263

64+
public String getVM() {
65+
return mVM;
66+
}
67+
6368
@Override
6469
public String toString() {
6570
return "Page{" +
@@ -69,9 +74,10 @@ public String toString() {
6974
}
7075

7176
@DoNotStrip
72-
private Page(int id, String title) {
77+
private Page(int id, String title, String vm) {
7378
mId = id;
7479
mTitle = title;
80+
mVM = vm;
7581
}
7682
}
7783

ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorPackagerConnection.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ private JSONArray getPages() throws JSONException {
154154
jsonPage.put("id", String.valueOf(page.getId()));
155155
jsonPage.put("title", page.getTitle());
156156
jsonPage.put("app", mPackageName);
157+
jsonPage.put("vm", page.getVM());
157158
jsonPage.put("isLastBundleDownloadSuccess", bundleStatus.isLastDownloadSucess);
158159
jsonPage.put("bundleUpdateTimestamp", bundleStatus.updateTimestamp);
159160
array.put(jsonPage);

ReactAndroid/src/main/jni/react/jni/JInspector.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ class RemoteConnection : public IRemoteConnection {
2828

2929
}
3030

31-
jni::local_ref<JPage::javaobject> JPage::create(int id, const std::string& title) {
32-
static auto constructor = javaClassStatic()->getConstructor<JPage::javaobject(jint, jni::local_ref<jni::JString>)>();
33-
return javaClassStatic()->newObject(constructor, id, jni::make_jstring(title));
31+
jni::local_ref<JPage::javaobject> JPage::create(int id, const std::string& title, const std::string& vm) {
32+
static auto constructor = javaClassStatic()->getConstructor<JPage::javaobject(jint, jni::local_ref<jni::JString>, jni::local_ref<jni::JString>)>();
33+
return javaClassStatic()->newObject(constructor, id, jni::make_jstring(title), jni::make_jstring(vm));
3434
}
3535

3636
void JRemoteConnection::onMessage(const std::string& message) const {
@@ -70,7 +70,7 @@ jni::local_ref<jni::JArrayClass<JPage::javaobject>> JInspector::getPages() {
7070
std::vector<InspectorPage> pages = inspector_->getPages();
7171
auto array = jni::JArrayClass<JPage::javaobject>::newArray(pages.size());
7272
for (size_t i = 0; i < pages.size(); i++) {
73-
(*array)[i] = JPage::create(pages[i].id, pages[i].title);
73+
(*array)[i] = JPage::create(pages[i].id, pages[i].title, pages[i].vm);
7474
}
7575
return array;
7676
}

ReactAndroid/src/main/jni/react/jni/JInspector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class JPage : public jni::JavaClass<JPage> {
1616
public:
1717
static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/Inspector$Page;";
1818

19-
static jni::local_ref<JPage::javaobject> create(int id, const std::string& title);
19+
static jni::local_ref<JPage::javaobject> create(int id, const std::string& title, const std::string& vm);
2020
};
2121

2222
class JRemoteConnection : public jni::JavaClass<JRemoteConnection> {

ReactCommon/jsinspector/InspectorInterfaces.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
#include <mutex>
1313
#include <unordered_map>
14+
#include <tuple>
1415

1516
namespace facebook {
1617
namespace react {
@@ -27,7 +28,7 @@ namespace {
2728

2829
class InspectorImpl : public IInspector {
2930
public:
30-
int addPage(const std::string& title, ConnectFunc connectFunc) override;
31+
int addPage(const std::string& title, const std::string& vm, ConnectFunc connectFunc) override;
3132
void removePage(int pageId) override;
3233

3334
std::vector<InspectorPage> getPages() const override;
@@ -38,15 +39,15 @@ class InspectorImpl : public IInspector {
3839
private:
3940
mutable std::mutex mutex_;
4041
int nextPageId_{1};
41-
std::unordered_map<int, std::string> titles_;
42+
std::unordered_map<int, std::tuple<std::string, std::string>> titles_;
4243
std::unordered_map<int, ConnectFunc> connectFuncs_;
4344
};
4445

45-
int InspectorImpl::addPage(const std::string& title, ConnectFunc connectFunc) {
46+
int InspectorImpl::addPage(const std::string& title, const std::string& vm, ConnectFunc connectFunc) {
4647
std::lock_guard<std::mutex> lock(mutex_);
4748

4849
int pageId = nextPageId_++;
49-
titles_[pageId] = title;
50+
titles_[pageId] = std::make_tuple(title, vm);
5051
connectFuncs_[pageId] = std::move(connectFunc);
5152

5253
return pageId;
@@ -64,7 +65,7 @@ std::vector<InspectorPage> InspectorImpl::getPages() const {
6465

6566
std::vector<InspectorPage> inspectorPages;
6667
for (auto& it : titles_) {
67-
inspectorPages.push_back(InspectorPage{it.first, it.second});
68+
inspectorPages.push_back(InspectorPage{it.first, std::get<0>(it.second), std::get<1>(it.second)});
6869
}
6970

7071
return inspectorPages;

ReactCommon/jsinspector/InspectorInterfaces.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class IDestructible {
2525
struct InspectorPage {
2626
const int id;
2727
const std::string title;
28+
const std::string vm;
2829
};
2930

3031
/// IRemoteConnection allows the VM to send debugger messages to the client.
@@ -52,7 +53,7 @@ class IInspector : public IDestructible {
5253
virtual ~IInspector() = 0;
5354

5455
/// addPage is called by the VM to add a page to the list of debuggable pages.
55-
virtual int addPage(const std::string& title, ConnectFunc connectFunc) = 0;
56+
virtual int addPage(const std::string& title, const std::string& vm, ConnectFunc connectFunc) = 0;
5657

5758
/// removePage is called by the VM to remove a page from the list of
5859
/// debuggable pages.

0 commit comments

Comments
 (0)