dom/ipc/PBrowser.ipdl

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

michael@0 1 /* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 8 -*- */
michael@0 2 /* vim: set sw=4 ts=8 et tw=80 ft=cpp : */
michael@0 3
michael@0 4 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 5 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 7
michael@0 8 include protocol PBlob;
michael@0 9 include protocol PColorPicker;
michael@0 10 include protocol PContent;
michael@0 11 include protocol PDocumentRenderer;
michael@0 12 include protocol PContentPermissionRequest;
michael@0 13 include protocol PFilePicker;
michael@0 14 include protocol PRenderFrame;
michael@0 15 include protocol POfflineCacheUpdate;
michael@0 16 include protocol PIndexedDB;
michael@0 17 include DOMTypes;
michael@0 18 include JavaScriptTypes;
michael@0 19 include URIParams;
michael@0 20 include PContentPermission;
michael@0 21
michael@0 22
michael@0 23 using class IPC::Principal from "mozilla/dom/PermissionMessageUtils.h";
michael@0 24 using struct mozilla::gfx::Matrix from "mozilla/gfx/Matrix.h";
michael@0 25 using struct gfxSize from "gfxPoint.h";
michael@0 26 using CSSRect from "Units.h";
michael@0 27 using struct mozilla::layers::FrameMetrics from "FrameMetrics.h";
michael@0 28 using struct mozilla::layers::ScrollableLayerGuid from "FrameMetrics.h";
michael@0 29 using struct mozilla::layers::ZoomConstraints from "FrameMetrics.h";
michael@0 30 using FrameMetrics::ViewID from "FrameMetrics.h";
michael@0 31 using mozilla::layout::ScrollingBehavior from "mozilla/layout/RenderFrameUtils.h";
michael@0 32 using struct mozilla::void_t from "ipc/IPCMessageUtils.h";
michael@0 33 using mozilla::WindowsHandle from "ipc/IPCMessageUtils.h";
michael@0 34 using nscolor from "nsColor.h";
michael@0 35 using class mozilla::WidgetCompositionEvent from "ipc/nsGUIEventIPC.h";
michael@0 36 using struct nsIMEUpdatePreference from "nsIWidget.h";
michael@0 37 using struct nsIntPoint from "nsPoint.h";
michael@0 38 using struct nsIntRect from "nsRect.h";
michael@0 39 using struct nsIntSize from "nsSize.h";
michael@0 40 using class mozilla::WidgetKeyboardEvent from "ipc/nsGUIEventIPC.h";
michael@0 41 using class mozilla::WidgetMouseEvent from "ipc/nsGUIEventIPC.h";
michael@0 42 using class mozilla::WidgetWheelEvent from "ipc/nsGUIEventIPC.h";
michael@0 43 using struct nsRect from "nsRect.h";
michael@0 44 using class mozilla::WidgetSelectionEvent from "ipc/nsGUIEventIPC.h";
michael@0 45 using class mozilla::WidgetTextEvent from "ipc/nsGUIEventIPC.h";
michael@0 46 using class mozilla::WidgetTouchEvent from "ipc/nsGUIEventIPC.h";
michael@0 47 using struct mozilla::dom::RemoteDOMEvent from "mozilla/dom/TabMessageUtils.h";
michael@0 48 using mozilla::dom::ScreenOrientation from "mozilla/dom/ScreenOrientation.h";
michael@0 49 using struct mozilla::layers::TextureFactoryIdentifier from "mozilla/layers/CompositorTypes.h";
michael@0 50 using mozilla::CSSPoint from "Units.h";
michael@0 51 using mozilla::CSSToScreenScale from "Units.h";
michael@0 52 using mozilla::CommandInt from "mozilla/EventForwards.h";
michael@0 53 using mozilla::layers::GeckoContentController::APZStateChange from "mozilla/layers/GeckoContentController.h";
michael@0 54
michael@0 55 namespace mozilla {
michael@0 56 namespace dom {
michael@0 57
michael@0 58 struct NativeKeyBinding
michael@0 59 {
michael@0 60 CommandInt[] singleLineCommands;
michael@0 61 CommandInt[] multiLineCommands;
michael@0 62 CommandInt[] richTextCommands;
michael@0 63 };
michael@0 64
michael@0 65 union MaybeNativeKeyBinding
michael@0 66 {
michael@0 67 NativeKeyBinding;
michael@0 68 void_t;
michael@0 69 };
michael@0 70
michael@0 71 intr protocol PBrowser
michael@0 72 {
michael@0 73 manager PContent;
michael@0 74
michael@0 75 manages PColorPicker;
michael@0 76 manages PDocumentRenderer;
michael@0 77 manages PContentPermissionRequest;
michael@0 78 manages PFilePicker;
michael@0 79 manages PRenderFrame;
michael@0 80 manages POfflineCacheUpdate;
michael@0 81 manages PIndexedDB;
michael@0 82
michael@0 83 both:
michael@0 84 AsyncMessage(nsString aMessage, ClonedMessageData aData, CpowEntry[] aCpows,
michael@0 85 Principal aPrincipal);
michael@0 86
michael@0 87 parent:
michael@0 88 /**
michael@0 89 * When child sends this message, parent should move focus to
michael@0 90 * the next or previous focusable element.
michael@0 91 */
michael@0 92 MoveFocus(bool forward);
michael@0 93
michael@0 94 Event(RemoteDOMEvent aEvent);
michael@0 95
michael@0 96 intr CreateWindow() returns (PBrowser window);
michael@0 97
michael@0 98 sync SyncMessage(nsString aMessage, ClonedMessageData aData,
michael@0 99 CpowEntry[] aCpows, Principal aPrincipal)
michael@0 100 returns (nsString[] retval);
michael@0 101
michael@0 102 rpc RpcMessage(nsString aMessage, ClonedMessageData aData,
michael@0 103 CpowEntry[] aCpows, Principal aPrincipal)
michael@0 104 returns (nsString[] retval);
michael@0 105
michael@0 106 /**
michael@0 107 * The IME sequence number (seqno) parameter is used to make sure
michael@0 108 * that a notification is discarded if it arrives at the chrome process
michael@0 109 * too late. If the notification is late and we accept it, we will have
michael@0 110 * an out-of-date view of the content process, which means events that we
michael@0 111 * dispatch based on this out-of-date view will be wrong also.
michael@0 112 * (see Bug 599550 and Bug 591047 comments 44, 50, and 54)
michael@0 113 *
michael@0 114 * Chrome increments seqno and includes it in each IME event sent to
michael@0 115 * content, and content sends its current seqno back to chrome with each
michael@0 116 * notification. A notification is up-to-date only if the content
michael@0 117 * seqno is the same as the current chrome seqno, meaning no additional
michael@0 118 * event was sent to content before the notification was received
michael@0 119 *
michael@0 120 * On blur, chrome returns the current seqno to content, and content
michael@0 121 * uses it to discard subsequent events until the content seqno and
michael@0 122 * chrome seqno-on-blur match again. These events, meant for the blurred
michael@0 123 * textfield, are discarded to prevent events going to the wrong target
michael@0 124 */
michael@0 125
michael@0 126 /**
michael@0 127 * Notifies chrome that there is a focus change involving an editable
michael@0 128 * object (input, textarea, document, contentEditable. etc.)
michael@0 129 *
michael@0 130 * focus PR_TRUE if editable object is receiving focus
michael@0 131 * PR_FALSE if losing focus
michael@0 132 * preference Native widget preference for IME updates
michael@0 133 * seqno Current seqno value on the chrome side
michael@0 134 */
michael@0 135 sync NotifyIMEFocus(bool focus)
michael@0 136 returns (nsIMEUpdatePreference preference, uint32_t seqno);
michael@0 137
michael@0 138 /**
michael@0 139 * Notifies chrome that there has been a change in text content
michael@0 140 * One call can encompass both a delete and an insert operation
michael@0 141 * Only called when NotifyIMEFocus returns PR_TRUE for mWantUpdates
michael@0 142 *
michael@0 143 * offset Starting offset of the change
michael@0 144 * end Ending offset of the range deleted
michael@0 145 * newEnd New ending offset after insertion
michael@0 146 * causedByComposition true if the change is caused by composition
michael@0 147 *
michael@0 148 * for insertion, offset == end
michael@0 149 * for deletion, offset == newEnd
michael@0 150 */
michael@0 151 NotifyIMETextChange(uint32_t offset, uint32_t end, uint32_t newEnd,
michael@0 152 bool causedByComposition);
michael@0 153
michael@0 154 /**
michael@0 155 * Notifies chrome that there is a IME compostion rect updated
michael@0 156 *
michael@0 157 * offset The starting offset of this rect
michael@0 158 * rect The rect of first character of selected IME composition
michael@0 159 * caretRect The rect of IME caret
michael@0 160 */
michael@0 161 NotifyIMESelectedCompositionRect(uint32_t offset, nsIntRect rect, nsIntRect caretRect);
michael@0 162
michael@0 163 /**
michael@0 164 * Notifies chrome that there has been a change in selection
michael@0 165 * Only called when NotifyIMEFocus returns PR_TRUE for mWantUpdates
michael@0 166 *
michael@0 167 * seqno Current seqno value on the content side
michael@0 168 * anchor Offset where the selection started
michael@0 169 * focus Offset where the caret is
michael@0 170 * causedByComposition true if the change is caused by composition
michael@0 171 */
michael@0 172 NotifyIMESelection(uint32_t seqno, uint32_t anchor, uint32_t focus,
michael@0 173 bool causedByComposition);
michael@0 174
michael@0 175 /**
michael@0 176 * Notifies chrome to refresh its text cache
michael@0 177 *
michael@0 178 * text The entire content of the text field
michael@0 179 */
michael@0 180 NotifyIMETextHint(nsString text);
michael@0 181
michael@0 182 /**
michael@0 183 * Instructs chrome to end any pending composition
michael@0 184 *
michael@0 185 * cancel PR_TRUE if composition should be cancelled
michael@0 186 * composition Text to commit before ending the composition
michael@0 187 *
michael@0 188 * if cancel is PR_TRUE,
michael@0 189 * widget should return empty string for composition
michael@0 190 * if cancel is PR_FALSE,
michael@0 191 * widget should return the current composition text
michael@0 192 */
michael@0 193 sync EndIMEComposition(bool cancel) returns (nsString composition);
michael@0 194
michael@0 195 /**
michael@0 196 * Request that the parent process move focus to the browser's frame. If
michael@0 197 * canRaise is true, the window can be raised if it is inactive.
michael@0 198 */
michael@0 199 RequestFocus(bool canRaise);
michael@0 200
michael@0 201 sync GetInputContext() returns (int32_t IMEEnabled, int32_t IMEOpen,
michael@0 202 intptr_t NativeIMEContext);
michael@0 203
michael@0 204 SetInputContext(int32_t IMEEnabled,
michael@0 205 int32_t IMEOpen,
michael@0 206 nsString type,
michael@0 207 nsString inputmode,
michael@0 208 nsString actionHint,
michael@0 209 int32_t cause,
michael@0 210 int32_t focusChange);
michael@0 211
michael@0 212 sync IsParentWindowMainWidgetVisible() returns (bool visible);
michael@0 213
michael@0 214 /**
michael@0 215 * Gets the DPI of the screen corresponding to this browser.
michael@0 216 */
michael@0 217 sync GetDPI() returns (float value);
michael@0 218
michael@0 219 /**
michael@0 220 * Gets the default scaling factor of the screen corresponding to this browser.
michael@0 221 */
michael@0 222 sync GetDefaultScale() returns (double value);
michael@0 223
michael@0 224 /**
michael@0 225 * Return native data of root widget
michael@0 226 */
michael@0 227 sync GetWidgetNativeData() returns (WindowsHandle value);
michael@0 228
michael@0 229 SetCursor(uint32_t value);
michael@0 230 SetBackgroundColor(nscolor color);
michael@0 231
michael@0 232 /**
michael@0 233 * Used to set the current text of the status tooltip.
michael@0 234 * Nowadays this is mainly used for link locations on hover.
michael@0 235 */
michael@0 236 SetStatus(uint32_t type, nsString status);
michael@0 237
michael@0 238 /**
michael@0 239 * Show/hide a tooltip when the mouse hovers over an element in the content
michael@0 240 * document.
michael@0 241 */
michael@0 242 ShowTooltip(uint32_t x, uint32_t y, nsString tooltip);
michael@0 243 HideTooltip();
michael@0 244
michael@0 245 /**
michael@0 246 * Create an asynchronous color picker on the parent side,
michael@0 247 * but don't open it yet.
michael@0 248 */
michael@0 249 PColorPicker(nsString title, nsString initialColor);
michael@0 250
michael@0 251 /**
michael@0 252 * Initiates an asynchronous request for permission for the
michael@0 253 * provided principal.
michael@0 254 *
michael@0 255 * @param aRequests
michael@0 256 * The array of permissions to request.
michael@0 257 * @param aPrincipal
michael@0 258 * The principal of the request.
michael@0 259 *
michael@0 260 * NOTE: The principal is untrusted in the parent process. Only
michael@0 261 * principals that can live in the content process should
michael@0 262 * provided.
michael@0 263 */
michael@0 264 PContentPermissionRequest(PermissionRequest[] aRequests, Principal aPrincipal);
michael@0 265
michael@0 266 PFilePicker(nsString aTitle, int16_t aMode);
michael@0 267
michael@0 268 /**
michael@0 269 * Create a layout frame (encapsulating a remote layer tree) for
michael@0 270 * the page that is currently loaded in the <browser>.
michael@0 271 */
michael@0 272 sync PRenderFrame();
michael@0 273
michael@0 274 sync InitRenderFrame(PRenderFrame aFrame)
michael@0 275 returns (ScrollingBehavior scrolling,
michael@0 276 TextureFactoryIdentifier textureFactoryIdentifier, uint64_t layersId,
michael@0 277 bool success);
michael@0 278
michael@0 279 /**
michael@0 280 * Starts an offline application cache update.
michael@0 281 * @param manifestURI
michael@0 282 * URI of the manifest to fetch, the application cache group ID
michael@0 283 * @param documentURI
michael@0 284 * URI of the document that referred the manifest
michael@0 285 * @param stickDocument
michael@0 286 * True if the update was initiated by a document load that referred
michael@0 287 * a manifest.
michael@0 288 * False if the update was initiated by applicationCache.update() call.
michael@0 289 *
michael@0 290 * Tells the update to carry the documentURI to a potential separate
michael@0 291 * update of implicit (master) items.
michael@0 292 *
michael@0 293 * Why this argument? If the document was not found in an offline cache
michael@0 294 * before load and refers a manifest and this manifest itself has not
michael@0 295 * been changed since the last fetch, we will not do the application
michael@0 296 * cache group update. But we must cache the document (identified by the
michael@0 297 * documentURI). This argument will ensure that a previously uncached
michael@0 298 * document will get cached and that we don't re-cache a document that
michael@0 299 * has already been cached (stickDocument=false).
michael@0 300 */
michael@0 301 POfflineCacheUpdate(URIParams manifestURI, URIParams documentURI,
michael@0 302 bool stickDocument);
michael@0 303
michael@0 304 /**
michael@0 305 * Sets "offline-app" permission for the principal. Called when we hit
michael@0 306 * a web app with the manifest attribute in <html> and
michael@0 307 * offline-apps.allow_by_default is set to true.
michael@0 308 */
michael@0 309 SetOfflinePermission(Principal principal);
michael@0 310
michael@0 311 sync PIndexedDB(nsCString group, nsCString asciiOrigin)
michael@0 312 returns (bool allowed);
michael@0 313
michael@0 314 /**
michael@0 315 * window.open from inside <iframe mozbrowser> is special. When the child
michael@0 316 * process calls window.open, it creates a new PBrowser (in its own
michael@0 317 * process), then calls BrowserFrameOpenWindow on it.
michael@0 318 *
michael@0 319 * The parent process gets a chance to accept or reject the window.open
michael@0 320 * call, and windowOpened is set to true if we ended up going through with
michael@0 321 * the window.open.
michael@0 322 *
michael@0 323 * @param opener the PBrowser whose content called window.open.
michael@0 324 */
michael@0 325 sync BrowserFrameOpenWindow(PBrowser opener, nsString aURL,
michael@0 326 nsString aName, nsString aFeatures)
michael@0 327 returns (bool windowOpened);
michael@0 328
michael@0 329 /**
michael@0 330 * Instructs the TabParent to forward a request to zoom to a rect given in
michael@0 331 * CSS pixels. This rect is relative to the document.
michael@0 332 */
michael@0 333 ZoomToRect(uint32_t aPresShellId, ViewID aViewId, CSSRect aRect);
michael@0 334
michael@0 335 /**
michael@0 336 * We know for sure that content has either preventDefaulted or not
michael@0 337 * preventDefaulted. This applies to an entire batch of touch events. It is
michael@0 338 * expected that, if there are any DOM touch listeners, touch events will be
michael@0 339 * batched and only processed for panning and zooming if content does not
michael@0 340 * preventDefault.
michael@0 341 */
michael@0 342 ContentReceivedTouch(ScrollableLayerGuid aGuid, bool aPreventDefault);
michael@0 343
michael@0 344 /**
michael@0 345 * Updates the zoom constraints for a scrollable frame in this tab.
michael@0 346 * The zoom controller code lives on the parent side and so this allows it to
michael@0 347 * have up-to-date zoom constraints.
michael@0 348 */
michael@0 349 UpdateZoomConstraints(uint32_t aPresShellId, ViewID aViewId, bool aIsRoot,
michael@0 350 ZoomConstraints aConstraints);
michael@0 351
michael@0 352 __delete__();
michael@0 353
michael@0 354 ReplyKeyEvent(WidgetKeyboardEvent event);
michael@0 355
michael@0 356 sync RequestNativeKeyBindings(WidgetKeyboardEvent event)
michael@0 357 returns (MaybeNativeKeyBinding bindings);
michael@0 358
michael@0 359 child:
michael@0 360 /**
michael@0 361 * Notify the remote browser that it has been Show()n on this
michael@0 362 * side, with the given |visibleRect|. This message is expected
michael@0 363 * to trigger creation of the remote browser's "widget".
michael@0 364 *
michael@0 365 * |Show()| and |Move()| take IntSizes rather than Rects because
michael@0 366 * content processes always render to a virtual <0, 0> top-left
michael@0 367 * point.
michael@0 368 */
michael@0 369 Show(nsIntSize size);
michael@0 370
michael@0 371 LoadURL(nsCString uri);
michael@0 372
michael@0 373 CacheFileDescriptor(nsString path, FileDescriptor fd);
michael@0 374
michael@0 375 UpdateDimensions(nsRect rect, nsIntSize size, ScreenOrientation orientation) compress;
michael@0 376
michael@0 377 UpdateFrame(FrameMetrics frame);
michael@0 378
michael@0 379 /**
michael@0 380 * Acknowledge the receipt of a scroll offset update from the content
michael@0 381 * process. This is used to manage concurrent scroll updates from many
michael@0 382 * sources.
michael@0 383 */
michael@0 384 AcknowledgeScrollUpdate(ViewID aScrollId, uint32_t aScrollGeneration);
michael@0 385
michael@0 386 /**
michael@0 387 * Requests handling of a double tap. |point| is in CSS pixels, relative to
michael@0 388 * the scroll offset. This message is expected to round-trip back to
michael@0 389 * ZoomToRect() with a rect indicating where we should zoom to.
michael@0 390 */
michael@0 391 HandleDoubleTap(CSSPoint point, ScrollableLayerGuid aGuid);
michael@0 392
michael@0 393 /**
michael@0 394 * Requests handling of a single tap. |point| is in CSS pixels, relative to
michael@0 395 * the scroll offset. This message is expected to send a "mousedown" and
michael@0 396 * "mouseup" series of events at this point.
michael@0 397 */
michael@0 398 HandleSingleTap(CSSPoint point, ScrollableLayerGuid aGuid);
michael@0 399
michael@0 400 /**
michael@0 401 * Requests handling of a long tap. |point| is in CSS pixels, relative to
michael@0 402 * the scroll offset. This message is expected to send a "contextmenu"
michael@0 403 * events at this point.
michael@0 404 */
michael@0 405 HandleLongTap(CSSPoint point, ScrollableLayerGuid aGuid);
michael@0 406
michael@0 407 /**
michael@0 408 * Requests handling of releasing a long tap. |aPoint| is in CSS pixels,
michael@0 409 * relative to the current scroll offset. In the case the "contextmenu"
michael@0 410 * event generated by the preceding HandleLongTap call was not handled,
michael@0 411 * this message is expected to generate a "mousedown" and "mouseup"
michael@0 412 * series of events
michael@0 413 */
michael@0 414 HandleLongTapUp(CSSPoint point, ScrollableLayerGuid aGuid);
michael@0 415
michael@0 416 /**
michael@0 417 * Notifies the child about various APZ state changes.
michael@0 418 * See GeckoContentController::NotifyAPZStateChange() for details.
michael@0 419 */
michael@0 420 NotifyAPZStateChange(ViewID aViewId, APZStateChange aChange, int aArg);
michael@0 421
michael@0 422 /**
michael@0 423 * Sending an activate message moves focus to the child.
michael@0 424 */
michael@0 425 Activate();
michael@0 426
michael@0 427 Deactivate();
michael@0 428
michael@0 429 /**
michael@0 430 * @see nsIDOMWindowUtils sendMouseEvent.
michael@0 431 */
michael@0 432 MouseEvent(nsString aType,
michael@0 433 float aX,
michael@0 434 float aY,
michael@0 435 int32_t aButton,
michael@0 436 int32_t aClickCount,
michael@0 437 int32_t aModifiers,
michael@0 438 bool aIgnoreRootScrollFrame);
michael@0 439
michael@0 440 RealMouseEvent(WidgetMouseEvent event);
michael@0 441 RealKeyEvent(WidgetKeyboardEvent event, MaybeNativeKeyBinding keyBinding);
michael@0 442 MouseWheelEvent(WidgetWheelEvent event);
michael@0 443 RealTouchEvent(WidgetTouchEvent aEvent, ScrollableLayerGuid aGuid);
michael@0 444 // We use a separate message for touchmove events only to apply
michael@0 445 // compression to them.
michael@0 446 RealTouchMoveEvent(WidgetTouchEvent aEvent, ScrollableLayerGuid aGuid) compress;
michael@0 447
michael@0 448 /**
michael@0 449 * @see nsIDOMWindowUtils sendKeyEvent.
michael@0 450 */
michael@0 451 KeyEvent(nsString aType,
michael@0 452 int32_t aKeyCode,
michael@0 453 int32_t aCharCode,
michael@0 454 int32_t aModifiers,
michael@0 455 bool aPreventDefault);
michael@0 456
michael@0 457 CompositionEvent(WidgetCompositionEvent event);
michael@0 458
michael@0 459 TextEvent(WidgetTextEvent event);
michael@0 460
michael@0 461 SelectionEvent(WidgetSelectionEvent event);
michael@0 462
michael@0 463 /**
michael@0 464 * Activate event forwarding from client to parent.
michael@0 465 */
michael@0 466 ActivateFrameEvent(nsString aType, bool capture);
michael@0 467
michael@0 468 LoadRemoteScript(nsString aURL, bool aRunInGlobalScope);
michael@0 469
michael@0 470 /**
michael@0 471 * Create a asynchronous request to render whatever document is
michael@0 472 * loaded in the child when this message arrives. When the
michael@0 473 * request finishes, PDocumentRenderer:__delete__ is sent back to
michael@0 474 * this side to notify completion.
michael@0 475 *
michael@0 476 * |documentRect| is the area of the remote document to draw,
michael@0 477 * transformed by |transform|. The rendered area will have the
michael@0 478 * default background color |bgcolor|. |renderFlags| are the
michael@0 479 * nsIPresShell::RenderDocument() flags to use on the remote side,
michael@0 480 * and if true, |flushLayout| will do just that before rendering
michael@0 481 * the document. The rendered image will be of size |renderSize|.
michael@0 482 */
michael@0 483 PDocumentRenderer(nsRect documentRect, Matrix transform,
michael@0 484 nsString bgcolor,
michael@0 485 uint32_t renderFlags, bool flushLayout,
michael@0 486 nsIntSize renderSize);
michael@0 487
michael@0 488 /**
michael@0 489 * Sent by the chrome process when it no longer wants this remote
michael@0 490 * <browser>. The child side cleans up in response, then
michael@0 491 * finalizing its death by sending back __delete__() to the
michael@0 492 * parent.
michael@0 493 */
michael@0 494 Destroy();
michael@0 495
michael@0 496
michael@0 497 /**
michael@0 498 * Tell the child side if it has to update it's touchable region
michael@0 499 * to the parent.
michael@0 500 */
michael@0 501 SetUpdateHitRegion(bool aEnabled);
michael@0 502
michael@0 503 /**
michael@0 504 * Tell the child to update its docShell's active state.
michael@0 505 */
michael@0 506 SetIsDocShellActive(bool aIsActive);
michael@0 507
michael@0 508 /*
michael@0 509 * FIXME: write protocol!
michael@0 510
michael@0 511 state LIVE:
michael@0 512 send LoadURL goto LIVE;
michael@0 513 //etc.
michael@0 514 send Destroy goto DYING;
michael@0 515
michael@0 516 state DYING:
michael@0 517 discard send blah;
michael@0 518 // etc.
michael@0 519 recv __delete__;
michael@0 520 */
michael@0 521 };
michael@0 522
michael@0 523 }
michael@0 524 }

mercurial