summaryrefslogtreecommitdiffstats
path: root/mojo/public/tools
Commit message (Collapse)AuthorAgeFilesLines
* Mojo bindings: Fix typemap includes.sammc2016-03-237-65/+99
| | | | | | | | | | | | | | | | | | | | | | | Previously, a header defining a StructTraits specialization could not include its corresponding generated mojom header, due to the mojom header including the StructTraits header. This required a brittle set of forward declarations to correctly avoid this; in practice, this mostly led to StructTraits that were nominally for a particular variant, but included the generated mojom header from the default variant. This CL fixes the issue by splitting typemap headers into public_headers, which define the native type and are included by the generated mojom header, and headers which define the StructTraits specialization for the native type and are only included by the generated mojom source file, allowing the StructTraits header to include the generated mojom header. BUG=596202 CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel Review URL: https://codereview.chromium.org/1821073002 Cr-Commit-Position: refs/heads/master@{#382893}
* Make mojo::Callback safe to copy across threads and destroy on any thread.amistry2016-03-211-6/+9
| | | | | | | | | | This brings the behaviour of mojo::Callback close to that of base::Callback. BUG=595939 Review URL: https://codereview.chromium.org/1819463002 Cr-Commit-Position: refs/heads/master@{#382349}
* Mojo C++ bindings: assume that all imported mojoms have the same variant as ↵yzshen2016-03-194-2/+14
| | | | | | | | | | | | current mojom. This CL also disable struct_traits_unittest because variant+typemap is not supported currently. BUG=596202,596162 Review URL: https://codereview.chromium.org/1816703002 Cr-Commit-Position: refs/heads/master@{#382143}
* Mojo C++ bindigns: fix generated namespace when variant is specified.yzshen2016-03-171-6/+15
| | | | | | | | | | | | | This fixed the issue that enum generated code didn't work when variant is specified. This is a quick fix, we need more fundermental improvement for variant handling code. BUG=595791 Review URL: https://codereview.chromium.org/1811853004 Cr-Commit-Position: refs/heads/master@{#381760}
* Mojo C++ bindings: introduce mojo::WTFArray.yzshen2016-03-152-5/+10
| | | | | | | | | | | | mojo::WTFArray is a thin wrapper around WTF::Vector. It is move-only and can express null array. You can move WTF::Vector in/out of mojo::WTFArray. If "--for_blink" is specified for the bindings generator, the generator will map mojo array to mojo::WTFArray BUG=583738 Review URL: https://codereview.chromium.org/1766093002 Cr-Commit-Position: refs/heads/master@{#381265}
* Switch StoragePartitionService interface to use url::Origin instead of mojo ↵jam2016-03-151-1/+1
| | | | | | | | | | string. BUG=586194 Review URL: https://codereview.chromium.org/1798113002 Cr-Commit-Position: refs/heads/master@{#381229}
* Mojo C++ bindings: support mapping mojo string to WTF::String.yzshen2016-03-148-13/+41
| | | | | | | | | | The generator now supports a "--for_blink" flag. When it is specified, the generator will map mojo string to WTF::String. BUG=583738 Review URL: https://codereview.chromium.org/1751563002 Cr-Commit-Position: refs/heads/master@{#381091}
* [mojo-sdk] Remove mojo_ignore_result and move C++ macros.h to bindings ↵amistry2016-03-111-0/+1
| | | | | | | | | | | | internal code. The one macro remaining in macros.h is only used by generated C++ code. BUG=534695 Review URL: https://codereview.chromium.org/1784743003 Cr-Commit-Position: refs/heads/master@{#380556}
* Revert of Reland: Mojo C++ bindings: replace '::' with '.' in the interface ↵yzshen2016-03-113-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | name. (patchset #2 id:20001 of https://codereview.chromium.org/1782543004/ ) Reason for revert: https://uberchromegw.corp.google.com/i/chromium.linux/builders/Android%20Tests%20%28dbg%29/builds/33342 Original issue's description: > Reland: Mojo C++ bindings: replace '::' with '.' in the interface name. > > Previously the |foo::Bar::Name_| field was "foo::Bar". With this change it > becomes "foo.Bar". > > Using C++-style namespace in the name doesn't makes too much sense because the > name should remain the same across different languages. > > The original CL was https://codereview.chromium.org/1778793004/ > > BUG=None > TBR=ben@chromium.org > > Committed: https://crrev.com/a061a917ebc0d16fb67d2644d93bfdca7eec92d3 > Cr-Commit-Position: refs/heads/master@{#380459} TBR=ben@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=None Review URL: https://codereview.chromium.org/1785803003 Cr-Commit-Position: refs/heads/master@{#380503}
* Reland: Mojo C++ bindings: replace '::' with '.' in the interface name.yzshen2016-03-103-4/+3
| | | | | | | | | | | | | | | | | Previously the |foo::Bar::Name_| field was "foo::Bar". With this change it becomes "foo.Bar". Using C++-style namespace in the name doesn't makes too much sense because the name should remain the same across different languages. The original CL was https://codereview.chromium.org/1778793004/ BUG=None TBR=ben@chromium.org Review URL: https://codereview.chromium.org/1782543004 Cr-Commit-Position: refs/heads/master@{#380459}
* Revert of Mojo C++ bindings: replace '::' with '.' in the interface name. ↵dpranke2016-03-103-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (patchset #3 id:40001 of https://codereview.chromium.org/1778793004/ ) Reason for revert: I think this broke the harness-tests/mojo-helpers.html layout test: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=harness-tests%2Fmojo-helpers.html https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux/builds/61800 Original issue's description: > Mojo C++ bindings: replace '::' with '.' in the interface name. > > Previously the |foo::Bar::Name_| field was "foo::Bar". With this change it > becomes "foo.Bar". > > Using C++-style namespace in the name doesn't makes too much sense because the > name should remain the same across different languages. > > BUG=None > > Committed: https://crrev.com/026e10b3842af957773aee40dc3736eecb7faa0c > Cr-Commit-Position: refs/heads/master@{#380301} TBR=ben@chromium.org,yzshen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=None Review URL: https://codereview.chromium.org/1771353009 Cr-Commit-Position: refs/heads/master@{#380328}
* Mojo C++ bindings: replace '::' with '.' in the interface name.yzshen2016-03-103-4/+3
| | | | | | | | | | | | | | Previously the |foo::Bar::Name_| field was "foo::Bar". With this change it becomes "foo.Bar". Using C++-style namespace in the name doesn't makes too much sense because the name should remain the same across different languages. BUG=None Review URL: https://codereview.chromium.org/1778793004 Cr-Commit-Position: refs/heads/master@{#380301}
* Mojo C++ bindings: remove the concept of "GenericInterface".yzshen2016-03-082-5/+0
| | | | | | | | | | | | | | | | Previously, if a variant Foo1 was generated for mojom interface Foo. Foo1::GenericInterface was defined as a typedef of the non-variant version Foo. This required the non-variant version to be generated and depended on by all variants. The purpose was to make different variants use the same [Associated]Interface{PtrInfo,Request} types. In fact, this is not very useful in real-world use cases. It should be very rare that users need to deal with multiple variants of the same mojom interface in a single same app. This change removes GenericInterface and makes [Associated]Interface{PtrInfo, Request} directly use Foo1 instead of Foo1::GenericInterface. BUG=590329 Review URL: https://codereview.chromium.org/1775613003 Cr-Commit-Position: refs/heads/master@{#379970}
* Remove Mojo bindings environment.Yuzhu Shen2016-03-082-9/+0
| | | | | | | | | BUG=585942 R=ben@chromium.org Review URL: https://codereview.chromium.org/1765243002 . Cr-Commit-Position: refs/heads/master@{#379839}
* Treat typemapped kinds as un-cloneabledarin2016-03-082-3/+6
| | | | | | | | BUG=592883 Review URL: https://codereview.chromium.org/1768373003 Cr-Commit-Position: refs/heads/master@{#379789}
* Remove MOJO_ARRAYSIZE and MOJO_WARN_UNUSED_RESULT.amistry2016-03-031-3/+3
| | | | | | | | BUG=534695 Review URL: https://codereview.chromium.org/1756723003 Cr-Commit-Position: refs/heads/master@{#378935}
* Remove MOJO_DISALLOW_COPY_AND_ASSIGN and MOJO_ALLOW_UNUSED_LOCAL.amistry2016-03-032-3/+3
| | | | | | | | BUG=534695 Review URL: https://codereview.chromium.org/1755003002 Cr-Commit-Position: refs/heads/master@{#378891}
* Mojo C++ bindings: pass SerializationContext to GetSerializedSize_() and ↵yzshen2016-03-026-42/+77
| | | | | | | | | | | | | | Serialize_(). The context will be useful for: - WTF::String serialization. We need to create WTF::StringUTF8Adapter objects for non-8-bit WTF::Strings and share them between GetSerializedSize_() and Serialize_(). - adding DCHECKs for sending associated interface pointers/requests over correct message pipe. BUG=583738 Review URL: https://codereview.chromium.org/1752133003 Cr-Commit-Position: refs/heads/master@{#378753}
* Mojo C++ bindings: Preparation for supporting WTF-firendly string/arrary/map.yzshen2016-02-294-7/+10
| | | | | | | | | | | | | | | | | This CL: - introduces serialization_forward.h to avoid circular includes or some verbose forward declarations. - introduces serialization.h so that users don't have to include indiviudal serialization files. - move most of the code of array_serialization.h into array_serialization_traits.h. It is intended to be shared with WTF array serialization. BUG=583738 Review URL: https://codereview.chromium.org/1747993002 Cr-Commit-Position: refs/heads/master@{#378317}
* Change Mojo URLs to structured names.ben2016-02-271-3/+7
| | | | | | | | | | | | | type:path Remove GURLs from all over the place. This eliminates the need to register Mojo and Exe schemes. BUG= CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation Review URL: https://codereview.chromium.org/1743473002 Cr-Commit-Position: refs/heads/master@{#378130}
* Mojo bindings: Add string support to StructTraitsrockot2016-02-233-7/+70
| | | | | | | | | | | | | | This CL enables string-typed fields in structs to be serialized and deserialized via StructTraits using base::StringPiece as an intermediate interface between the native type and the message buffer. BUG=577686 R=yzshen@chromium.org Review URL: https://codereview.chromium.org/1719183002 Cr-Commit-Position: refs/heads/master@{#376952}
* Reland "Mojo C++ bindings: support sync methods - part 2"yzshen2016-02-233-0/+9
| | | | | | | | | | | | | | | | | This CL introduces the correct re-entrancy behavior: when a sync call is waiting for response, allow incoming sync requests on the same thread to re-enter, async messages are queued until the sync call completes. The following will be in future CLs: - Support sync calls with associated interfaces. The original CL is at https://codereview.chromium.org/1713203002/ BUG=577699 Review URL: https://codereview.chromium.org/1723673002 Cr-Commit-Position: refs/heads/master@{#376892}
* Revert of Mojo C++ bindings: support sync methods - part 2 (patchset #6 ↵reillyg2016-02-223-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | id:100001 of https://codereview.chromium.org/1713203002/ ) Reason for revert: This change is triggering a use-of-uninitialized-value error on the Linux and Chrome OS MSan bots: https://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20ChromeOS%20MSan%20Tests/builds/7464 Original issue's description: > Mojo C++ bindings: support sync methods - part 2 > > This CL introduces the correct re-entrancy behavior: when a sync call is waiting > for response, allow incoming sync requests on the same thread to re-enter, async > messages are queued until the sync call completes. > > The following will be in future CLs: > - Support sync calls with associated interfaces. > > BUG=577699 > > Committed: https://crrev.com/083f46638041ba7d7620e47a7f9edf06982a9340 > Cr-Commit-Position: refs/heads/master@{#376751} TBR=jam@chromium.org,yzshen@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=577699 Review URL: https://codereview.chromium.org/1720093002 Cr-Commit-Position: refs/heads/master@{#376793}
* Mojo C++ bindings: support sync methods - part 2yzshen2016-02-223-0/+9
| | | | | | | | | | | | | | | This CL introduces the correct re-entrancy behavior: when a sync call is waiting for response, allow incoming sync requests on the same thread to re-enter, async messages are queued until the sync call completes. The following will be in future CLs: - Support sync calls with associated interfaces. BUG=577699 Review URL: https://codereview.chromium.org/1713203002 Cr-Commit-Position: refs/heads/master@{#376751}
* Mojo C++ bindings: support sync methods - part 1.yzshen2016-02-176-11/+120
| | | | | | | | | | | | | | | | | | | This CL: - adds support for [Sync] attribute; - generates C++ sync method signatures; - does the simplest thing to block and wait for results of sync calls. (Allows any messages of the same interface ptr to re-enter; disallows any messages of other message pipes to re-enter.) The following will be in future CLs: - Change the re-entrancy behavior. - Support sync calls with associated interfaces. BUG=577699 Review URL: https://codereview.chromium.org/1701423002 Cr-Commit-Position: refs/heads/master@{#376023}
* Mojo bindings environment: remove usage of logger and task tracker.yzshen2016-02-164-6/+4
| | | | | | | | BUG=585942 Review URL: https://codereview.chromium.org/1700683002 Cr-Commit-Position: refs/heads/master@{#375611}
* Mojo C++ bindings: make Array/Map/String non-null by default.yzshen2016-02-131-0/+3
| | | | | | | | | | | | | | | Array<X> a; // Default construct an empty array. Array<X> b(nullptr); // Construct a null array. a.clear(); // Set to an empty array. a = nullptr; // Set to a null array. BUG=579634 TEST=None Review URL: https://codereview.chromium.org/1693943002 Cr-Commit-Position: refs/heads/master@{#375304}
* Fix GYP dependency for precompiled Mojo jinja templatesrockot2016-02-111-0/+1
| | | | | | | | | | | | This makes the precompile target a hard_dependency, and ensures that it's always a dependency of any mojom gyp target. BUG=586189 TBR=yzshen@chromium.org Review URL: https://codereview.chromium.org/1693633002 Cr-Commit-Position: refs/heads/master@{#375012}
* [mojo] Delete third_party/mojorockot2016-02-101-1/+1
| | | | | | | | | | | All users are on the new EDK now. This wipes out third_party/mojo, updates all dependencies, and removes the use-new-edk flag. BUG=None Review URL: https://codereview.chromium.org/1676913002 Cr-Commit-Position: refs/heads/master@{#374631}
* Mojo C++ bindings: add aliases for [Associated]InterfaceRequest<Foo>.yzshen2016-02-092-6/+9
| | | | | | | | | | | This CL adds Foo[Associated]Request as aliases of [Associated]InterfaceRequest<Foo>. BUG=None Review URL: https://codereview.chromium.org/1683733002 Cr-Commit-Position: refs/heads/master@{#374445}
* [mojo-bindings] Add typemap_deps to mojom rulesrockot2016-02-052-13/+60
| | | | | | | | | | | | | | | This is a precursor to doing more mojom-on-ParamTraits conversions, extracted from https://codereview.chromium.org/1648533002 There's also some prerequisite cleanup here from that CL to reduce the noise there so it can be used as one example of this sort of conversion. BUG= Review URL: https://codereview.chromium.org/1671733002 Cr-Commit-Position: refs/heads/master@{#373848}
* Fix a name collision with |handles| in generated C++ mojom bindings.sammc2016-02-051-6/+6
| | | | | | | | | | | | | | | | | | | Previously, the mojom bindings generator generates methods of the form void Foo_Data::EncodePointersAndHandles( std::vector<mojo::Handle>* handles) { mojo::internal::Encode(&field1, handles); mojo::internal::Encode(&field2, handles); ... } If the struct contains a |handles| field (which corresponds to either a mojo struct field or a mojo method parameter named |handles|), the parameter would shadow the field in the call to Encode. This CL fixes this problem by qualifying field access with this->. Review URL: https://codereview.chromium.org/1668363002 Cr-Commit-Position: refs/heads/master@{#373726}
* Mojom: allow attributes that are not assigned a value.yzshen2016-02-052-5/+16
| | | | | | | | | | | | For example, with this CL you can use [Extensible], which is the same as [Extensible=true]. This CL also fixes the issue that boolean attribute values are not correctly evaluated: if you use the mojom keywords "true"/"false" there is parsing error; if you use "True"/"False" they are actually considered as strings. BUG=None Review URL: https://codereview.chromium.org/1671613002 Cr-Commit-Position: refs/heads/master@{#373707}
* [mojo-bindings] Fix structs containing native structsrockot2016-02-042-4/+4
| | | | | | | | | | | | | | | | | | | If a struct Foo contains a field of type Bar and Bar is itself a native-only struct, we generate non-compilable code for Foo_Reader. Because this case is otherwise fine and Reader interfaces are incomplete anyway, this CL stops generating this bad code. Test added to guard against regression. BUG=583715 R=yzshen@chromium.org Review URL: https://codereview.chromium.org/1666623005 Cr-Commit-Position: refs/heads/master@{#373460}
* Add a rule for collating mojo application manifests.ben2016-02-041-0/+56
| | | | | | | | | | | Introduces a new GN template for generating a manifest. Instantiations of this template can define dependencies which are collated with the parent to produce a meta (package) manifest absorbing the dependencies manifests. R=rockot,jam http://crbug.com/575858 Review URL: https://codereview.chromium.org/1660243002 Cr-Commit-Position: refs/heads/master@{#373396}
* [mojo-bindings] Support Arrays of native-only typesrockot2016-01-306-13/+81
| | | | | | | | | | | | | This allows arrays of native-only mojom types. They're serialized as array<array<uint8>>, and some new specializations for array serializers have been added to use the pickled-based native serialization code for each element. BUG=577686 Review URL: https://codereview.chromium.org/1641073002 Cr-Commit-Position: refs/heads/master@{#372516}
* Use gn_helpers to deserialize GN lists.brettw2016-01-291-7/+22
| | | | | | | | | | | | | | The Android build code doesn't properly unescape the GN lists, use the official Python GN parser instead of ast for the zip script. Document what should be done for build_utils, but don't fix it due to cast shell build errors as explained in the comment I added. Update mojo zip script to use the gn helpers. BUG=573132, 571022 Review URL: https://codereview.chromium.org/1618243004 Cr-Commit-Position: refs/heads/master@{#372461}
* [mojo] Fix unions in Java generated bindingslhchavez2016-01-281-8/+8
| | | | | | | | | | | | | | {{field.ordinal}} is not defined anymore, which was causing 'None's to get printed in the generated code. This change makes the tag generation consistnt with the C++ binding: it assigns ordinals in the order in which they appear in the file. BUG=582186 TEST=pipe_control_messages.mojom builds under Java Review URL: https://codereview.chromium.org/1646963002 Cr-Commit-Position: refs/heads/master@{#372185}
* Mojo C++ bindings: support enum validation.yzshen2016-01-2817-89/+133
| | | | | | | | | | | | By default, enums are not extensible, which means any unknown value will fail validation. If an enum may grow in the future, it needs to have [Extensible=True] attribute specified. In that case, the user code is responsible for handling unknown values properly. This CL doesn't add corresponding validation for JS or Java. BUG=404186 Review URL: https://codereview.chromium.org/1618963006 Cr-Commit-Position: refs/heads/master@{#371954}
* [mojo-bindings] Attribute "native" -> "Native"rockot2016-01-261-3/+3
| | | | | | | | | | | We conventionally use CamelCase attribute names. BUG=581169 R=yzshen@chromium.org Review URL: https://codereview.chromium.org/1637903002 Cr-Commit-Position: refs/heads/master@{#371528}
* Change mojo enums to be scoped enums in the generated C++ bindings.sammc2016-01-216-10/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | Some mojo enums were previously not proper enums: they were constants for bitfields. These have been replaced by const int32s in the mojoms: - mus.mojom.EventFlags - mus.mojom.MouseEventFlags - mus.mojom.ResizeBehavior - mus.mojom.WindowTree.AccessPolicy Some mojo enum values now conflict with macros (mostly on Windows) and needed to change: - mus.mojom.Cursor.NULL became CURSOR_NULL (again) - mus.mojom.KeyboardCode.DELETE became DELETE_KEY - mus.mojom.WindowManagerErrorCode.ERROR_ACCESS_DENIED became ACCESS_DENIED - device.usb.TransferDirection.IN became INBOUND - device.usb.TransferDirection.OUT became OUTBOUND - device.usb.TransferStatus.ERROR became TRANSFER_ERROR - device.NFCRecordType.OPAQUE became OPAQUE_RECORD - media.interfaces.Decryptor.Status.ERROR became DECRYPTION_ERROR - skia.AlphaType.OPAQUE became ALPHA_TYPE_OPAQUE Review URL: https://codereview.chromium.org/1527183003 Cr-Commit-Position: refs/heads/master@{#370632}
* Add an alias FooAssociatedPtrInfo for AssociatedInterfacePtrInfo<Foo>.yzshen2016-01-202-4/+8
| | | | | | | | | BUG=None TEST=None Review URL: https://codereview.chromium.org/1588303006 Cr-Commit-Position: refs/heads/master@{#370242}
* Precompile mojom bindings generator jinja templates.sammc2016-01-149-122/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the mojom bindings generator would use the jinja template files directly, requiring relatively expensive conversion to Python bytecode once for each mojom file. This adds template precompilation and changes the generator to use the precompiled bytecode. On a z620 running Linux, generating all mojo bindings using GN Before: real 0m11.729s user 4m22.588s sys 0m6.003s After: real 0m2.948s user 0m33.126s sys 0m4.564s GYP (many mojom files are only used in GN builds) Before: real 0m9.822s user 0m49.949s sys 0m1.046s After: real 0m5.354s user 0m4.776s sys 0m0.998s Review URL: https://codereview.chromium.org/1572213002 Cr-Commit-Position: refs/heads/master@{#369349}
* Convert Pass()→std::move() in generated Mojo bindings.dcheng2015-12-286-12/+13
| | | | | | | | | | | | ❆(੭ु ◜◡‾)੭ु⁾☃❆ BUG=557422 R=avi@chromium.org TBR=yzshen@chromium.org Review URL: https://codereview.chromium.org/1550733002 Cr-Commit-Position: refs/heads/master@{#366980}
* Switch to standard integer types in mojo/.Avi Drissman2015-12-211-0/+1
| | | | | | | | | BUG=138542 TBR=ben@chromium.org Review URL: https://codereview.chromium.org/1543603002 . Cr-Commit-Position: refs/heads/master@{#366417}
* [mojo] Support native types with mojom wire formatrockot2015-12-186-5/+124
| | | | | | | | | | | | | | | | | | | | | | | Add support for defining custom serialization routines to go between arbitrary C++ types and mojom struct types with no extra copying and no manual buffer management. Part of a series of changes to support custom mojom serialization: 1. https://codereview.chromium.org/1515423002 2. https://codereview.chromium.org/1517043004 3. https://codereview.chromium.org/1524693002 4. https://codereview.chromium.org/1520153002 5. https://codereview.chromium.org/1524613002 6. https://codereview.chromium.org/1526533002 7. This CL BUG=569669 TBR=yzshen@chromium.org Review URL: https://codereview.chromium.org/1524703002 Cr-Commit-Position: refs/heads/master@{#365998}
* [mojo] Add pickling support for native-only structsrockot2015-12-178-5/+77
| | | | | | | | | | | | | | | | | | | | | | This uses IPC::ParamTraits definitions as serializers for native-only structs declared in mojom. Part of a series of changes to support custom mojom serialization: 1. https://codereview.chromium.org/1515423002 2. https://codereview.chromium.org/1517043004 3. https://codereview.chromium.org/1524693002 4. https://codereview.chromium.org/1520153002 5. https://codereview.chromium.org/1524613002 6. This CL 7. https://codereview.chromium.org/1524703002 BUG=569669 TBR=jam@chromium.org for DEPS +ipc/ipc_param_traits.h Review URL: https://codereview.chromium.org/1526533002 Cr-Commit-Position: refs/heads/master@{#365847}
* [mojo] Allow value deserialization to failrockot2015-12-176-11/+22
| | | | | | | | | | | | | | | | | | | | | | | This changes mojo::Deserialize_ et al to return a bool, opening the door for deserialization code which performs custom validation (in addition to baked-in mojom wire format validation) and may reject incoming messages at the bindings layer. Part of a series of changes to support custom mojom serialization: 1. https://codereview.chromium.org/1515423002 2. https://codereview.chromium.org/1517043004 3. https://codereview.chromium.org/1524693002 4. This CL 5. https://codereview.chromium.org/1524613002 6. https://codereview.chromium.org/1526533002 7. https://codereview.chromium.org/1524703002 BUG=569669 Review URL: https://codereview.chromium.org/1520153002 Cr-Commit-Position: refs/heads/master@{#365728}
* [mojo] Add GenericInterface_ to interface class variantsrockot2015-12-173-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used to identify pure non-variant interface definitions for uses relevant to InterfaceRequest. e.g. one could do variant1::FooPtr foo; GetProxy(&foo) and GetProxy will return an InterfaceRequest<generic::Foo>. Part of a series of changes to support custom mojom serialization: 1. https://codereview.chromium.org/1515423002 2. https://codereview.chromium.org/1517043004 3. This CL 4. https://codereview.chromium.org/1520153002 5. https://codereview.chromium.org/1524613002 6. https://codereview.chromium.org/1526533002 7. https://codereview.chromium.org/1524703002 BUG=569669 TBR=sky@chromium.org for mojo/common TBR=piman@chromium.org for content/gpu Review URL: https://codereview.chromium.org/1524693002 Cr-Commit-Position: refs/heads/master@{#365708}
* [mojo] Add typemap and variant support to generatorsrockot2015-12-1610-42/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces two new flags for the mojom bindings generator: --typemap can be used to provide typemap (JSON) files to the bindings generator. --variant specifies the name of the bindings variant to emit. Both of these new flags only affect C++ generation, and specifying --variant at all prevents JS or Java bindings from being emitted. Both of these new flags have GN mojom template variables associated with them as well. Part of a series of changes to support custom mojom serialization: 1. https://codereview.chromium.org/1515423002 2. This CL 3. https://codereview.chromium.org/1524693002 4. https://codereview.chromium.org/1520153002 5. https://codereview.chromium.org/1524613002 6. https://codereview.chromium.org/1526533002 7. https://codereview.chromium.org/1524703002 BUG=569669 Review URL: https://codereview.chromium.org/1517043004 Cr-Commit-Position: refs/heads/master@{#365674}